【minicap】基於圖像識別的手機端UI自動化測試的截圖方式更新

minicap屬於STF框架的一個工具,能夠高速截圖、同步手機屏幕至瀏覽器等
 
爲何用minicap截圖:
通過試驗,截同一個屏幕的一張圖,adb shell screencap速度爲2.9秒,而minicap爲0.8秒,效率高不少,這在基於圖像識別的自動化測試中,起到相當重要的做用
 
minicap的使用
一、要給手機安裝minicap,須要先傳兩個文件到手機,分別是minicap可執行文件,和minicap.so動態連接庫
但這兩個文件對於不一樣手機不是通用的,他是根據手機CPU架構(arm64-v8a、armeabi-v7a,x86,x86_64)和sdk版原本的
 
獲取CPU架構
adb shell getprop ro.product.cpu.abi
 
獲取sdk版本(安卓)
adb sehll getprop ro.build.version.sdk
 
根據CPU架構和SDK版本,分別獲取minicap和minicap.so(要獲取對應的文件須要本身編譯,太麻煩,airtest項目給咱們提供了方便,直接獲取就行,前提是下載了airtest項目的源碼,或者import airtest)
就如我獲取到個人手機CPU架構爲arm64-v8a,sdk版本爲27,則到airtest項目下根據arm64-v84找到minicap可執行文件(airtest\core\android\static\stf_libs/arm64-v8a/minicap)
(airtest\core\android\static\stf_libs\minicap-shared\aosp\libs\android-27\arm64-v8a\minicap.so)
 
二、找到文件,上傳至手機指定的目錄
adb push minicap /data/local/tmp adb push minicap.so /data/local/tmp
 
三、更改權限
adb shell chmod 777 /data/local/tmp/minicap adb shell chmod 777 /data/local/tmp/minicap.so
 
這個時候,準備工做都已經完成了,如今我要作兩件事
一、截圖
先獲取手機分辨率
adb shell wm size
 
而後執行命令
adb shell \ LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 720x1520@720x1520/0 -s > /sdcard/deal_with_pic/1.png
這個時候,手機就有一張截圖在指定的目錄下了
 
二、同步手機屏幕至瀏覽器
一樣的,先獲取手機分辨率,而後執行命令
adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 720x1520@720x1520/0
這時候,就啓動了一個server
打開另外一個命令行窗口,端口映射:將服務端的端口映射到1717
adb forward tcp:1717 localabstract:minicap
而後,運行minicap項目下的example目錄下的app.js(須要安裝node.js,minicap項目到github上clone https://github.com/openstf/minicap)
node app.js
 
最後,打開瀏覽器,輸入localhost:9002,就把手機屏幕同步到瀏覽器了
這個跟airtest中的手機屏幕同步是同樣的,響應很快
 
搞了半天,這玩意兒能作什麼?這就是minicap的母項目stf要作的(https://openstf.io/),能夠本身作一個雲測平臺
相關文章
相關標籤/搜索