AirTest學習二,命令行執行腳本


為什么要使用命令行來執行腳本

想同時用多個命令行運行多台手機、多個腳本等情況,以及對於一些Python開發者來說,可能需要在腳本中使用其他功能強大的Python第三方庫。因此推薦在本地python環境中安裝airtest和pocoui,然后用命令行運行腳本。

准備環境

首先必須要有python環境

使用 pip 安裝Airtest模塊

pip install airtest

注意:在Mac/Linux系統下,需要手動賦予adb可執行權限,否則可能在執行腳本時遇到Permission denied的報錯,我就碰到了

# mac系統 cd {your_python_path}/site-packages/airtest/core/android/static/adb/mac # linux系統 # 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版本,建議使用穩定的python3.6.5版本,不過我親測3.7可用。

使用 pip 安裝poco框架

pip install pocoui    # 請注意庫的名稱為pocoui,不要填錯 

環境部署完成后,我們就能夠脫離AirtestIDE,在不同的宿主機器和被測平台上運行腳本了。

執行命令

# 這兩個命令行的效果是相同的,我們用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) 

參數說明:
airtest run 后面接的的腳本文件的路徑。
--device,是我們的手機設備。
--log,log輸出目錄。

關於--device的說明

在剛才的命令行中使用的--device參數,傳入的是一個設備字符串,以安卓設備為例,字串完整定義如下:

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 

生成測試報告

""" 參數說明 --log_root: 指定腳本執行完畢后生成log文件夾的路徑 --outfile: 指定輸出的html文件路徑 --lang: 指定輸出的語言,zh為中文 """ airtest report untitled.air --log_root log/ --outfile log/log.html --lang zh 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM