使用Airtest進行UI自動化測試


一、環境搭建

1、Airtest客戶端下載

訪問官網http://airtest.netease.com/,根據自己的系統下載相應的客戶端安裝;

2、python工具下載與環境搭建

在本地python環境中安裝airtest和pocoui,然后用命令行運行腳本;

1、建議使用3.7以下 版本,下載python3;

2、下載python后,配置本地的運行環境,詳見:http://airtest.netease.com/docs/cn/4_run_script/run_script.html#id4

     1)使用 pip 安裝Airtest框架 pip install airtest

     2)若運行代碼時,在cv2模塊報 ImportError: DLL load failed: 找不到指定模塊 的錯,如果使用的python版本低於3.7,請直接運行: 

        pip uninstall opencv-contrib-python
        # 若以下安裝語句運行失敗,可以嘗試更新pip到最新版本后重試
        pip install opencv-contrib-python==3.2.0.7

     3)Poco安裝

         使用 pip 安裝poco框架 pip install pocoui,請注意庫的名稱為 pocoui,不要填錯。

3、在Airtest中集成python環境

在Airtest中集成python環境的話,需要安裝python之后,再填寫python的路徑到AirtestIDE中;可以參考:http://airtest.netease.com/docs/cn/4_run_script/run_script.html#airtestidepython 進行集成;

二、Airtest使用

1、使用方法

具體請參考官方文檔:http://airtest.netease.com/docs/cn/,請優先看快速5分鍾使用教程:http://airtest.netease.com/tutorial/Tutorial.html

2、在Airtest IDE中連接手機

在Air test中連接手機請查看連接:http://airtest.netease.com/docs/cn/2_device_connection/1_android_phone_connection.html#androidusb

手機連上Airtest之后,會向手機中咱裝3個app,如下:

 pocoservice是支撐poco操作的app,yosemite是airtest的輸入法,安裝之后,手機的默認輸入法會變成這個輸入法,如果需要改回來原來的輸入法,需要手動到手機設置里面進行修改;

3、在代碼中連接手機

如果是在 .py 腳本文件中 import airtest/poco ,希望以普通python腳本的方式來運行的話,可以在腳本代碼中使用 connect_device 接口:

1 from airtest.core.api import *
2 connect_device("Android:///")  # 傳入的是設備字符串

4.多個手機交互

如果case中涉及到兩個手機交互的,可以在.py文件中連接多個手機,需要在哪個手機上操作,就需要在腳本中使用set_cerrent()借口來切換到相應的手機上;

1 device1 = "c17a4cb4" #設備1
2 device2 = "RKK0217C15003363" #設備2
3 dev1 = connect_device("android://127.0.0.1:5037/"+device1)#連接設備1
4 dev2 = connect_device("android://127.0.0.1:5037/"+device2)#連接設備2
5 poco1 = AndroidUiautomationPoco(dev1) #初始化設備1
6 poco2 = AndroidUiautomationPoco(dev2) #初始化設備2
7 set_current(device1)#切換到手機1
8 set_current(device2)切換到手機2

5.case舉例

初始化設備之后就可以進行相關設備的poco操作了,舉個例子:

這個例子是打開微信,點擊聊天信息中的一個好友,然后清除好友聊天的例子;

 1 from poco.drivers.android.uiautomation import AndroidUiautomationPoco
 2 device1 = "c17a4cb4" #設備號
 3 dev1 = connect_device("android://127.0.0.1:5037/"+device1)#連接師傅手機
 4 poco1 = AndroidUiautomationPoco(dev1) #實例化手機
 5 auto_setup(__file__)
 6  
 7  
 8 def clear_wechat(poco):#清除微信的聊天記錄
 9     start_app("com.tencent.mm")#啟動微信
10     sleep(12)#等待12秒
11     poco1(text="三星").click()#點擊好友“三星”的聊天
12     poco1("android.support.v7.widget.LinearLayoutCompat").click()#點擊更多
13     poco1(text="清空聊天記錄").click()#點擊清空聊天記錄
14     poco1(text="清空").click()#點擊清空
15     stop_app("com.tencent.mm")#關閉微信

6.引用其他air文件的方法:

如果有很多重復的操作,可以將這些重復的操作寫到一個公用的air文件里面,然后再在用例里面引用這個公用的air文件的方法就可以:

舉例,有一個名叫gongyou.air的文件,里面有一個clear_wechat的方法,這個clear_wechat方法就是一個清除微信聊天記錄的用例,如果需要在用例中用到這個clear_wechat,就需要在用例中引用這個文件,然后倒入這個引用文件中的clear_wechat方法,如下:

 1 # -*- encoding=utf8 -*-
 2 __author__ = "xhong"
 3 
 4 from airtest.core.api import *
 5 from poco.drivers.android.uiautomation import AndroidUiautomationPoco
 6 from poco.exceptions import PocoNoSuchNodeException
 7 from poco.exceptions import PocoTargetTimeout
 8 ST.PROJECT_ROOT = "D:\code\AirtestCase"#引用公用air的路徑
 9 using("gongyou.air")
10 from gongyou import clear_wechat

7.IDE的使用

IDE的設置和使用官網有具體的說明:http://airtest.netease.com/docs/cn/7_settings/1_ide_settings.html#editor

7.1、新建腳本

點擊腳本窗口右側的“+”號,會新建腳本,新建的腳本默認會生成下面的代碼;如下:

7.2 Airtest輔助窗的使用

需要圖像識別的使用的是Airtest輔助窗;

7.3 poco輔助窗的使用:

符合下列框架的APP的UI定位使用的是POCO輔助窗;

已安卓原生應用舉例:

選擇Android原生應用之后,會提示導入相關的庫,選擇yes就好;

 

 

  

7.4、執行腳本與查看報告

執行單個腳本,在airtest中執行就可以,如下:

 

7.5 執行多個腳本,需要在python中跑代碼

多個腳本批量執行,在Airtest IDE中無法實現,需要單獨寫一個框架,並使用python寫一個執行入口文件myrunner.py;

多個腳本串行執行腳本請參考:https://blog.csdn.net/u010127154/article/details/83375659

 執行myrunner.py文件時,需要更改自己的AllCase路徑和自己手機的設備號:

說明:  1.所有的需要執行的case寫好之后都放在AllCase文件夾里面;

           2.執行時只需要執行myrunner.py文件就可以了。

           3.批量執行的報告會匯總到/Users/xhong/Documents/UI/AirtestCase/AllCase/summary.html文件里面,所有case執行完成之后,打開semmary.html文件可以看到匯總頁面,點擊每一個case名稱可以查看具體的測試報告的內容;

7.6 需要注意的問題:

airtest 測試需要注意的問題:

1、在使用Airtest過程中,遇到的錯誤,請先到官網http://airtest.netease.com/docs/cn/9_faq.html,查找相應問題的解決方法,這個很重要,可以節省很多時間;
2.查看批量腳本的執行報告時,不要再IDE里面查看,直接打開文件就可以;
3.圖像識別時,要截取高分辨率的手機來適配低分辨率的手機;
4.最好使用華為或是三星的手機,其他的手機啟動pocoserver時可能會失敗,導致腳本執行失敗;

 

參考:https://blog.csdn.net/u010127154/article/details/83375659

 


免責聲明!

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



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