點(diǎn)擊鏈接加入QQ群229390571(全國(guó)招聘信息哄陶、免費(fèi)公開課残黑、視頻應(yīng)有盡有):https://jq.qq.com/?_wv=1027&k=5rbudQa 更多內(nèi)容可以關(guān)注公眾號(hào):測(cè)試幫日記
之前寫過一篇airtest的文章,鏈接在這里airtest自動(dòng)化測(cè)試工具快速入門
這次是學(xué)員的原創(chuàng)文章也是關(guān)于airtest的玩裙,獻(xiàn)給大家姊舵,本文最終版權(quán)歸學(xué)員斌宇所有
一、Airtest的簡(jiǎn)介
對(duì)于測(cè)試人員而言寞奸。小程序測(cè)試一定要在上線后關(guān)注并驗(yàn)證呛谜。小編所在項(xiàng)目現(xiàn)已完成手APP/微信小程序渠道的UI自動(dòng)化測(cè)試和監(jiān)控的建設(shè)。以下說明如何使用airtest實(shí)現(xiàn)小程序的渠道監(jiān)控颂砸。
說明:
Airtest是網(wǎng)易出品的一款基于圖像識(shí)別和poco控件識(shí)別的一款UI自動(dòng)化測(cè)試工具蠢壹。Airtest的框架是網(wǎng)易團(tuán)隊(duì)自己開發(fā)的一個(gè)圖像識(shí)別框架牵舱,計(jì)算機(jī)用戶不需要一行行的去寫代碼,而是用屏幕截屏的方式聚凹,用截出來的圖形擺列組合成神器的程序割坠,這是Airtest的一部分。小編就是基于它做了二次開發(fā)實(shí)現(xiàn)的自動(dòng)化測(cè)試和監(jiān)控告警的功能妒牙。
git地址:
https://github.com/AirtestProject/Airtest
二彼哼、關(guān)于自動(dòng)化測(cè)試
意義:節(jié)省人力、物力单旁、時(shí)間沪羔、硬件資源等,提升測(cè)試效率象浑,特別對(duì)于繁瑣重復(fù)的測(cè)試用例蔫饰,可以使測(cè)試人員更專注于新的測(cè)試模塊的建立和開發(fā),從而提高測(cè)試覆蓋率愉豺。
市面上常見的UI自動(dòng)化測(cè)試工具以及優(yōu)缺點(diǎn):
相較于以上工具來說篓吁,Airtest有以下優(yōu)點(diǎn)和缺點(diǎn):
三、環(huán)境的搭建
AirtestIDE已經(jīng)幫你集成了所有的環(huán)境蚪拦,自帶錄制腳本欄杖剪,自動(dòng)生成腳本,自帶編輯器還自帶模擬器驰贷,有了一個(gè)AirtestIDE就可以輕松簡(jiǎn)單的錄制腳本了盛嘿。下載地址是Airtest的官網(wǎng):
http://airtest.netease.com/
AirtestIDE的使用教程跟文檔也在下面的連接中:
http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html
1、進(jìn)入官網(wǎng):http://airtest.netease.com/括袒,下載airtest次兆,解壓,點(diǎn)擊exe啟動(dòng)即可锹锰。
2芥炭、連接手機(jī):
http://airtest.netease.com/docs/cn/2_device_connection/1_android_phone_connection.html
http://airtest.netease.com/docs/cn/2_device_connection/2_android_faq.html
不同的手機(jī),可能會(huì)略有不同恃慧。核心都是要打開手機(jī)的開發(fā)者模式园蝠,打開USB調(diào)試。
Airtest通過adb連接你的設(shè)備到電腦痢士,再接入Airtest框架以完成錄制和腳本運(yùn)行彪薛。
Airtest框架調(diào)用的adb路徑為:{Airtest安裝路徑}\airtest\core\android\static\adb\windows
在使用AirtestIDE連接設(shè)備之前,先通過adb devices命令確認(rèn)設(shè)備已經(jīng)連接良瞧。
當(dāng)真機(jī)能夠成功接入時(shí)陪汽,在device窗口會(huì)自動(dòng)識(shí)別出真機(jī)設(shè)備。
連接模擬器時(shí)褥蚯,可以在遠(yuǎn)程設(shè)備連接選項(xiàng)中連接模擬器的設(shè)備連接代碼挚冤,也可以通過adb連接完成之后識(shí)別。
注意:需要勾選Use javacap選項(xiàng)可參考官方文檔:
http://airtest.netease.com/docs/cn/2_device_connection/3_emulator_connection.html
四赞庶、簡(jiǎn)單使用
按照官方文檔進(jìn)行即可训挡。主要用到的功能是錄制澳骤、touch、sleep澜薄、assert_exists等功能为肮。
五、小程序自動(dòng)化環(huán)境配置
一般輸入debugx5.qq.com 可打開調(diào)試功能肤京。但如果出現(xiàn)下面的問題:
則需要進(jìn)行輸入命令
debugmm.qq.com/?forcex5=true
點(diǎn)擊后效果如下:
debugtbs.qq.com
點(diǎn)擊后效果如下: 注意 “內(nèi)核未被禁用”的選項(xiàng)是打開狀態(tài)
最后可以點(diǎn)擊 debugx5.qq.com
勾選會(huì)讓你重啟微信
總結(jié):
如果突然發(fā)現(xiàn)無法識(shí)別小程序中的元素颊艳,把上面的命令重來一遍:
debugmm.qq.com/?forcex5=true
debugtbs.qq.com
debugx5.qq.com
六、Python運(yùn)行air腳本
Airtest腳本基于python語言忘分,官方推薦使用python運(yùn)行腳本
安裝部署python環(huán)境
推薦安裝python3.5以上版本棋枕,并配置環(huán)境
Python必備庫安裝
pip install airtest
pip install pocoui
然后再下載一個(gè)Python的編輯器來編輯代碼,個(gè)人推薦使用的是pycharm妒峦。接下來就是使用官方提供的啟動(dòng)demo
代碼:
from airtest.core.api import *
# 通過ADB連接本地Android設(shè)備
connect_device("Android:///")
#安裝待測(cè)軟件apk重斑,路徑信息。
install("path/to/your/apk")
#開始運(yùn)行appstart_app("com.pingan.certicationApp")
#點(diǎn)擊某個(gè)圖片肯骇,Airtest中基于圖像識(shí)別語法窥浪,圖片自己提供。
touch(Template("image_of_a_button.png"))
#滑動(dòng)語音笛丙,開頭圖片跟結(jié)尾圖片
swipe(Template("slide_start.png"), Template("slide_end.png"))
#添加斷言的圖片
assert_exists(Template("success.png"))
#點(diǎn)擊Android上的返回鍵
#keyevent("BACK")
#點(diǎn)擊Android上的Home鍵返回
#home()
#uninstall("package_name_of_your_apk")
七漾脂、框架代碼詳解
腳本如下:
實(shí)現(xiàn)了多case同時(shí)運(yùn)行生成聚合報(bào)告
不同設(shè)備運(yùn)行同一腳本
AllReportStartCMD.py文件既是通過python執(zhí)行cmd命令
運(yùn)行該文件 AllReportStartCMD.py后,得到報(bào)告:
至于怎么與jenkins集成胚鸯,就很簡(jiǎn)單了符相,把這個(gè)AllReportStartCMD.py文件寫到j(luò)enkins任務(wù)里即可
之后進(jìn)行構(gòu)建就可以看到結(jié)果啦