網易私有云新增的測試驅動力,Airtest-ocr文字識別點擊真香!

1. 前言

熟悉我們開源框架的朋友都知道,AirtestProject一直以來,都對外開源了2個自動化測試框架,Airtest和Poco,Airtest是基於圖像識別原理的,Poco是基於控件識別原理的。

這2個自動化測試框架,大大降低了自動化測試的門檻,讓自動化測試變得簡單可行。但是幾年的長期實踐以來,我們也發現了這2個框架的一些侷限性:

比如airtest圖像識別的不準確性、airtest對於文字/數字場景識別效果差的問題 ;poco獲取控件需要實現安裝pocoservice.apk或者嵌入poco-SDK,poco目前不兼容最新的微信小程序(xweb頁面)、H5頁面等問題

針對這些侷限性,我們推出了一款新的工具庫:Airtest-ocr。顧名思義,它是 基於OCR技術 的,能幫我們識別定位到頁面上的所有文字,匹配到文字以後,就可以非常便捷地做一些我們期望的自動化測試工作了。

下文,我們將詳細介紹網易推出的這個新的自動化測試框架。

2. Airtest-ocr簡介

如上文所述,Airtest-ocr主要是依賴 OCR 技術,能識別出來屏幕中所有的文字,與腳本中的待操作文字匹配後,可以執行相應的一些點擊、滑動操作等。

1)Airtest-ocr的識別效果

我們用幾張圖來展示下Airtest-ocr模型的識別效果:

可以看到,不論是對於 文本場景 還是 數字場景 ,Airtest-ocr的識別效果都非常不錯。

2)Airtest-ocr的識別效率

Airtest-ocr 提供輕重兩種模式,默認情況下,會使用輕量級模式。好處是 運算速度快、算法模型小、消耗資源小 ,輕量級模式對 CPU 的壓力要小很多,API 速度一般也能保證在2s內完成。

3)Airtest-ocr的API易於使用

爲了減少新框架的學習成本,Airtest-ocr的腳本風格與Airtest保持一致,並且因爲是文字識別的,所以腳本整體的可閱讀性非常高:

# 點擊某文字
ocr_touch("開始")  # 與 ocr_click("開始") 等價

# 雙擊某文字
ocr_double_click("開始")

# 某些情況下,文字處於按鈕附近(比如按鈕下方),使用offset設置點擊偏移量
ocr_touch("開始", offset=(0, -20))  # 以“開始”文字的中心爲起點, x軸不偏移,y軸向上偏移20個像素點
ocr_double_click("開始", offset=(0, -20))

# 指定高優先級區域 (version>=1.0.10)
ocr_touch("開始", location=(100, 100), threshold=0.98)  # 對於置信度高於0.98的多個 “開始”, 優先點擊靠近 (100,100) 的

# ocr_swipe 與 swipe函數類似
ocr_swipe("生活", "學習")  # 從“生活”滑向“學習”
ocr_swipe("生活", vector=(0, 100))  # 從“生活”向下滑動100個像素
ocr_swipe((780, 1842), (780, 1000))  # 從座標1滑向座標2
......

3. Airtest-OCR的應用場景介紹

那麼,這樣一款基於OCR技術的自動化測試框架,都適用於哪些測試場景呢?我們簡單給大家舉幾個例子~

1)微信小程序測試(或其它混合開發頁面)

自從微信小程序/微信公衆號頁面改用xweb框架以來,Poco對其兼容性就不是特別好,經常出現識別不到控件的情況。如果全用Airtest截圖,按照小程序的UI迭代效率,我們的圖像腳本迭代成本也挺高的。

但是如果使用Airtest-ocr框架的話,我們的煩惱就會少很多了!因爲無需擔心識別不到控件,也無需擔心UI樣式經常發生改動,我們直接根據小程序頁面上關鍵的文字,來進行自動化測試:

2)安裝應用過程輸入密碼的場景

像oppo和vivo這類的手機,或者是iOS設備,在安裝應用時,都有一個無法避免的問題,那就是輸入密碼。

類似的情況,還有初次打開應用時,需要點擊的一系列權限彈窗。可以看到,這些頁面,往往都是非常簡單的文字識別場景,比如識別一些類似“安裝”、“輸入密碼”、“同意”、“取消”等等文字。

這些應用場景下,airtest的識別文字可信度就沒那麼高了,更適合用Airtest-ocr來進行:

3)驗證碼識別場景

同理,對於一些數字驗證碼、字母驗證碼等,Airtest-ocr也能有不錯的應用效果:

4)其它:遊戲文本測試等

另外還有很多場景可以用到Airtest-ocr,比如在複雜的遊戲場景中,進行遊戲文本覈驗等場景等。

4. 小結

今天介紹的這款測試框架,是我們新加入到 網易私有云測試解決方案 裏面的,感興趣的朋友,可以在我們的羣裏,瞭解更多細節。當然,我們Airtest開發組,後續也會持續研究新的自動化測試技術,在測試行業繼續深耕!


Airtest官網https://airtest.netease.com/
Airtest教程官網https://airtest.doc.io.netease.com/
搭建企業私有云服務https://airlab.163.com/b2b

官方答疑 Q 羣:117973773

呀,這麼認真都看到這裏啦,幫忙點個推薦支持一下唄,灰常感謝~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章