普通測試如何用Airtest編寫UI自動化腳本


前言

  自動化測試,對於普通人來說,似乎是一種很高深的技術——它可以自動對UI操作,可以自動記錄用戶行為,甚至可以定時開始,聽起來很厲害很高級。但實際上呢,自動化只不過是測試大佬們拿來假裝自己逼格比較高的玩意,如果你理解了它的模式,揭開它的面紗后,你就會發現,自動化也不過如此。

  自動化測試又大致分為UI自動化和接口自動化兩種。其中UI自動化,即用腳本代替人工在app/游戲上點點點;而接口自動化(在游戲行業被稱為協議自動化),即跳過客戶端直接通過接口/協議與服務端接照指定流程進行對話。兩種自動化一個側重於客戶端使得其通俗易懂,一個側重於服務端而讓其更艱難晦澀;但是UI自動化中其實包含了接口自動化,而接口自動化又因為拋棄了UI變得更輕便。

  在此,我們主要講解下UI自動化。UI自動化,之前可能需要一定的代碼基礎才能參與進來,但在airtest發布之后,這一硬件要求也跟着大大地降低了。Airtest的傻瓜式設計,使得其可以跳過渲染樹節點定位,直接以圖片識別的形式去定位,讓自動化變得十分簡單,你只要根據要求截好對應的圖片,在准備完自動化流程后,點擊一下開始,自動化便開始了

腳本文件的創建

  首先需要創建腳本文件,airtest提供了兩種格式的文件——.air后綴和.py后綴

  

  雖說分開了兩種,但兩者之間的差別其實不是很大(.air文件最終也是轉換成.py文件執行),具體選擇哪個看個人喜好,個人比較喜歡純python文件,因此創建的為.py后綴的文件

  

  設置文件保存的路徑及文件名

  

  設定好之后直接點擊下方的ok按鈕,airtest即會自動生成如下的python文件

   

設備的連接

  設備的連接這里就不細講了,直接用connect連接便可,若發現連接失敗,嘗試點擊connect右側的下拉框選擇use javacap或者其它

 腳本的編寫

  airtest腳本的編寫變得非常簡單,基本上只要了解python的while/for循環、等待,就可以應對大多數的腳本編寫

  以騰訊動漫舉個例子,為其設定一個自動化需求為:

    1.打開app

    2.登錄

    3.跳轉到QQ授權界面取消授權

    4.再登錄

    5.跳轉到QQ授權界面確定授權

    6.登錄成功

    7.搜索漫畫“屍兄”

    8.退出登錄

    9.不停重復登錄到退出之間的操作以確定是否有問題

  當然,app的自動化目前主流是appium,不過airtest的純UI識別也是可以做app的自動化,因此在此用更為方便的app,而不是游戲

  我們首先進行需求分析,“不停重復登錄到退出之間的操作”說明我們需要使用的是while循環,而前面的流程我們只需要按順序寫好就行了

  打開app(最好是用package名去打開,這里因為懶得去翻騰訊動漫的包名,便直接以ui識別的形式打開):

    打開我們只需要點擊一次app即可,因此

    

    先點擊左側的touch按鈕,點擊后會出現截圖的效果,直接移動到騰訊動漫的圖標上,把動漫的圖標截圖下來,airtest會自動在.py文件上生成touch代碼

     

  由於打開app需要等待一段時間讓app初始化一下,大概5秒,我們但要引入python的等待time.sleep(5):

    

  跳轉到登錄頁簽:

    

  再將while True寫上:

    

   我們手動將app打開,再對后續的步驟每一步用airtest截好對應的操作圖:

     “點我登錄”

    

    跳轉到登錄方式后,我們要點擊QQ登錄

    

    后續的都是這樣一步一步截圖即可,這里就暫略了

腳本的執行

  腳本的執行只需要點擊上方對應的三角按鈕即可

  

 LOG

  對於不太懂python的人來說,log查看窗打印的東西可能看不懂,因此有參考價值的只有報錯時間(哪一步的報錯會直接在代碼出置紅顯示)

  


免責聲明!

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



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