使用python+poco+夜神模擬器進(jìn)行自動(dòng)化測(cè)試實(shí)例
網(wǎng)易最近出的一款自動(dòng)化UI測(cè)試工具:Airtest 挺火的,還受到谷歌的推薦。我試著用了一下,感覺(jué)優(yōu)缺點(diǎn)還是蠻明顯的。對(duì)初學(xué)者來(lái)說(shuō),能用到的也就是圖像識(shí)別的功能,這塊做得比老牌的按鍵精靈弱很多。不過(guò)Airtest集合了poco框架對(duì)熟悉python的同學(xué)來(lái)說(shuō),是個(gè)進(jìn)行自動(dòng)化測(cè)試的利器。
我用了一段時(shí)間Airtest以后,發(fā)現(xiàn)其實(shí)我完全可以丟開(kāi)Airtest,我需要的是poco框架提供的unity3d控件讀取,Airtest在其中只起到了一個(gè)pythonIDE的作用。自動(dòng)化跑py腳本時(shí),還要打開(kāi)Airtest并通過(guò)Airtest連接模擬器很煩,于是稍微研究了一下,搭建了一個(gè)python+poco+夜神模擬器的測(cè)試環(huán)境。
第1步,需要有一個(gè)自己的python環(huán)境。網(wǎng)上教程很多,不贅述。
第2步,在自己的python里引入poco。Airtest自帶poco框架,所以不使用Airtest的話,poco需要手動(dòng)導(dǎo)入。
安裝poco很簡(jiǎn)單,在cmd里輸入 pip install pocoui 即可。pip會(huì)自動(dòng)下載poco并安裝到你的python環(huán)境里。
第3步,添加夜神的adb環(huán)境變量。由于需要在命令行調(diào)用夜神,所以將夜神的adb.exe添加到系統(tǒng)環(huán)境變量里是必須的。夜神的默認(rèn)路徑是C:Program FilesNoxbin,添加即可。這樣可以直接通過(guò)os調(diào)用nox_adb.exe。
第4步 修改python腳本。
要通過(guò)python調(diào)用夜神打開(kāi)待測(cè)游戲,首先需要取得該游戲的入口類名。一般入口類名會(huì)以Activity結(jié)尾。先用夜神把待測(cè)游戲打開(kāi),然后用
adb shell dumpsys activity | findstr “Unity” 命令,
可以查到當(dāng)前所有的類名。一般第一行的cmp參數(shù)就是游戲的入口。
然后在python里使用 os.system(“nox_adb -s 127.0.0.1:62001 shell am start -n 包名/類名”)方法就可以直接通過(guò)夜神模擬器來(lái)打開(kāi)游戲了。PS:62001是夜神的默認(rèn)端口,使用其他的模擬器則更換對(duì)應(yīng)的端口即可。
原本使用Airtest的默認(rèn)腳本是這樣的。
初始化UnityPoco以后直接聲明poco實(shí)例就可以使用。
修改以后的腳本增加os命令調(diào)用模擬器開(kāi)啟游戲:
這樣,poco就可以正常取到adb連接,與之前通過(guò)Airtest工具進(jìn)行連接沒(méi)有區(qū)別。
調(diào)試環(huán)境的時(shí)候還碰到過(guò)一個(gè)坑,python的adb.exe版本與夜神的adb.exe版本不一致,需要手動(dòng)用高版本覆蓋低版本,夜神的nox_adb.exe其實(shí)就是adb.exe,手動(dòng)改一下名字就行。
再寫(xiě)個(gè)批處理文件,自動(dòng)拷貝每天編譯好的版本,然后丟到夜神里安裝,再直接執(zhí)行這個(gè)py文件,就可以做到自動(dòng)化測(cè)試了。
執(zhí)行的時(shí)候發(fā)現(xiàn)單獨(dú)執(zhí)行py腳本,與通過(guò)Airtest執(zhí)行py腳本,效率略有降低,在執(zhí)行前會(huì)有幾秒的卡頓,我估計(jì)是由于還調(diào)用了 airtest庫(kù)的原因,需要先在本地解釋。
使用Airtest寫(xiě)的腳本里,像snapshot和sleep都是Airtest提供的封裝好的命令,如果嫌效率低,就不要用這2個(gè)命令,換用python原生的命令即可。
以上這篇使用python+poco+夜神模擬器進(jìn)行自動(dòng)化測(cè)試實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python的文本常量與字符串模板之string庫(kù)2. SpringBoot+TestNG單元測(cè)試的實(shí)現(xiàn)3. 利用CSS制作3D動(dòng)畫(huà)4. .Net加密神器Eazfuscator.NET?2023.2?最新版使用教程5. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))6. Springboot 全局日期格式化處理的實(shí)現(xiàn)7. Java GZip 基于內(nèi)存實(shí)現(xiàn)壓縮和解壓的方法8. 完美解決vue 中多個(gè)echarts圖表自適應(yīng)的問(wèn)題9. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼10. JAMon(Java Application Monitor)備忘記
