我们为什么要做 SoloPi
SoloPi現狀
去年(2019年)7月份,螞蟻集團正式對外開源了客戶端自動化測試工具 SoloPi ,其主要包括三大模塊:錄制回放(用于功能測試)、性能工具(用于性能測試)以及一機多控(服務于兼容性測試)。從開源至今,我們也陸續收到了公司內外對工具的不同聲音,有的同學對這套工具能提升測試同學的效率表達了支持態度,也有同學認為脫離了代碼的自動化測試可能會限制測試同學的靈活度,讓這種模式很難走遠,還有同學認為這套工具只是曇花一現,簡單包裝了一下PC上的工具,而缺乏實際的創新。
其實,這套工具我們從17年開始研發,至今已經有三年的歷史了,最開始SoloPi本身只是一個性能測試工具,隨后逐步擴展成涵蓋功能測試、性能測試、兼容性測試、異常測試、Mock測試等一系列移動端測試場景的測試框架,這一路走來,SoloPi就像我們的孩子一樣一步一步地成長,穩步且有計劃的前進著。
回想當初,SoloPi最開始想解決的訴求很簡單:測試很麻煩,我們想要更簡便的測試方法。所以,我們從當時最麻煩的性能測試入手,以往的性能測試工具,無外乎三種形態:PC驅動工具、侵入式的測試模塊、ROOT工具。
PC工具:除了Android Studio自帶的性能測試工具,市面上大多數文檔都是介紹命令行方法,而且各家方案存在差異,不少還存在錯誤,實際成型的工具也不多。
侵入式的測試模塊:這類工具由于需要侵入到源碼中,需要單獨打包進行測試,工具本身也可能對性能產生影響。
ROOT工具:首先是需要Android系統的Root權限,對于權限管控越來越嚴格的Android系統,其路必將越走越窄。
為了解決測試同學性能測試難、標準不統一的問題,我們嘗試從Android調試能力入手,研究一種能夠在Android手機上不需要root也能實現應用提權的方案。經過長時間的研究,我們最終發現了一套通過Java實現的ADB遠程調試方案 (https://github.com/cgutman/AdbLib)?,這套方案與Android調試端口進行通信,通過本地Socket方式實現shell權限的獲取,從而達到本地應用提權(下述簡稱無線ADB提權方案)。
結合無線ADB提權方案,SoloPi針對每一種性能指標,進一步實現了對應的精確獲取方案。測試同學不需要再費力搜尋/開發/優化性能測試工具,只需要一個SoloPi,短短幾分鐘即可快速完成以往動輒數小時的性能測試工作。
在性能測試領域得到應用后,我們繼續擴展SoloPi在無線自動化方案的適用范圍。這次,我們關注點是功能測試領域。傳統的功能測試通常有兩種方式:一種是人工手動執行測試,另一種則是編寫基于測試框架的自動化腳本。前者成本巨大,為應付不斷加速的產品迭代可能需要投入大量人力;而后者則對測試同學的代碼能力有不小的要求,這也導致由手動測試轉化為自動化測試從而節省人力的進度相對緩慢。結合我們在性能測試方面積累的經驗,我們嘗試將傳統上僅能用于PC的自動化測試能力移植到了移動平臺,并根據手機的使用習慣,開發了一套簡單易用且功能強大的自動化測試框架,也就是當前的錄制回放。通過錄制回放,我們可以自豪的說,我們能夠節省功能測試高達70%的時間。
在功能測試的方案完成后,我們又對這套自動化測試框架有了更多的期待。由此便誕生了一機多控這樣一套兼容性測試利器。關于一機多控,最開始源于一次閑聊,如果將錄制回放的過程拆分開,一臺機器錄制用例,由其他幾臺乃至數十臺機器進行回放,不就能夠極大地降低兼容性測試的成本。以往兼容性測試一直是無線測試的老大難問題,通過一機多控,就能實現指數級的提效。通過在測試機房環境的部署,我們已逐漸培養起測試同學通過一機多控進行兼容性測試的習慣。在支付寶內部實踐過程中,曾有一位測試同學反饋,沒有了一機多控甚至不知道怎么測兼容性了。
為了進一步降低廣大從業同學的測試成本,我們繼續就整個研發流程進行挖掘、優化,并已在一些節點(如數據準備、異常場景、小程序H5等)上嘗試和發力。圍繞著測試提效的核心,SoloPi不斷地為節省人力成本開發和更新著一系列的測試工具。
SoloPi未來趨勢
隨著測試技術的不斷發展,智能化、簡單化的測試趨勢日益明顯,以19年MTSC大會為例,有超過半數的議題都與AI相關,圍繞測試提效的核心,我們也將在這方面進行進一步的挖掘,將AI+測試帶給每一個從業人員。
在我們開源的這一年間,我們也發現了游戲領域從業人員對類似工具的訴求,目前SoloPi仍然是以支持傳統應用的測試能力為主,所以我們也將在游戲場景做進一步的融合,我們希望能夠對類似Unity 3D、Cocos2d-X、虛幻等引擎做進一步支持,從而也能更好地降低游戲測試成本。
SoloPi不僅僅是一個移動測試領域的工具,我們更希望它是一個服務于廣大測試從業人員的產品。同時,我們也一直在思考著一個問題:如何能進一步降低測試同學的學習和使用成本?在今年下半年,我們計劃推出一套更加輕量化的測試方式,能夠真正讓測試同學像正常使用應用一樣進行測試,做到真正的智能化和簡單化。
?
?
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的我们为什么要做 SoloPi的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 都已经十岁的ApacheDubbo,还能
- 下一篇: 阿里云熊鹰:基于融合、协同系统的边缘云原