大哥,高速截屏工具了解一下?
近期在自動化測試過工作中接觸到截屏的功能,使用Android原生的截圖工具實在效率低下,研究了下minicap這個經典工具,和大家分享下學習歷程。
GIF
minicap
minicap是STF(or Smartphone Test Farm 開源的web遠程批量設備管理系統)框架的依賴工具,作為服務端實時向web端傳輸Android設備的屏幕截屏數據流,已經在github上開源維護了近3年,一直非常活躍,最近更新並適配了Android 8.1,業內應用廣泛。測算性能比較好的手機可以達到30-40FPS的截屏速度。
在ZUK Z2 Pro機型上使用原生screencap工具截屏並輸出到圖像需要4s多,對比minicap則只需要190ms,差距明顯。minicap使用了libjpeg-turbo作為編碼壓縮工具,壓縮後的圖片體積更小1080P解析度的手機截圖根據色彩豐富度不同一般只需要100k,sceencap則需要2M。
GIF
安裝使用
minicap是NDK開發的native工具,分為minicap可執行文件和minicap.so庫。由於minicap.so調用了一些私有API,所以必須依賴AOSP源碼環境編譯。minicap可執行文件需要自己編譯,如果不想搭建NDK環境編譯可以到GitHub上下載(https://github.com/Lukai912/minicap_build)
這裡不對minicap做socket配置,只使用其截圖功能。如果有需要可以參考(https://github.com/openstf/minicap)。
push文件
查看手機支持的ABI
查看手機SDK版本
然後將對應版本和SDK的可執行文件與so庫push到手機中
adb push libs/$ABI/minicap /data/local/tmp/
adb push jni/minicap-shared/aosp/libs/android-$SDK/$ABI/minicap.so /data/local/tmp/
修改minicap可執行文件的可執行許可權
chmod 777 /data/local/tmp/minicap
測試工具
執行minicap的參數
-P後面是手機屏幕的解析度
adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0 –t
如果有如下顯示則表示工具已經安裝成功可以使用了
保存截圖並pull到手機
附上簡單的python腳本
這篇總結了下minicap脫離STF使用的方法,自己在初次使用時遇到一些不便,希望能幫助同學們避免踩坑,更好的集成到現有的測試或開發業務中。下篇會繼續分析minicap源碼及截圖方案對比。
Qtest是360旗下的專業測試團隊!
是WEB平台部測試技術平台化、效率化的先鋒力量!
TAG:Qtest之道 |