Airtest是啥?
簡單理解:基於圖像識別的UI自動化測試框架
俗人理解:截圖即可完成自動化測試
適用場景:游戲、APP、PC軟件,支持Window、Android、IOS
Airtest官方文檔
官網:https://airtest.doc.io.netease.com/
快速上手系列:https://airtest.doc.io.netease.com/tutorial/0_automated_testing/
AirtestIDE使用文檔:https://airtest.doc.io.netease.com/IDEdocs/getting_started/AirtestIDE_install/
官方博客:https://juejin.im/user/5dc8c4ba6fb9a04a95289e6e/posts
tips:如果會Python當然最好啦,因為在AIrtest腳本中是支持你寫Python腳本滴
大概
目前博主業務中只涉及PC端軟件,所以這里也只大概介紹如何針對PC端軟件自動化測試
主要實際應用場景
- 一般用來跑一些主流程,看看是否會有概率性問題出現
- 驗證偶現問題是否已bugfix
- 涉及一些重復性的操作
連接Window窗口
- 若要選中桌面,直接選中桌面模式不要用【選定窗口】的方式來選擇桌面
- 推薦使用【選定窗口】,不推薦使用【搜索窗口】
.air腳本解析
實際上.air腳本文件時一個普通的文件夾,里面附帶一個同名的.py文件,兩者必須同名
初始化環境
auto_setup(basedir=None, devices=None, logdir=None, project_root=None)
自動配置初始化運行環境,如果當前沒有連接設備的話,就默認嘗試連接Android設備。
如果auto_setup不傳入任何參數的話,Airtest將會讀取運行時命令行中傳入的各項參數,來對環境進行初始化。(即:auto_setup(__file__))
運行腳本
方式一:使用命令行運行腳本
airtest run untitled.air --device 設備 --log日志
方式二:使用AIrtestIDE運行腳本
AirtestIDE安裝目錄 runner air腳本目錄 --device 運行腳本的設備 --log 日志存放目錄
"E:\AirtestIDE_2019-09-11_py3_win64\AirtestIDE" runner "C:\Users\user\Desktop\airteach.air" --device Windows:///198894 --log "F:/Airtest_logs\d77c305860c92615b15f443398ec3f57"
設備連接
- 如果在執行命令行時連上設備(沒有加上--device),可以在腳本代碼中使用connect_device接口來連接設備。例:connect_device("Windows:///198894")
- device() 接口可以獲取當前使用中的設備,如果是window就會返回窗口句柄(198894)
- Airtest支持一個腳本同時連接多個設備,使用set_current接口可以在多個設備中進行切換
核心包
- airtest.core.api 跨平台核心包
- airtest.core.android Android平台專屬包
- airtest.core.ios IOS平台專屬包
- airtest.core.win window平台專屬包
圖片類Template介紹
touch(Template(r"tpl1556019871196.png", record_pos=(0.204, -0.153), resolution=(1280, 720)))
Template即Airtest封裝的圖片類,運行時會先去讀取這張圖片,然后在當前畫面中找到最符合這張圖片的坐標點,最后才執行touch點擊
參數一:圖片名
參數二:record_pos 根據這位置附近查找找不到符合條件的圖片,再擴大尋找范圍到整個畫面
參數三:resoution 畫面分辨率,如果在不同設備上回放腳本,Airtest將會對當前畫面的分辨率按照比例進行一定的縮放,方便圖片的跨分辨率匹配。