大家好,我是小碼哥,今天整理了一份minium微信小程式自動化測驗框架手冊,希望能對你有幫助!
目錄
簡介
特性
暫不支持
快速開始
運行環境
必要的知識
安裝
開始使用
更多能力
常見問題排查
測驗進階
framework
一個簡單例子
目錄結構
撰寫第一個case
撰寫組態檔
運行case
查看結果
Class minium.MiniTest
命令列工具
minitest 命令
測驗計劃
目錄結構
撰寫測驗計劃
運行測驗計劃
測驗結果
測驗報告
真機測驗
Android
IOS
安裝 libmobiledevice
配置 WebDriverAgent
配置測驗 config.json
專案配置
Android的device_desire配置項
IOS的device_desire配置項
IDE的mock_native_modal配置項
mock_request配置項
例子
元素定位
簡單選擇器
多賬號
簡介
minium 是為小程式專門開發的自動化框架, 提供了 Python 版本,使用 minium 可以進行小程式 UI 自動化測驗, 但是 minium 的功能不止于僅僅是 UI 自動化, 甚至可以使用 minium 來進行函式的 mock, 可以直接跳轉到小程式某個頁面并設定頁面資料, 做針對性的全面測驗, 這些都得益于我們開放了部分小程式 API 的能力,除此之外,小程式有部分組件使用了系統原生的組件,對于這部分的組件,我們也基于 uiautomator 和 wda 做了補充,
目前小程式的體量越來越大,相關的框架和組件庫越來越多,對于測驗能力要求也越來越高,業內同行基于Chrome DevTools Protocol開發了很多小程式相關的測驗工具,這些工具都有以下缺點:
- 只能在Android端上運行,小程式實際是一個跨平臺的產品(IDE,Android和IOS),測驗的平臺覆寫不足,
- 兼容性問題,小程式底層運行的內核多樣化(x5,原生webview內核等等),對應的除錯埠不一定能夠打開,
- 只能做UI相關的測驗,小程式架構上分為渲染層和邏輯層,這些框架對于邏輯層上面的測驗限制較大,
而 minium 除了以上缺點都沒有之外,還支持以下更多特性:
特性
- 支持一套腳本,iOS & Android & 模擬器,三端運行
- 提供豐富的頁面跳轉方式,看不到也能去得到
- 可以獲取和設定小程式頁面資料,讓測驗不止點點點
- 可以直接觸發小程式元素系結事件
- 支持往 AppSerive 注入代碼片段執行
- 可以呼叫部分 wx 物件上的介面
- 支持 Mock wx 物件上的介面
- 支持 Hook wx 物件上的介面
- 通過 suite 方式管理用例,config 管理運行設備
- ...
暫不支持
- H5頁面的除錯
- 插件內wx介面呼叫
快速開始
運行環境
- Python 3.8及以上
- 微信開發者工具 最新版本,并打開安全模式:
設定 -> 安全設定 -> 服務埠: 打開 - 微信 >= 7.0.7 (確認微信公共庫版本 >= 2.7.3即可)
必要的知識
本框架與開發者工具有強關聯,如果你之前對開發者工具沒有基本的了解,可以點擊下面的鏈接了解一些必要的知識:
- Python3 官網檔案 簡單教程
- 開發者工具
- 開發者工具的界面
- 真機除錯
- 命令列呼叫
安裝
下載minium安裝包,然后執行:
pip3 install minium-latest.zipCopy to clipboardErrorCopied
亦或者下載解壓之后執行:
python3 setup.py installCopy to clipboardErrorCopied
安裝完成后,可執行以下命令查看版本:
minitest -vCopy to clipboardErrorCopied
開始使用
以下是參考代碼,輸出system_info
import minium
mini = minium.Minium({
"project_path": "path/to/project", # 小程式專案目錄地址
"dev_tool_path": "path/to/cli" # 開發者工具cli地址,如果沒有修改過默認安裝路徑可不填此項
})
print(mini.get_system_info())Copy to clipboardErrorCopied
更多能力
以上是minium介面的基本用法,minium還集成了測驗框架,給你提供更多的測驗能力,詳情見測驗進階
常見問題排查
- cli環境問題,一般報錯如下:
MiniConfigError: dev_tool_path: /Applications/wechatwebdevtools.app/Contents/MacOS/cli not exists
解決方法:
- 請參考開發者工具的命令列工具排查環境問題,
- 在minium組態檔中配置
dev_tool_path路徑或實體化的時候加上dev_tool_path選項,參考測驗配置或例子
檢查方法:
"path/to/cli" auto --project "path/to/project" --auto-port 9420Copy to clipboardErrorCopied
看到類似下圖的log并能正確打開開發者工具即可, 
- 登錄開發者工具的帳號沒有該專案的開發者權限,一般報錯如下:
MiniLaunchError: Open project in automation mode fail! Please ensure you have permission of project and have not environ error
解決方法:
- 請找相關專案成員添加
- 除錯基礎庫(公共庫)版本過低,一般報錯如下:
receive from remote timeout, id: 99eb239c-a2a3-4a12-80da-6fd0312e768f
解決方法:
使用MiniTest可以大大降低小程式測驗成本,如何快速使用測驗框架進行測驗,可參考例子
- 開發者工具->詳情->本地設定選擇最新版本的除錯基礎庫(公共庫)
-
測驗進階
-
framework
minium提供一個基于unittest封裝好的測驗框架,利用這個簡單的框架對小程式測驗可以起到事半功倍的效果,
測驗基類Minitest會根據測驗配置進行測驗,minitest向上繼承了
unittest.TestCase,并做了以下改動: - 加載讀取測驗配置
- 在合適的時機初始化minium.Minium、minium.App和minium.Native
- 根據配置打開IDE,拉起小程式專案和或自動打開真機除錯
- 攔截assert呼叫,記錄檢驗結果
- 記錄運行時資料和截圖,用于測驗報告生成
一個簡單例子
目錄結構
.
├── test
│ └── __init__.py
│ └── first_test.py
└── config.jsonCopy to clipboardErrorCopied
撰寫第一個case
編輯case檔案first_test.py
#!/usr/bin/env python3
import minium
class FirstTest(minium.MiniTest):
def test_get_system_info(self):
sys_info = self.mini.get_system_info()
self.assertIn("SDKVersion", sys_info)Copy to clipboardErrorCopied
撰寫組態檔
編輯組態檔config.json
{
"project_path": "/Users/yopofeng/workspace/miniprograms/devtools-test/demo",
"debug_mode": "info"
}Copy to clipboardErrorCopied
更多配置資訊請參考測驗配置
運行case
minitest -m test.first_test -c config.json -gCopy to clipboardErrorCopied
test.first_test是python包名,不要跟path搞混
更多命令列引數請參考命令列工具
運行結果如下:

查看結果
測驗結果存盤在outputs下,運行命令python3 -m http.server 12345 -d outputs然后在瀏覽器上訪問http://localhost:12345即可查看報告,如圖: 
Class minium.MiniTest
MiniTest是minium中繼承自unittest.TestCase的測驗基類
Properties:
| 名稱 | 型別 | 默認值 | 說明 |
|---|---|---|---|
| mini | minium.Minium | None | Minium實體,可直接呼叫minium.Minium中的方法 |
| app | minium.App | None | App實體,可直接呼叫minium.App中的方法 |
| native | minium.Native | None | Native實體,可直接呼叫minium.Native中的方法 |
代碼示例:
#!/usr/bin/env python3
import minium
class FirstTest(minium.MiniTest):
def test_get_system_info(self):
sys_info = self.mini.get_system_info()
self.assertIn("SDKVersion", sys_info)Copy to clipboardErrorCopied
運行
參考例子
命令列工具
測驗用例的執行可以用執行unittest的方式,也可以用我們提供的腳本minitest來加載用例,相關的引數說明如下:
minitest 命令
-
-h, --help: 使用幫助,
-
-v, --version: 查看 minium 的版本,
-
-p PATH/--path PATH: 用例所在的檔案夾,默認當前路徑,
-
-m MODULE_PATH, --module MODULE_PATH: 用例的包名或者檔案名
-
--case CASE_NAME:
test_開頭的用例名 -
-s SUITE, --suite SUITE:測驗計劃檔案,檔案的格式如下:
{ "pkg_list": [ { "case_list": [ "test_*" ], "pkg": "test.*_test" } ] }Copy to clipboardErrorCopiedsuite.json的
pkg_list欄位說明要執行用例的內容和順序,pkg_list是一個陣列,每個陣列元素是一個匹配規則,會根據pkg去匹配包名,找到測驗類,然后再根據case_list里面的規則去查找測驗類的測驗用例,可以根據需要撰寫匹配的粒度,注意匹配規則不是正則運算式,而是通配符,測驗檔案可以指定特定的用例,規定執行順序
-
-c CONFIG, --config CONFIG:組態檔名,配置專案參考組態檔
-
-g, --generate: 生成網頁測驗報告
-
--module_search_path [SYS_PATH_LIST [SYS_PATH_LIST ...]]: 添加 module 的搜索路徑
-
-a, --accounts: 查看開發者工具當前登錄的多賬號, 需要通過 9420 埠,以自動化模式打開開發者工具
-
--mode RUN_MODE: 選擇以
parallel(并行)或者fork(復刻)的方式運行用例
測驗計劃
測驗專案中一般包含大量的測驗case,在不同的測驗階段可能需要選取不同的case運行,因此專案中需要配置不同的測驗計劃
以下是一個使用測驗計劃進行配置的例子
目錄結構
.
├── test
│ └── __init__.py
│ └── first_test.py
│ └── second_test.py
└── config.json
└── suite.jsonCopy to clipboardErrorCopied
case和配置撰寫可參考例子
撰寫測驗計劃
編輯suite檔案suite.json
{
"pkg_list": [
{
"case_list": [
"test_*"
],
"pkg": "test.*_test"
}
]
}Copy to clipboardErrorCopied
suite.json的pkg_list欄位說明要執行用例的內容和順序,pkg_list是一個陣列,每個陣列元素是一個匹配規則,會根據pkg去匹配包名,找到測驗類,然后再根據case_list里面的規則去查找測驗類的測驗用例,可以根據需要撰寫匹配的粒度,注意匹配規則不是正則運算式,而是通配符,
運行測驗計劃
minitest -s suite.json -c config.json -gCopy to clipboardErrorCopied
更多命令列引數請參考命令列工具
測驗結果
每條用例的測驗結果我們會存放到一個目錄里面,里面包含:
- 包含用例執行資訊的json檔案
- 用例運行中的截圖
- 用例運行中的日志
- 小程式運行中的日志
基于這些資料可以生成測驗報告,也可以做一些存檔的事情,
測驗報告
根據用例的執行結果,我們基于Vue和element提供一個簡潔的測驗報告:例子,
報告生成有2種方式:
- 執行用例的時候加上
-g引數 - 針對已經生成的用例結果目錄
minireport input_path output_pathCopy to clipboardErrorCopiedoutput_path里面會生成有報告的入口,
生成報告之后,在對應的目錄下面有index.html檔案,但是我們不能直接用瀏覽器打開這個 檔案,需要把這個目錄放到一個靜態服務器上,以下方式都是可行的:
-
本地執行
python3 -m http.server 12345 -d /path/to/dir/of/report,然后瀏覽器輸入:http://localhost:12345/PS: 其中
/path/to/dir/of/report為上文的output_path -
利用nginx的配置:
server { listen 80; server_name your.domain.com; location / { alias /path/to/dir/of/report; index index.html; } }
真機測驗
minium通過組態檔來識別小程式運行的平臺,如果需要測驗手機上的小程式,那么需要把配置項platform改成Android或者iOS,
小程式真機除錯是基于小程式開發者工具的真機除錯能力和appnium實作的,如果case使用了minium.Native的介面,則組態檔中必須配置device_desire配置項
Android
Android需要保證命令列能識別到手機設備
$ adb devices
List of devices attached
28fb61d0ef1c7ece deviceCopy to clipboardErrorCopied
如果只有一臺手機在線,那么只需要把platform配置成Android即可, 而如果多臺設備連接到手機,組態檔需要制定設備的序列號,如:
{
"debug_mode": "debug",
"enable_app_log": false,
"platform": "Android",
"device_desire": {
"serial": "28fb61d0ef1c7ece"
}
}Copy to clipboardErrorCopied
在我們連接真機的時候,Android手機安裝微信測驗的apk,有些手機在安裝程序中會彈框或者輸入密碼,所以第一次運行的時候可能需要人為的處理
IOS
安裝 libmobiledevice
brew uninstall ideviceinstaller
brew uninstall libimobiledevice
brew install --HEAD libimobiledevice
brew link --overwrite libimobiledevice
brew install ideviceinstaller
brew link --overwrite ideviceinstallerCopy to clipboardErrorCopied
如果沒有安裝過直接 brew install ideviceinstaller 即可,
當然你也可以本地編譯:
git clone https://github.com/libimobiledevice/libimobiledevice.git
cd libimobiledevice
./autogen.sh --disable-openssl
make
sudo make installCopy to clipboardErrorCopied
配置 WebDriverAgent
minium 不包含 WebDriverAgent(簡稱wda) 工程,請到appium/WebDriverAgent clone 最新版本,只需要簡單配置兩個選項即可



配置完成之后,可以用?+u快捷鍵運行 unit test 測驗 wda 是否正常運行

更加詳細的配置說明請訪問appium/WebDriverAgent/wiki
配置測驗 config.json
在用例目錄下面新增一個叫config.json的組態檔,格式如下
{
"platform": "iOS",
"device_desire":{
"wda_project_path": "/Users/sherlock/github/appium/WebDriverAgent", //自定義 wda 的路徑
"device_info": {
"udid": "aee531018e668ff1aadee0889f5ebe21a2292...", //手機的 udid
"model": "iPhone XR",
"version": "12.2.5",
"name": "sherlock's iPhone"
}
}
}Copy to clipboardErrorCopied
PS: JSON不支持注釋,請把“//”以及后面的內容刪掉
詳細說明請看:測驗配置
專案配置
為了保證同一套代碼在IDE,Android,IOS上運行,環境組成比較復雜,所以測驗用例的運行依賴于組態檔,相關配置項說明如下表:
| 配置項 | 型別 | 默認值 | 說明 |
|---|---|---|---|
| platform | String | ide | 小程式運行的平臺,可選值為:ide, Android, IOS |
| project_path | String | 空 | 小程式代碼的專案路徑,如果配置了之后,那么需要同時配置dev_tool_path |
| dev_tool_path | String | 空 | 小程式IDE cli的路徑 |
| enable_app_log | Boolean | True | 是否監聽小程式代碼回傳的日志 |
| enable_network_panel | Boolean | False | 是否監聽所有wx.request的請求和回傳,日志生成到request.log |
| outputs | String | outputs | 用例運行的結果存放目錄 |
| debug_mode | String | info | 日志列印級別,可選:error, warn, info, debug |
| close_ide | Boolean | False | 執行完一個 class 是否關閉 ide,ide 下運行不生效 |
| full_reset | Boolean | False | 執行完一個 class 是否關閉 ide 和 native driver |
| device_desire | Object | null | 連接手機的引數,跟手機平臺有關系 |
| test_port | int | 9420 | IDE監聽的埠,默認為9420 |
| assert_capture | Boolean | True | 在assert的時候是否截圖 |
| auto_relaunch | Boolean | True | 啟動的時候relaunch到啟動頁面 |
| use_push | Boolean | True | 是否自動推送遠程除錯 |
| remote_connect_timeout | int | 180 | 遠程除錯連接超時時間 s |
| request_timeout | int | 30 | 請求連接超時時間 s |
| account_info | dict | None | 賬號資訊,多賬號運行使用 |
| mock_native_modal | dict | {} | 僅在ide上生效, mock會引起授權彈窗的方法, 使有彈窗的情況下仍能在ide上運行,具體用法請參考IDE的mock_native_modal配置項 |
| mock_request | list | [] | mock網路請求, 具體用法參考mock_request配置項 |
其中 account_info 有如下兩項,通過minitest -a 獲取:
| 配置項 | 型別 | 默認值 | 說明 |
|---|---|---|---|
| wx_nick_name | String | None | 微信賬號名稱 |
| open_id | String | None | 微信賬號的 open_id |
其中,device_desire跟平臺有關系,不同平臺配置不一樣,
Android的device_desire配置項
| 配置項 | 型別 | 默認值 | 說明 |
|---|---|---|---|
| serial | String | null | Android設備號, adb devices查看 |
| uiautomator_version | int | 1 | 底層使用的Ui Automator版本, 可選: 1, 2 |
IOS的device_desire配置項
device_desire:
| 配置項 | 型別 | 默認值 | 說明 |
|---|---|---|---|
| wda_project_path | String | not null | 自定義 wda 的路徑 |
| device_info | Dict | not null | 真機資訊 |
其中device_info:
| 配置項 | 型別 | 默認值 | 說明 |
|---|---|---|---|
| udid | String | not null | 手機的 uuid |
| model | String | null | 機型 |
| version | String | null | 系統版本 |
| name | String | null | 設備名稱 |
IDE的mock_native_modal配置項
mock_native_modal:
| 配置項 | 型別 | 默認值 | 說明 |
|---|---|---|---|
| weRunData | Dict | None | 參考wx.getWeRunData介面回傳的結果資訊 |
| userInfo | Dict | None | 參考wx.getUserInfo介面回傳的結果資訊 |
| location | Dict | None | 參考wx.getLocation和wx.chooseAddress介面回傳的結果資訊 |
{
"mock_native_modal": {
"weRunData": {
"encryptedData": "123",
"iv": "456=="
},
"userInfo": {
"nickName":"test test",
"gender":1,
"language":"zh_CN",
"city":"",
"province":"",
"country":"St.Kitts and Nevis",
"avatarUrl":"https://xxxx.qq.com"
},
"location": {
"address": "廣東省廣州市",
"latitude": 23.0999,
"longitude": 113.3249,
"name": "騰訊微信總部"
}
}
}Copy to clipboardErrorCopied
mock_request配置項
mock_request中每一項配置:
| 配置項 | 型別 | 默認值 | 說明 |
|---|---|---|---|
| rule | str|dict | Not None | 規則,如型別為str,則默認匹配url |
| success | dict | None | 成功回呼結果,與引數fail需二選一 |
| fail | str|dict | None | 失敗回呼結果,如型別為str,會自動填充成基礎庫回傳格式,與引數success需二選一 |
以下例子運行效果同App.mock_request中的例子
{
"mock_request": [
{
"rule": ".*/SendMsg\\?.*",
"success": {"data": "mock result1", "statusCode": 200}
},
{
"rule": {"url": ".*/SendMsg$"},
"success": {"data": "mock result2", "statusCode": 200}
},
{
"rule": {"url": ".*/SendMsg.*", "data": {"content": "^\\d+$"}},
"success": {"data": "mock result3", "statusCode": 200}
},
{
"rule": {"url": ".*/SendMsg.*"},
"fail": {"errMsg": "request:fail mock fail"}
},
]
}Copy to clipboardErrorCopied
例子
{
"debug_mode": "debug",
"enable_app_log": true,
"project_path": "/Users/sherlock/github/miniprogram-demo",
"dev_tool_path": "/Applications/wechatwebdevtools.app/Contents/MacOS/cli",
"platform": "ios",
"close_ide": true,
"test_port": 9420,
"assert_capture": true,
"use_push": true,
"auto_relaunch": true,
"remote_connect_timeout": 180,
"device_desire": {
"wda_project_path": "/Users/sherlock/.npm-global/lib/node_modules/appium/node_modules/appium-webdriveragent",
"os_type": "ios",
"device_info": {
"udid": "aee531018e668ff1aadee0889f5ebe21axxxxxe8",
"model": "iPhone XR",
"version": "12.2.5",
"name": "sherlock's iPhone"
}
}
}
元素定位
minium 通過 WXSS 選擇器來定位元素的,目前小程式僅支持以下的選擇器:
| 選擇器 | 樣例 | 樣例描述 |
|---|---|---|
| .class | .intro | 選擇所有擁有 class="intro" 的組件 |
| #id | #firstname | 選擇擁有 id="firstname" 的組件 |
| element | view | 選擇所有 view 組件 |
| element, element | view, checkbox | 選擇所有檔案的 view 組件和所有的 checkbox 組件 |
| ::after | view::after | 在 view 組件后邊插入內容 |
| ::before | view::before | 在 view 組件前邊插入內容 |
簡單選擇器
一個元素的選擇器通常是以下格式組成的:
id 不能以數字開頭,命名規范問題
tageName + #id + .className
這其實是三個選擇器組合的結果,其中:
tagName:型別選擇器,標簽名稱,view、checkbox 等等,選擇所有指定型別的最簡單方式,id:ID 選擇器,自定義給元素的唯一 ID,使用時前面跟著#號,這是選擇單個元素的最有效的方式,className:類選擇器,由一個點.以及類后面的類名組成,存在多個類的時候可以以點為間隔一直拼接下去,
e.g:
<view id="main" class="page-section page-section-gap" style="text-align: center;"></view>Copy to clipboardErrorCopied
假如要查找像上面這一個元素的話,他的選擇器會像是下面這樣:
view#main.page-section.page-section-gapCopy to clipboardErrorCopied
另一種寫法
view[id='main'][class='page-section page-section-gap']Copy to clipboardErrorCopied
所以,通常我們只需要關注一個元素的 id 和 class 即可,但是有時候有的情況是,有一堆沒有 id ,相同 class 的同名標簽,我們沒辦法通過 id 或者 class 來區分了,比如我們 demo 的 input 頁面:
<view class="page-body">
<view class="page-section">
<view class="weui-cells__title">可以自動聚焦的input</view>
<view class="weui-cells weui-cells_after-title">
<view class="weui-cell weui-cell_input">
<input class="weui-input" auto-focus placeholder="將會獲取焦點" bindinput="bindKeyInput"/>
...
<input class="weui-input" maxlength="10" placeholder="最大輸入長度為10" />
...
<input class="weui-input" maxlength="10" bindinput="bindKeyInput" placeholder="輸入同步到view中"/>
...
<input class="weui-input" bindinput="bindReplaceInput" placeholder="連續的兩個1會變成2" />
...
<input class="weui-input" bindinput="bindHideKeyboard" placeholder="輸入123自動收起鍵盤" />
...
<input class="weui-input" type="number" placeholder="這是一個數字輸入框" />
...
<input class="weui-input" password type="text" placeholder="這是一個密碼輸入框" />
...
<input class="weui-input" type="digit" placeholder="帶小數點的數字鍵盤"/>
...
<input class="weui-input" type="idcard" placeholder="身份證輸入鍵盤" />
...
<input class="weui-input" placeholder-style="color:#F76260" placeholder="占位符字體是紅色的" />
...Copy to clipboardErrorCopied
我們仔細觀察,雖然所有的 input 都有著同樣的 class,但其實他們并非都是一模一樣的,在實際測驗中,我們發現絕大部分的屬性都可以用來尋找,
e.g:
<input class="weui-input" type="digit" placeholder="帶小數點的數字鍵盤"/>Copy to clipboardErrorCopied
如上,我們可以通過 type 和 placeholder 兩個屬性去找到這個元素,
input[type='digit']Copy to clipboardErrorCopied
或者
input[placeholder='帶小數點的數字鍵盤']Copy to clipboardErrorCopied
亦或者,兩者加起來
input[type='digit'][placeholder='帶小數點的數字鍵盤']Copy to clipboardErrorCopied
所以,具體情況具體分析,在我測驗的程序中發現,bindinput 這一類系結方法是不能用作尋路依據的,
多賬號
公共庫 2.10.0 之后支持
- 使用多賬號并行測驗首先需要在開發者工具登錄多個賬號

-
獲取登錄賬號的 open id
2.1 先以自動化模式打開開發者工具,埠默認 9420
2.2 minitest -a 獲取 open id

-
創建組態檔,形式如下,你需要將 open id 和 udid 替換成你自己的賬號和設備,保存為 m_config.json
[{
"debug_mode": "debug",
"enable_app_log": true,
"project_path": "/Users/sherlock/github/miniprogram-demo",
"dev_tool_path": "/Applications/wechatwebdevtools.app/Contents/MacOS/cli",
"platform": "ide",
"app": "wx",
"close_ide": false,
"test_port": 9421,
"assert_capture": true,
"use_push": true,
"auto_relaunch": true,
"remote_connect_timeout": 10,
"account_info": {
"wx_nick_name": "locker",
"open_id": "o6zAJs_pwr**********aROZDjiw"
},
"device_desire": {
"wda_project_path": "/Users/sherlock/.npm-global/lib/node_modules/appium/node_modules/appium-webdriveragent",
"os_type": "ios",
"device_info": {
"udid": "aee531018e668ff1aad*************2924e8",
"model": "iPhone 6",
"version": "12.2.5",
"name": "sherlock's iPhone"
}
}
},
{
"debug_mode": "debug",
"enable_app_log": true,
"project_path": "/Users/sherlock/github/miniprogram-demo",
"dev_tool_path": "/Applications/wechatwebdevtools.app/Contents/MacOS/cli",
"platform": "ide",
"app": "wx",
"close_ide": false,
"test_port": 9422,
"assert_capture": true,
"use_push": true,
"auto_relaunch": true,
"remote_connect_timeout": 10,
"account_info": {
"wx_nick_name": "恒瑜_Sherlock",
"open_id": "o6zAJsx7zt4***********Tz7Kx10A"
},
"device_desire": {
"wda_project_path": "/Users/sherlock/.npm-global/lib/node_modules/appium/node_modules/appium-webdriveragent",
"os_type": "ios",
"device_info": {
"udid": "aee531018e668ff1***********ebe21a22924e8",
"model": "iPhone XR",
"version": "12.2.5",
"name": "sherlock's iPhone"
}
}
}]Copy to clipboardErrorCopied
- 啟動測驗
$ minitest -s suite.json -c m_config.json -gCopy to clipboardErrorCopied
- 靜候

PS: 上圖為了方便展示,platform 配置項都設定為 ide,真機運行只需將 platform 設定為 iOS 或者 Android,并填寫好設備 udid 即可,跟之前單機真機運行的步驟一致
今天的文章就分享在這里了,關注我后續會繼續更新優質的文章
最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于【軟體測驗】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測驗工程師們走過最艱難的路程,希望也能幫助到你!
在我的QQ技術交流群里(技術交流和資源共享,廣告勿擾)
可以自助拿走,群號:310357728群里的免費資料都是筆者十多年測驗生涯的精華,還有同行大神一起交流技術哦
如果對你有一點點幫助,各位的「點贊」就是小編創作的最大動力,我們下篇文章見
🌻好文推薦
在小公司“混”了2年,我只認真做了5件事,如今順利拿到位元組 Offe
去了位元組跳動,才知道年薪 30w 的測驗工程師有這么多?
北京35歲程式員失業,感嘆:編程估計沒戲了,想去賣點煎餅果子養家~
29歲轉行軟體測驗靠譜嗎?一個過來人的心路歷程送給迷茫的你
同樣是IT行業,測驗和開發薪資真就差這么大嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/299217.html
標籤:其他
上一篇:致終將逝去的 Android
