同樣,先安利一波官方文檔地址
http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/4_run_script/run_script.html#
為什么要使用命令行來執(zhí)行腳本
想同時(shí)用多個(gè)命令行運(yùn)行多臺手機(jī)、多個(gè)腳本等情況,以及對于一些Python開發(fā)者來說,可能需要在腳本中使用其他功能強(qiáng)大的Python第三方庫。因此推薦在本地python環(huán)境中安裝airtest和pocoui,然后用命令行運(yùn)行腳本。
準(zhǔn)備環(huán)境
首先必須要有python環(huán)境
使用 pip 安裝Airtest模塊
pip install airtest
注意:在Mac/Linux系統(tǒng)下,需要手動賦予adb可執(zhí)行權(quán)限,否則可能在執(zhí)行腳本時(shí)遇到Permission denied的報(bào)錯(cuò),我就碰到了
# 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庫時(shí),提示找不到我們指定的3.2.0.7版本時(shí),可以考慮更新你的pip到最新之后再進(jìn)行重試,官網(wǎng)文檔提到最要不要使用pyhont3.7版本,建議使用穩(wěn)定的python3.6.5版本,不過我親測3.7可用。
使用 pip 安裝poco框架
pip install pocoui # 請注意庫的名稱為pocoui,不要填錯(cuò)
環(huán)境部署完成后,我們就能夠脫離AirtestIDE,在不同的宿主機(jī)器和被測平臺上運(yùn)行腳本了。
執(zhí)行命令
# 這兩個(gè)命令行的效果是相同的,我們用airtest運(yùn)行了一個(gè)叫做untitled.air的腳本
>airtest run untitled.air --device Android:///手機(jī)設(shè)備號 --log log/
>python -m airtest run untitled.air --device Android:///手機(jī)設(shè)備號 --log log/
# 可以使用python sys模塊查看site-packages文件夾所在的路徑
import sys
print(sys.path)
參數(shù)說明:
airtest run 后面接的的腳本文件的路徑。
--device,是我們的手機(jī)設(shè)備。
--log,log輸出目錄。
關(guān)于--device的說明
在剛才的命令行中使用的--device參數(shù),傳入的是一個(gè)設(shè)備字符串,以安卓設(shè)備為例,字串完整定義如下:
Android://<adbhost[localhost]>:<adbport[5037]>/<serialno>
其中,adbhost是adb server所在主機(jī)的ip(本地host為127.0.0.1),adb port默認(rèn)是5037,serialno是android手機(jī)的序列號。更多adb的方面的內(nèi)容請參考文檔developer.google。
在平時(shí)的腳本運(yùn)行中,我們一般可以這樣寫:
# 什么都不填寫,會默認(rèn)取當(dāng)前連接中的第一臺手機(jī)
Android:///
# 連接本機(jī)默認(rèn)端口連的一臺設(shè)備號為79d03fa的手機(jī)
Android://127.0.0.1:5037/79d03fa
# 連接一個(gè)Windows窗口,窗口句柄為123456
Windows:///123456
# 連接一個(gè)Windows窗口,窗口名稱匹配某個(gè)正則表達(dá)式
Windows:///?title_re=Unity.*
# 連接iOS手機(jī)
iOS:///127.0.0.1:8100
生成測試報(bào)告
"""
參數(shù)說明
--log_root: 指定腳本執(zhí)行完畢后生成log文件夾的路徑
--outfile: 指定輸出的html文件路徑
--lang: 指定輸出的語言,zh為中文
"""
airtest report untitled.air --log_root log/ --outfile log/log.html --lang zh