文章目錄
- 前言
- 一、準備工作
- 1.安裝
- 2.準備 API Key
- 3.安裝 adb
- 4.連接設備
- 二、yaml格式自動化腳本
- 1. 腳本案例
- 2.執行結果
- 三、文件結構變化
- android 部分
前言
字節 Web Infra團隊官宣Midscene 從 v0.15 開始支持 Android 自動化測試,本篇文章介紹yaml方式的Android自動化測試,該方式只需要專注于腳本本身,不需要著重了解測試框架。團隊內的任何成員都可以編寫自動化腳本,只要會寫測試用例。
一、準備工作
1.安裝
全局安裝 @midscene/cli (0.15以上)
安裝 Node.js 18 或以上版本。
2.準備 API Key
請參考上一篇文章,我使用的是阿里云百煉平臺提供的qwen-vl-max-latest,據說是千問系列視覺模型中效果最好的。
3.安裝 adb
官網給出兩種安裝方法:
方法 1:使用 Android Studio 安裝
方法 2:使用 Android 命令行工具 安裝
我是直接下載獨立的 Android SDK 平臺工具軟件包
此處有兩個坑,大家請注意:
(1)adb要配置到電腦的環境變量(不會的請自己搜)
(2)Midscene對adb的目錄有要求,必須是D:\Android\SDK目錄,所以下載的platform-tools要放入此目錄中,否則執行腳本會報錯 (此條為我電腦發現的錯誤,可能大家不會出現)
驗證本機是否已安裝 adb的命令:
adb --version
當你看到以下輸出時,表示 adb 安裝成功:
Android Debug Bridge version 1.0.41
Version 36.0.0-13206524
Installed as D:\Android\SDK\platform-tools\adb.exe
Running on Windows 10.0.19045
4.連接設備
我用的真機調試,所以打開開發者選項,啟用 ‘USB 調試’,如果存在 ‘USB 調試(安全設置)’,也啟用它(不啟用,后面運行腳本會出錯),然后使用 USB 線連接 Android 設備。
二、yaml格式自動化腳本
1. 腳本案例
代碼如下(示例):
android:deviceId: 設備id --- 用adb devices 查看tasks:- name: 百度地圖flow:- ai: 打開“百度地圖”app- sleep: 5000- ai: 點擊照相標識左側的輸入框,輸入“福州軟件園”- aiTap: 點擊搜索- sleep: 3000- aiAssert: 結果顯示搜索地圖信息
2.執行結果
執行結束后,在midscene_run/report目錄下會按時間格式生成 HTML 報告文件,打開該文件即可查看測試運行結果。
如果執行過程中出現“Exception occurred while executing ‘tap’:
java.lang.SecurityException: Injecting input events requires the caller (or the source of the instrumentation, if any) to have the INJECT_EVENTS permission.”這樣的錯誤,'USB 調試(安全設置)'請啟用。
三、文件結構變化
0.15版本之前,文件是target 和tasks兩個部分
更新之后,在 .yaml 文件中,有兩個部分:web/android 和 tasks。
web/android 部分定義了任務的基本信息,瀏覽器下的自動化使用 web 參數(曾用參數名 target),安卓設備下的自動化使用 android 參數,二者是互斥的。
android 部分
android:# 設備 ID,可選,默認使用第一個連接的設備deviceId: <device-id># 啟動 URL,可選,默認使用設備當前頁面launch: <url>
其他的配置沒變,請參考上一篇或者去官網查看最新的信息。