appium和airtest_關于Airtest自動化測試工具

一開始知道Airtest大概是在年初的時候,當時,看了一下官方的文檔,大概是類似Sikuli的一個工具,主要用來做游戲自動化的,通過截圖的方式用來解決游戲自動化測試的難題。最近,移動端測試的同事嘗試用它的poco庫來做自動化,看樣子還不錯,所以,這里推薦給各位同學。

### Airtest IDE

這是Airtest測試工具標配的IDE,目的是方便我們用于錄制/編寫自動化測試。

你可以使用賬號登錄或直接點擊左下角“skip”按鈕跳過。

啟動Android模擬器或者用PC連接一臺手機。通過adb命令檢查移動設備。

> adb devices

List of devices attached

emulator-5554 device

當我在Android模擬器中操作時,Airtest IDE右側的界面是同步的,這一點比很多移動測試工具做的優秀,例如,appium desktop必須手動刷新才能獲取最新的界面。

#### Airtest

Airtest IDE支持Airtest腳本的錄制,用法非常簡單,你甚至可以先不用看它的API,通過錄制來熟悉它的API。

右側Airtest窗口以及API,點擊右上角錄制按鈕,然后,就可以在映射的Android模擬器界面上點點點了。

以下是我點點點,生成的腳本。

過程非常簡單,點擊桌面上的計算器圖標,打開編輯器輸入1+1= ,然后,點擊工具欄上的 “運行”按鈕,就可以回放了。

這種腳本更適合游戲,因為游戲界面很難定位,圖片識別(截圖)的方式確實是不錯的選擇。

###Poco

Poco是另外一種形式的腳本,它與一般的自動化工具一樣,通過元素本身的屬性來定位元素,并且它同樣支持錄制。\

點擊右上角第一個的錄制按鈕。然后,繼續在android映射的界面上點點點。

因為腳本里面沒截圖,我就單獨拿出來了。

__author__ = "fnngj"

from poco.drivers.android.uiautomation import AndroidUiautomationPoco

poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

poco("計算器").click()

poco("com.android.calculator2:id/digit_1").click()

poco("com.android.calculator2:id/op_add").click()

poco("com.android.calculator2:id/digit_1").click()

poco("com.android.calculator2:id/eq").click()

從poco的API來看比appium更為簡潔。

如果你要做的是非游戲的APP的話,poco應該是我們后面學習的重點。這樣的代碼不管是和單元測試框架結合還是使用PO設計模式都是沒有問題的。

而且,同樣提供元素的屬性展示,又有錄制功能加持,在開發效率上應該會提高不少。

如果,你剛好又會Python,那么這將是一個不錯的選擇。

歡迎大家加入我們軟件測試技術交流群(群號見文章開頭圖片)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540067.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540067.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540067.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

easyexcel 設置標題_使用easyexcel完成復雜表頭及標題的導出功能(自定義樣式)

如需客戶端指定excel版本,只需要判斷后綴名然后在controller中的.excelType(ExcelTypeEnum.XLS)做指定輸出內容格式即可***(注意表格行高列寬統一設置是在實體類的類名注解上,如果需要對表格進行精細的寬高設置需要刪除掉這兩個注解,可以在攔截器使用row的方法進行設置)1. ## 引…

mysql distinct兩列_正在檢索兩列,并對MySQL中的每列應用“distinct”

這是一張桌子books----------------------------| author_fname | author_lname |----------------------------| Dan | Harris || Freida | Harris || George | Saunders |----------------------------我知道如果DISTINCT用作SELECT DISTINCT author_fname, author_lname FRO…

mysql笛卡爾積 去重_MySQL入門(函數、條件、連接)

MySQL入門(四)distinct:去重mysql>:create table t1(id int,x int,y int);mysql>: insert into t1 values(1, 1, 1), (2, 1, 2), (3, 2, 2), (4, 2, 2);mysql>: select distinct * from t1; # 全部數據mysql>: select distinct x, y from t1; # 結果 1,…

nmon安裝為什么重啟mysql_Nmon的安裝及使用

一、下載Nmon根據CPU的類型選擇下載相應的版本:二、初始化工具[rootmululu ~]# cd /opt[rootmululu opt]# mkdir nmon[rootmululu opt]# cd nmon[rootmululu nmon]#wget http://sourceforge.net/projects/nmon/files/download/nmon_x86_12a.zip[rootmululu nmon]# u…

mysql join 循環_關于mysql聯表的內嵌循環操作nested loop join中on和where執行順序問題...

mysql的理論依據沒找到,個人理解是先執行where的過濾條件,先關聯再過濾明顯做的是無用功。oracle中倒是能在執行計劃中看到,先執行的是過濾條件(下面代碼中最后一行)。explain plan for SELECT * FROM tmp_t2 t2 LEFT JOIN tmp_t1 t1 ON t2.i…

python非法語句是_python 如何優雅的處理大量異常語句?

bs4的鏈式調用很贊,所以我把soup包裝了一下class MY_SOUP():包裝類def __init__(self,soup):self.soup soupif soup:if soup.string:self.string soup.string.strip()else:self.string Noneelse:self.string Nonedef find(self, *args, **kw):ret self.soup.fi…

Iptables詳解+實例

2019獨角獸企業重金招聘Python工程師標準>>> Iptabels是與Linux內核集成的包過濾防火墻系統,幾乎所有的linux發行版本都會包含Iptables的功能。如果 Linux 系統連接到因特網或 LAN、服務器或連接 LAN 和因特網的代理服務器, 則Iptables有利于…

django ipython shell_通過django的shell_plus編寫ipython腳本

Im writing a shell script which runs a command through ipython with the -c option like this:我正在編寫一個shell腳本,它通過ipython運行一個命令,使用-c選項,如下所示:ipython -c "from blah import myfunct; myfunct()"but…

阿里云服務器安裝onlyoffice_阿里云服務器安裝 JDK 8

歡迎關注“科技毒瘤君”&#xff01;上一期給大家分享了如何申請阿里云的免費云服務器&#xff0c;還沒有看過的小伙伴可以先前往了解 >>阿里云免費服務器<<這一次將會為大家分享如何在服務器上配置 Java環境&#xff0c;這里演示使用的系統為Ubuntu 18.04 64位&am…

js發送請求

1.Chrome控制臺中 net::ERR_CONNECTION_REFUSED js頻繁發送請求&#xff0c;有可能連接被拒絕&#xff0c;可用setTimeout&#xff0c;過幾秒發送&#xff0c;給個緩沖時間 var overlayAnalystService L.supermap.spatialAnalystService(serviceUrl); setTimeout(function () …

據說有99%的人都會做錯的面試題

這道題主要考察了面試者對浮點數存儲格式的理解。另外&#xff0c;請不要討論該題本身是否有意義之類的話題。本題只為了測試面試者相關的知識是否掌握&#xff0c;題目本身并沒有實際的意義。 下面有6個浮點類型變量&#xff0c;其中前三個是float類型的&#xff0c;后三個是d…

php使用mysql5和8的區別_mysql8.0和mysql5.7的區別是什么?

區別&#xff1a;mysql8.0的索引可以被隱藏和顯示&#xff0c;當一個索引隱藏時&#xff0c;他不會被查詢優化器所使用&#xff1b;2、mysql8.0新增了“SET PERSIST”命令&#xff1b;3、從mysql8.0開始&#xff0c;數據庫的缺省編碼將改為utf8mb4&#xff0c;包含了所有emoji字…

mysql pt check sum_percona工具pt-table-checksum

利用pt-table-checksum進行數據庫同步檢查rpm方式#wget percona.com/get/percona-toolkit.rpm源碼方式#wget http://www.percona.com/downloads/percona-toolkit/2.2.1/percona-toolkit-2.2.8.tar.gz#yum install perl perl-CPAN perl-DBD-MySQL perl-Time-HiRes解壓&#xff0…

如何通過BBED找回刪除數據

項目案例&#xff1a;客戶刪除delete了重要數據&#xff0c;無備份&#xff0c;客戶聯系我&#xff0c;要求恢復相應數據。本次通過實驗方式重現客戶現場。備份高于一切&#xff0c;首先備份&#xff0c;再操作 創建表格&#xff1a; create table king(age number,name varcha…

mysql 重置密碼語音_數字語音信號處理學習筆記語音信號的同態處理(2)

5.4 復倒譜和倒譜 定義 設信號x(n)的z變換為X(z) z[x(n)]&#xff0c;其對數為&#xff1a; (1) 那么 的逆z變換可寫成&#xff1a; (2) 取 (1)式則有 (3) 于是式子(2)則可以寫成 (4) 則式子(4)即為信號x(n)的復倒譜 的定義。因為 一般為復數&#xff0c;故稱 為復倒譜。如果對…

NFS 八步神曲

Server:第一步yum install - y nfs*第二步vi /etc/exports第三步/var/testdirs *(rw,all_squash,anonuid99,anongid99,sync)第四步service nfs start第五步chkconfig --level 35 nfs on Client第一步mount 192.168.1.X:/var/www/testdirs /var/www/testdirs第二步vi /et…

mysql權限日志_mysql權限管理、日志管理及常用工具

mysqlbinlog用法如下&#xff1a;mysqbinlog mysql.err 查詢錯誤日志當然可以通過添加參數來查看指定內容,如&#xff1a;mysqlbinlog mysql-bin.000001 -d test 只顯示對test數據庫的二進制日志mysqlbinlog mysql-bin.000001 -o 3 -r result-file 首先忽略前三個操作&…

Juicer.js模板引擎問題

由于jsp中的EL表達式語法和jquery.tmpl十分類似&#xff0c;&#xff0c;所以單純的使用${name}&#xff0c;數據是渲染不上tmpl的. SO.. 要加上轉義: ${${}amount} 或者 \${amount} 轉載于:https://www.cnblogs.com/fighxp/p/7890288.html

python把回車作為輸入_python將回車作為輸入內容的實例

當input輸入內容的時候,許多情況下輸入回車鍵另起一行輸入,但是這時候Pycharm就執行程序,然后結束,導致無法繼續輸入內容。 原因:Python默認遇到回車的時候,輸入結束。所以我們需要更改這個提示符,在遇到其他字符的時候,輸入才結束。 比如有一個任務: 請輸入文件名:憫…