python Airtest自動(dòng)化測(cè)試工具的的使用
Airtest全稱AirtestProject,是由網(wǎng)易游戲推出的一款自動(dòng)化測(cè)試框架,在軟件測(cè)試的時(shí)候使用到了該框架。這里記錄一下安裝、使用和遇到的坑的問(wèn)題…
Airtest的官網(wǎng)介紹項(xiàng)目構(gòu)成
Airtest:是一個(gè)跨平臺(tái)的、基于圖像識(shí)別的UI自動(dòng)化測(cè)試框架,適用于游戲和App,支持平臺(tái)有Windows、Android和iOS
Poco:是一款基于UI控件識(shí)別的自動(dòng)化測(cè)試框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序,也可以在其他引擎中自行接入poco-sdk來(lái)使用
源碼
AirtestIDE:跨平臺(tái)的UI自動(dòng)化測(cè)試編輯器,內(nèi)置了Airtest和Poco的相關(guān)插件功能,能夠使用它快速簡(jiǎn)單地編寫(xiě)Airtest和Poco代碼。
AirLab:真機(jī)自動(dòng)化云測(cè)試平臺(tái),目前提供了TOP100手機(jī)兼容性測(cè)試、海外云真機(jī)兼容性測(cè)試等服務(wù),請(qǐng)?jiān)L問(wèn)官網(wǎng)以了解更多
如何上手?
項(xiàng)目基于Python,因此寫(xiě)出來(lái)的所有腳本都是Python代碼,建議在使用前,先學(xué)習(xí)Python的基礎(chǔ)語(yǔ)法知識(shí)。
在編寫(xiě)自動(dòng)化腳本時(shí),可以配合官方提供的AirtestIDE編輯器,能夠快速編寫(xiě)腳本。
自動(dòng)化腳本,以及Airtest和Poco,都是基于Python的,因此也可以使用自己喜歡的Python編輯器來(lái)編寫(xiě)腳本
一、安裝
Airtest有兩種安裝方式,一種是下載安裝AirtestIDE,該IDE自帶一個(gè)python環(huán)境和Airtest庫(kù)。支持可視化選取組件測(cè)試。缺點(diǎn)就是你自己安裝的Python環(huán)境和第三方模塊無(wú)法在這IDE中使用,只能重新安裝相關(guān)模塊。
在使用中先是安裝了AirtestIDE,在官網(wǎng)很快就可以下載安裝使用。打開(kāi)IDE,左邊是Airtest輔助窗口和Poco輔助窗口,Airtest輔助窗口可以快速完成截圖識(shí)別圖片加點(diǎn)擊、滑動(dòng)等操作代碼的生成。而Poco輔助窗口可以查看應(yīng)用控件樹(shù),快速生成與應(yīng)用控件操作的相關(guān)代碼。中間則是代碼編輯框和Log窗體,用于編輯代碼和查看輸出結(jié)果等信息。右邊是設(shè)備窗口,可以進(jìn)行連接設(shè)置和設(shè)備選定,當(dāng)選定設(shè)備后,右邊的設(shè)備窗口將會(huì)變?yōu)楸贿x定設(shè)備的當(dāng)前UI界面。IDE界面如下圖所示。
二、使用
可以從官網(wǎng)的介紹了解到Airtest采用了圖形腳本語(yǔ)言Sikuli的思路,使用者不需要一行行的編寫(xiě)測(cè)試的代碼,而是用截圖的方式生成相關(guān)的操作代碼(當(dāng)然熟悉相關(guān)Api的也可以用手寫(xiě)代碼方式)。下圖所示為通過(guò)截圖實(shí)現(xiàn)的小Demo。
官方文檔: https://airtest.doc.io.netease.com/
三、在本地環(huán)境中使用及遇到的問(wèn)題
1.使用"pip install airtest" 進(jìn)行安裝
項(xiàng)目支持Python(2.7或<=3.6)的運(yùn)行環(huán)境,官方更推薦使用 Python3。在實(shí)踐過(guò)程中, 起初沒(méi)有在意這個(gè)python版本的問(wèn)題,仍堅(jiān)持使用了python3.8環(huán)境進(jìn)行安裝,但是python3.8及以上版本是不能正常安裝。安裝時(shí)會(huì)報(bào)如下錯(cuò)誤:
ERROR: Could not find a version that satisfies the requirement opencv-contrib-python<=3.4.2.17 (from airtest) (from versions: 3.4.8.29, 3.4.9.31, 3.4.9.33, 4.1.2.30, 4.2.0.32, 4.2.0.34)
ERROR: No matching distribution found for opencv-contrib-python<=3.4.2.17 (from airtest)
因?yàn)锳irtest依賴的opencv-python的版本要小于3.4.2.17,而python3.8只能安裝版本大于3.4.2.17的opencv-python庫(kù),即使你下載了opencv-python 3.4.2.17版本以上的whl文件進(jìn)行本地安裝也是行不通的,安裝的時(shí)候python3.8的環(huán)境下會(huì)報(bào)error提示不支持安裝此版本的opencv。
解決方法:可以安裝兩個(gè)版本python,使用時(shí)進(jìn)行切換環(huán)境;或者降低python版本;或者直接使用AirtestIDE…
2.IDE連接不存在設(shè)備或被占用設(shè)備容易假死
在進(jìn)行遠(yuǎn)程連接時(shí),如果嘗試連接一個(gè)不存在的設(shè)備,或者已經(jīng)被占用的設(shè)備,會(huì)造成IDE幾秒假死;
3. 假死期間關(guān)閉IDE會(huì)造成adb駐留
在IDE假死期間關(guān)閉IDE,則adb有可能不會(huì)正常退出造成駐留,造成再開(kāi)一次IDE又會(huì)喚起一個(gè)新的adb進(jìn)程。這個(gè)情況是偶發(fā)性的,有時(shí)候能在假死的時(shí)候復(fù)現(xiàn)出,有時(shí)候不能。
4.嘗試連接不存在設(shè)備時(shí),即使設(shè)備是不存在的也會(huì)加入列表
當(dāng)嘗試連接不存在設(shè)備時(shí),即使設(shè)備是不存在的也會(huì)加入列表,狀態(tài)顯示的是offline。通常來(lái)說(shuō),通過(guò) adb devices命令應(yīng)該可以查看到連接的設(shè)備,不知道這樣顯示是不是有別的用意。除此之外,模擬器是需要進(jìn)行adb connect才能在IDE中進(jìn)行操作的。因此,還遇到了有時(shí)候進(jìn)行連接時(shí),會(huì)出現(xiàn)即使設(shè)備在線(已經(jīng)確定端口沒(méi)被占用),也是顯示offline。
四、最后啰嗦幾句
AirtestProject作為近幾年開(kāi)發(fā)的移動(dòng)自動(dòng)化測(cè)試框架來(lái)說(shuō),其特點(diǎn)可謂鮮明。其一,支持跨平臺(tái);其二,對(duì)于原生應(yīng)用、Hybird應(yīng)用、Web應(yīng)用都有很好的支持度,還支持移動(dòng)游戲測(cè)試。其三,采取圖形腳本語(yǔ)言Sikuli的思路,通過(guò)相應(yīng)的IDE可以選取動(dòng)作加截圖實(shí)現(xiàn)代碼的編寫(xiě)。同時(shí)項(xiàng)目在Github上開(kāi)源,Issue有較好的活躍度。
在實(shí)際使用過(guò)程中,健全的開(kāi)發(fā)者文檔幫助解決了很多問(wèn)題。雖然內(nèi)容后面描述了很多IDE的BUG, 并不意味著AirtestProject不是一個(gè)好的自動(dòng)化測(cè)試框架。畢竟IDE只是一個(gè)編輯器,不代表項(xiàng)目本身。相反,Airtest的各種特性讓其表現(xiàn)出色。使用AirtestIDE讓人快速上手開(kāi)發(fā)的特點(diǎn)也不會(huì)因?yàn)檫@些BUG表現(xiàn)很糟糕。在使用時(shí)可以通過(guò)一些操作避免BUG發(fā)生,比如連接時(shí)不要頻繁點(diǎn)擊,假死關(guān)閉時(shí)把相應(yīng)的進(jìn)程也給清除,連接不上可以重新啟動(dòng)模擬器或者查看相應(yīng)端口是否被占用等。總而言之,我相信AirtestIDE在之后會(huì)進(jìn)行更多的優(yōu)化…
到此這篇關(guān)于python Airtest自動(dòng)化測(cè)試工具的的使用的文章就介紹到這了,更多相關(guān)python Airtest自動(dòng)化測(cè)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- flask 使用 flask_apscheduler 做定時(shí)循環(huán)任務(wù)的實(shí)現(xiàn)
- 詳解Python下Flask-ApScheduler快速指南
- python+appium自動(dòng)化測(cè)試之如何控制App的啟動(dòng)和退出
- python+appium實(shí)現(xiàn)自動(dòng)化測(cè)試的示例代碼
- Appium+Python+pytest自動(dòng)化測(cè)試框架的實(shí)戰(zhàn)
- Python + selenium 自動(dòng)化測(cè)試框架詳解
- python自動(dòng)化測(cè)試中APScheduler?Flask的應(yīng)用示例
相關(guān)文章
如何利用PyQt5制作一個(gè)簡(jiǎn)單的登錄界面
初學(xué)者制作登錄界面時(shí)常遇到網(wǎng)上代碼看不懂、不會(huì)用、用不了的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于如何利用PyQt5制作一個(gè)簡(jiǎn)單的登錄界面,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06pytorch 一行代碼查看網(wǎng)絡(luò)參數(shù)總量的實(shí)現(xiàn)
這篇文章主要介紹了pytorch實(shí)現(xiàn)一行代碼查看網(wǎng)絡(luò)參數(shù)總量的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)同時(shí)對(duì)數(shù)據(jù)做轉(zhuǎn)換和換算處理操作示例
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)同時(shí)對(duì)數(shù)據(jù)做轉(zhuǎn)換和換算處理操作,涉及Python使用生成器表達(dá)式進(jìn)行數(shù)據(jù)處理的相關(guān)操作技巧,需要的朋友可以參考下2018-03-03Qt調(diào)用Python詳細(xì)圖文過(guò)程記錄
Qt調(diào)用python實(shí)際上就是c++調(diào)python,網(wǎng)上搜會(huì)出來(lái)很多,介紹得也比較全,這里做個(gè)記錄,下面這篇文章主要給大家介紹了關(guān)于Qt調(diào)用Python詳細(xì)圖文過(guò)程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05python3獲取當(dāng)前目錄的實(shí)現(xiàn)方法
這篇文章主要介紹了python3獲取當(dāng)前目錄的實(shí)現(xiàn)方法,文中給大家提到了python3獲取當(dāng)前目錄和上級(jí)目錄的方法,需要的朋友可以參考下2019-07-07Python?sklearn?中的?make_blobs()?函數(shù)示例詳解
make_blobs()?是?sklearn.datasets中的一個(gè)函數(shù),這篇文章主要介紹了Python?sklearn?中的?make_blobs()?函數(shù),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02Python+Turtle繪制可愛(ài)的多啦A夢(mèng)的示例代碼
這篇文章主要介紹了如何利用python中的Turtle模塊繪制一個(gè)童年記憶的卡通人物哆啦A夢(mèng),文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-03-03Python實(shí)現(xiàn)輕松提取Word中的圖片
Microsoft Word是廣泛用于文檔編輯和處理的工具,有時(shí)候,可能需要從Word文檔中提取所有的圖片,以進(jìn)行后續(xù)的處理或分析,本文主要介紹了如何使用Python實(shí)現(xiàn)這一操作,需要的可以參考下2024-01-01