研效優化實踐:WeTest提效測試

騰訊WeTest發表於2022-01-19

導語

騰訊WeTest平臺在專案測試過程中,為企業及開發者提供了很多便利,幫助發現產品潛在問題。接下來,本文將分享一些使用WeTest進行測試提效的小經驗,希望能幫到大家。本文作者是騰訊IEG增長協同部測試開發工程師連凌淦,擁有多年系統測試經驗,在自動化、全鏈路壓測等專項測試領域有一定的經驗。

1.自動化相容測試

UI自動化是提高測試效率的一個重要手段,像poco、appium都是常用自動化框架,相關資料都很多,這裡就先不展開講,主要分享一些實操過程可能會遇到的問題。
1.1真通過與假通過
每次自動化相容測試結束後,WeTest平臺會返回一份對應的測試報告,涵蓋測試過程中的詳細資訊,如裝置日誌、截圖、效能資料等,可以做進一步的結果分析。概覽資料涵蓋本次裝置維度的測試結果,包括通過的裝置數量、未通過的裝置數量等。
裝置維度未通過的定義為發生相容性問題,如Crash、ANR等。有時在測試過程中,指令碼可能未執行完畢,最終也會判定為通過,屬於假通過的情況,影響最終的統計結果。

每次提交相容性測試的機型都是幾十上百臺,對所有通過的機型再一個個開啟校驗,時間成本太高,那麼有什麼方案能幫助我們快速找出來未真正執行指令碼的裝置呢?
基於一個不太嚴謹的前提假設,同一個UI自動化指令碼執行,理論上全流程時間在不同機型上相近的(如果有wait_until_something_appear這樣的操作,操作時長就會因機型產生差別),而WeTest截圖的時間間隔基本固定,大致可以認為每個機型完整執行過程產生的截圖數量波動較小,我們只需要對偏離較大的測試通過用例進行檢查。

1.2.airtest可以訪問到節點,指令碼執行報poco未檢測ui控制元件節點
使用poco進行自動化測試過程中,有時候會發現airtest可以定位到的節點,執行過程卻報了node not found的錯誤,這是由於poco的ui樹未及時重新整理導致的,建議適當增加sleep間隔,等待ui節點樹重新整理。
1.3.部分機型有許可權彈窗問題
部分機型彈窗也可能會導致一部分假通過問題,所以提交特定機型測試,並且測試app有許可權申請的,要關注下是否會有許可權彈窗。由於彈窗沒有id可以快速定位,這裡採用了輪詢節點的方式,在啟動測試用例之前,通過輪詢ui節點以及關鍵字匹配“允許”或者“拒絕”,找到對應的元素並點選。

2、日誌測試自動化

日誌上報是產品資料分析的基石,產品執行過程會在非常多的節點上報資訊,每次逐條檢查確認是個費時費力的過程,無論是從上報鏈路檢查還是從落庫資料檢查,手工操作、查驗結果都是一個繁複的工作,且容易產生遺漏。因此,我們將UI自動化功能測試與日誌測試相結合,基於藍盾流水線和WeTest,搭建了一個日誌自動化測試模組。

因為打點日誌上報的量較大,我們需要精準地抓取本次操作產生的日誌,並作為關鍵字到db進行搜尋。這裡我們採用打本地檔案的方式,儲存執行過程的狀態以及用於定位本次搜尋的關鍵字,用於後續的操作校驗以及搜尋。
如何把自動化執行過程的資料傳遞給校驗模組,考慮過下面幾種方案:
1、 通過mq(redis、kafka等),實現資料傳輸到查詢校驗模組;
2、 另起服務接收資料,通過介面呼叫傳遞資料;
3、 將校驗模組耦合到日誌測試指令碼;
4、 本地日誌記錄,通過log檔案傳遞資訊。
基於不同功能模組解耦維護,以及開發成本上的考慮,最終我們選擇了最原始的檔案儲存形式,這種方式也便於問題查證的時候,能從WeTest找到關鍵資訊。WeTest相容性測試支援把檔案複製到開發機,在endTest.sh 檔案中加上:
cp XXX.log $UPLOADDIR/
即可配合流水線操作。

3、資料驅動提高覆蓋率

全量提交測試會導致任務週期久,並且公有云裝置不可避免會存在等待時間,每次全量提交也可能給產品帶來額外的測試成本。
我們需要思考,每增加一個測試機型,能給我們的流量帶來多大的覆蓋?哪些機型的佔比更高,更加重要?現有的WeTest測試機型庫,是否滿足我們自己產品的機型覆蓋呢?
那麼,我們能否通過現網的使用者分佈,疊加一些機型、系統分佈條件,來進行更加精準的相容性測試呢?
首先,騰訊WeTest平臺上的相容性機型覆蓋了市場的主流top機型,但Android系統的機型長尾效應特別大,產品面對的使用者收入,決定了其所使用的機型,為此,通過打點上報資料,獲得了我們產品的使用者機型流量分佈圖,與現有的外網top500的benchmark 機型進行了比較。

利用上述資料,我們跟WeTest的機型按照產品流量top50、100、300、500做了一個交集,得到下面的佔比圖。

有了上述的機型資料,測試過程中可以進行更加精細的測試驗證:
1、相容性測試補齊產品流量中WeTest現有機型,提高相容性測試覆蓋率。
2、不同的測試場景,選用不同測試機型組,縮小測試範圍,更快獲得結果。
3、可針對性購買測試機,補齊少數WeTest平臺沒有的機型,提高測試過程的使用者機型覆蓋。

以上,是在產品測試中使用WeTest提高測試效率、覆蓋率的小小實踐,歡迎探討~

若您有業務需求,歡迎諮詢客服了解詳情
客服電話:0755-86013388-22126
客服QQ:2746728701
工作時間(週一至週五9:30-18:30)

關於騰訊WeTest

騰訊WeTest是由騰訊官方推出的一站式品質開放平臺。十餘年品質管理經驗,致力於質量標準建設、產品質量提升。騰訊WeTest為移動開發者提供相容性測試、雲真機、效能測試、安全防護等優秀研發工具,為百餘行業提供解決方案,覆蓋產品在研發、運營各階段的測試需求,歷經千款產品磨礪。金牌專家團隊,通過5大維度,41項指標,360度保障您的產品質量。

關注騰訊WeTest,瞭解更多熱門測試產品:
WeTest騰訊質量開放平臺-您的質量守護專家

相關文章