每個測試人員都會遇到的批量安裝,你已經會了嗎?


在博主加入的軟件測試技術交流群日常提問中,看到有個成員提了個這樣的問題:

能不能通過腳本來實現多台設備同時安裝 App?

這個問題之前我有見過,在實際工作中這個需求確實挺常見,比如我想要在很多台設備中安裝很多的 APK,手動一個個的安裝過程挺痛苦。既然大家都有這樣的述求,所以就干脆寫篇文章解決大家的問題。

☆Pluto:大佬們,怎么寫腳本運行安裝apk包到手機呀?有教程嘛?

☆ 我:不需要寫腳本,通過adb install命令就可以了

☆Pluto:頻繁安裝的話,是不是用腳本來安裝會快點

☆我:通過腳本會更加方便

☆ Pluto:幾台手機能同時安裝嘛?

☆我:那你要寫代碼通過多線程去安裝了

實現過程

核心技術解決方案:

adb 命令 + 多進程/多線程

采用的腳本語言:

Java、Python、Shell、bat 都可

因為 Shell 與 bat 直接可以與 adb 命令交互,效率更高,筆者所用的是 Windows 平台機器,所以本篇文章采用的 bat 腳本實現。

1、識別多設備信息

要想要在多台設備上執行,我們需要得到對應的設備信息,而由於 adb install 命令可以通過-s 參數指定設備:

adb -s deviceName install XXApk

所以我們這里需要得到設備的 deviceName。

思路:adb devices 命令結果保存在本地文件中

adb devices > devices.txt

2、獲取當前目錄下所有的 APK 文件

這里通過 bat 腳本實現非常簡單,對應的腳本如下:

dir *.apk /b > apks.txt

同時我們也選擇將所有的 apk 文件信息保存到本地的 apks.txt 文件中。

3、循環遍歷設備列表執行安裝

for /f "skip=1 delims=device" %%i in (devices.txt) do ( start adb_install %%i )

解釋:

for /f in (devices.txt)

表示循環遍歷 devices.txt 文件中的文本內容

"skip=1 delims=device"

  • skip=1 表示跳過第一行,因為 adb devices 輸出的結果中第一行為 List of devices attached,我們需要跳過處理;
  • delims=device 表示通過 device 分隔符切分字符串,比如 127.0.0.1:62001 device 切分之后的結果為 127.0.0.1:62001

%%i

表示對每一行的文本內容切分之后的結果,如 127.0.0.1:62001,即設備名

start adb_install %%i

這里我們通過 start 命令重新啟動一個單獨的命令行窗口,然后在里面執行 adb_install.bat 腳本,並且攜帶設備名參數

4、安裝過程(adb_install.bat)

對應的腳本內容如下:

@echo off echo --------------start install apks to %1--------------------
for /f %%i in (apks.txt) do ( echo install %%i to %1... adb -s %1 install -r %%i ) echo -----------------%1 finished install----------------------

這里我們通過循環遍歷所有的 apk 文件進行安裝,調用 adb install 命令,其中-r 參數表示如果應用已安裝,還是會再強制安裝。

對應的腳本文件及使用方式

目錄結構如下:

multi_install.bat 文件對應的腳本內容:

@echo off echo ------------multi install apks start--------------------
echo get all devices... adb devices > devices.txt echo get all apks... dir *.apk /b > apks.txt for /f "skip=1 delims=device" %%i in (devices.txt) do ( start adb_install %%i ) exit

adb_install.bat 文件對應的腳本內容:

@echo off echo --------------start install apks to %1--------------------
for /f %%i in (apks.txt) do ( echo install %%i to %1... adb -s %1 install -r %%i ) echo -----------------%1 finished install----------------------

使用步驟:

1.確保設備已經通過 adb 連接上(adb devices 命令能夠檢測到設備)

2.將所需安裝的 apk 文件放置與腳本同目錄下

3.雙擊執行 multi_install.bat 即可

執行效果:

好文推薦

軟件測試人員必讀的經典書籍(附電子書),前阿里大佬給我推薦...

月薪3萬的大廠測試工程師裸辭3個月,送外賣謀生背后的真實感悟

測試行業工作4年了,從只會“點點點”到了現在的測試開發,年薪30W+,還好當時沒有放棄


免責聲明!

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



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