Airtest Project的探索和使用


Airtest使用參考博文: https://testerhome.com/topics/12391

1. 安裝Python 3

2. 安裝pip: 安裝方法參考另外一篇隨筆

pip3部署:

C:\Users\cmd>python2 -m pip install --upgrade pip

#檢查pip3 python3已安裝庫 C:\Users\cmd>pip3 list

#檢查pip3 有什么庫需要升級 C:\Users\cmd>pip3 list -o

升級該庫  C:\Users\cmd>pip3 install --upgrade setuptools

 

虛擬Python virtualenv環境部署

C:\Users\cmd>pip3 install virtualenv

 

安裝Airtest提供的Android App UI測試庫pocoui

 通過pip 命令 pip install pocoui 安裝poco庫,這個過程等待的時間會比較長一點:

C: \Users\wb-liuying.ae>pip install pocoui

 

 

 

#檢查都依賴安裝了哪些 pip list

官網下載Airtest Project,下載之后解壓就可以直接使用

http://airtest.netease.com/

手機連上電腦,手機的開發者模式開關打開,還要打開“允許通過USB調試修改權限或模擬點擊”的開關

Airtest右邊的設備窗模塊點擊刷新ADB,然后右上角點擊connect連接手機,

手機連接上后Airtest會下發一些安裝,點擊允許

 PocoService 
com.netease.open.pocoservice.test
Yosemite(與輸入法相關)

安裝好了之后,鼠標點擊屏幕應該是可以直接操作了

 

可以通過AirtestIDE提供的輔助模塊錄制腳本,也可以自己編寫。

左邊的poco輔助窗,可以用來定位元素,選中鎖定按鈕,鼠標點擊你需要定位的元素,就是看到這個元素的信息

 

下面是我自己編寫的測試的腳本,試了兩台手機可以正常跑。

# -*- encoding=utf8 -*-
__author__ = "wb-liuying.ae"
__title__ = "test script title"
__desc__ = """
this is a test script.
"""
from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(force_restart=False)
# start your script here

clear_app("com.taobao.idlefish")
sleep(1.0)
start_app("com.taobao.idlefish")
sleep(10.0)
if poco("com.taobao.idlefish:id/pic"):
poco("com.taobao.idlefish:id/action_bar_right").click()
poco("com.taobao.idlefish:id/bar_text").long_click()
poco(text="預發").click()
start_app("com.taobao.idlefish")
sleep(10.0)

while poco("android.widget.FrameLayout").child("android:id/content").child("android.widget.RelativeLayout").child("com.android.packageinstaller:id/dialog_container").child("android.widget.LinearLayout"):
poco("com.android.packageinstaller:id/permission_allow_button").click()
sleep(3.0)
items = poco("android.widget.LinearLayout").child("android:id/content").child("com.taobao.idlefish:id/main_content_layout").child("com.taobao.idlefish:id/id_indicator").child("android.widget.RelativeLayout").child("com.taobao.idlefish:id/indicator_itmes").child("android.widget.RelativeLayout").child("com.taobao.idlefish:id/tab").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/tab_icon")
items[3].click()
poco("com.taobao.idlefish:id/login_button").click()
poco("com.taobao.idlefish:id/ali_user_guide_account_login_btn").click()
poco("com.taobao.idlefish:id/accountCompleteTextView").click()
text("aq申訴測試8")
poco("com.taobao.idlefish:id/content").click()
text('wb-liuying.ae|Dream123!')
poco("com.taobao.idlefish:id/loginButton").click()
items1 = poco("android.widget.LinearLayout").child("android:id/content").child("com.taobao.idlefish:id/main_content_layout").child("com.taobao.idlefish:id/id_indicator").child("android.widget.RelativeLayout").child("com.taobao.idlefish:id/indicator_itmes").child("android.widget.RelativeLayout").child("com.taobao.idlefish:id/tab").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/tab_icon")
items1[2].click()
poco("com.taobao.idlefish:id/vmmsi_title").click()
items = poco("android.widget.LinearLayout").child("android:id/content").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/ansm_list").child("android.widget.FrameLayout").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/stub").child("com.taobao.idlefish:id/imageCard").child("com.taobao.idlefish:id/tv_title")
items[1].click()
sleep(10.0)
snapshot(msg="頁面顯示正確")
poco("com.taobao.idlefish:id/left_image").click()
sleep(1.0)
items = poco("android.widget.LinearLayout").child("android:id/content").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/ansm_list").child("android.widget.FrameLayout").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/stub").child("com.taobao.idlefish:id/imageCard").child("com.taobao.idlefish:id/tv_title")
items[3].click()
sleep(10)
snapshot(msg="頁面顯示正常")
clear_app("com.taobao.idlefish")

腳本運行之后可以查看自動生成的報告

 



使用感受:非常的好用,快捷方便。容易上手。
遇到的問題:
試了幾台手機,有的能連接並且能操作,有幾台不行。所有組件都安裝了還是不能操作,不知道什么原因。

參考的鏈接:
官方文檔 http://airtest.netease.com/
Airtest的框架和使用: https://github.com/AirtestProject/airtest
poco的框架和使用: https://github.com/AirtestProject/poco


免責聲明!

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



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