同樣炒刁,先安利一波官方文檔地址
http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/4_run_script/run_script.html#
為什么要使用命令行來執(zhí)行腳本
想同時用多個命令行運行多臺手機、多個腳本等情況水醋,以及對于一些Python開發(fā)者來說,可能需要在腳本中使用其他功能強大的Python第三方庫彪置。因此推薦在本地python環(huán)境中安裝airtest和pocoui拄踪,然后用命令行運行腳本。
準備環(huán)境
首先必須要有python環(huán)境
使用 pip 安裝Airtest模塊
pip install airtest
注意:在Mac/Linux系統(tǒng)下拳魁,需要手動賦予adb可執(zhí)行權限惶桐,否則可能在執(zhí)行腳本時遇到Permission denied的報錯,我就碰到了
# mac系統(tǒng)
cd {your_python_path}/site-packages/airtest/core/android/static/adb/mac
# linux系統(tǒng)
# cd {your_python_path}/site-packages/airtest/core/android/static/adb/linux
chmod +x adb
若在安裝opencv-contrib-python庫時,提示找不到我們指定的3.2.0.7版本時姚糊,可以考慮更新你的pip到最新之后再進行重試想虎,官網文檔提到最要不要使用pyhont3.7版本,建議使用穩(wěn)定的python3.6.5版本叛拷,不過我親測3.7可用。
使用 pip 安裝poco框架
pip install pocoui # 請注意庫的名稱為pocoui岂却,不要填錯
環(huán)境部署完成后忿薇,我們就能夠脫離AirtestIDE,在不同的宿主機器和被測平臺上運行腳本了躏哩。
執(zhí)行命令
# 這兩個命令行的效果是相同的署浩,我們用airtest運行了一個叫做untitled.air的腳本
>airtest run untitled.air --device Android:///手機設備號 --log log/
>python -m airtest run untitled.air --device Android:///手機設備號 --log log/
# 可以使用python sys模塊查看site-packages文件夾所在的路徑
import sys
print(sys.path)
參數(shù)說明:
airtest run 后面接的的腳本文件的路徑。
--device扫尺,是我們的手機設備筋栋。
--log,log輸出目錄正驻。
關于--device的說明
在剛才的命令行中使用的--device參數(shù)弊攘,傳入的是一個設備字符串,以安卓設備為例姑曙,字串完整定義如下:
Android://<adbhost[localhost]>:<adbport[5037]>/<serialno>
其中襟交,adbhost是adb server所在主機的ip(本地host為127.0.0.1),adb port默認是5037伤靠,serialno是android手機的序列號捣域。更多adb的方面的內容請參考文檔developer.google。
在平時的腳本運行中宴合,我們一般可以這樣寫:
# 什么都不填寫焕梅,會默認取當前連接中的第一臺手機
Android:///
# 連接本機默認端口連的一臺設備號為79d03fa的手機
Android://127.0.0.1:5037/79d03fa
# 連接一個Windows窗口,窗口句柄為123456
Windows:///123456
# 連接一個Windows窗口卦洽,窗口名稱匹配某個正則表達式
Windows:///?title_re=Unity.*
# 連接iOS手機
iOS:///127.0.0.1:8100
生成測試報告
"""
參數(shù)說明
--log_root: 指定腳本執(zhí)行完畢后生成log文件夾的路徑
--outfile: 指定輸出的html文件路徑
--lang: 指定輸出的語言贞言,zh為中文
"""
airtest report untitled.air --log_root log/ --outfile log/log.html --lang zh