巧用bat文件做Airtest腳本的“批量運行”


前言

.bat 文件是可執行文件,它包含一條或多條命令。使用 .bat 文件進行批處理操作,可以幫助我們簡化日常或者重復性的操作。

之前我們的教程講過如何使用命令行運行Airtest腳本,實際上 .bat 文件里面的命令也是靠 cmd.exe 解析執行的,所以我們可以在 .bat 文件中編寫運行airtest腳本的命令,以此來執行airtest腳本。

1.用bat文件執行單個Airtest腳本

我們來先來復習下,使用命令行運行Airtest腳本的指令: airtest run + 腳本文件路徑 ,另外還可以在命令后面跟上 --device--log 和 --recording 等參數。

舉幾個運行airtest腳本的例子:

# 不帶任何參數運行腳本
airtest run D:\test\newsLogin.air
# 帶命令行參數運行腳本
airtest run D:\test\newsLogin.air --device Android:/// --log log/ --recording

 

回顧了在命令行運行airtest腳本的知識點后,我們再來看下如何新建 .bat 文件。首先我們需要在電腦上新建一個 .txt 文件,並輸入以下內容:

::關閉回顯
@echo off
::切換到D盤
D:
::進入D盤的test目錄
cd D:\test
::執行 airtest run 命令
start airtest run newsLogin.air
exit

 

其中 ::xxx 表示的是注釋內容,可以不寫入 .txt 文件中;另外示例腳本的路徑為 D:\test\newsLogin.air ,所以這里還做了切換到腳本路徑的操作,同學們可以根據自己腳本的實際情況來進行切換。

還需要注意的是,在上述示例中,我們已經在示例腳本的開頭添加了設備和 log 的初始化內容,所以不用另外在運行命令后面加上各種運行參數:

auto_setup(__file__,logdir=True,devices=["Android://127.0.0.1:5037/emulator-5554"])

 

如果同學們的測試設備相對固定,也建議直接將這些參數寫到腳本中,可以簡化命令行運行腳本的命令。

寫完以上幾條命令后,我們關掉 .txt 文件,將他的后綴名 txt 改成 bat ,之后會彈出重命名的警示彈窗,點擊“是”即可。最后,我們可以來檢測下運行效果:

2.用bat文件順序執行多個Airtest腳本

使用 .bat 文件成功執行單個airtest腳本之后,我們來試試用 .bat 文件順序執行多個airtest腳本:

@echo off
D:
cd D:\test
title 正在執行第一個腳本
airtest run newsLogin.air
title 正在執行第二個腳本
airtest run newsUsing.air
title 正在執行第三個腳本
airtest run newsExit.air
exit

 

可以看到,在上述登錄網易新聞的示例腳本之外,我們又增加了兩個腳本,分別用來實現使用網易新聞和退出登錄等操作。

所以在 .bat 文件中,我們分別寫了三條用於運行對應腳本的命令,其中 title xxx 用來指定命令提示窗口的標題,可以讓我們清晰地看出當前是在執行第幾個腳本。最終的執行效果如下:

3.用bat文件實現多機運行

 .bat 文件中,start 可以啟動單獨的命令行窗口來運行指定程序或命令。所以我們可以利用 start 命令開啟多個命令行窗口,實現在多台設備上執行同一個腳本:

@echo off
D:
cd D:\test
start "正在使用雷電模擬器跑腳本" airtest run newsLogin.air --device Android://127.0.0.1:5037/emulator-5554
start "正在使用mumu模擬器跑腳本" airtest run newsLogin.air --device Android://127.0.0.1:5037/127.0.0.1:7555
exit

 

上述命令可以實現在1台雷電模擬器和1台mumu模擬器上跑同一個腳本,效果如下:

當然,我們還可以給每一台設備單獨配置1個 .bat 文件,最后再寫1個總的 .bat 文件來調度前面用於在特定設備上運行腳本的 .bat 。如果大家感興趣的話,也可以自行實現任務調度、多線程運行的方案來批量運行腳本。

小結

在一些情況下,使用 .bat 文件可以幫助我們簡化代碼,並減少很多重復性的操作,童鞋們可以根據自己的實際情況靈活使用~

 


Airtest官網:http://airtest.netease.com/
Airtest教程官網:https://airtest.doc.io.netease.com/
搭建企業私有雲服務:https://airlab.163.com/b2b


免責聲明!

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



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