手機(jī)自動(dòng)化測(cè)試IDE——Airtest實(shí)戰(zhàn)篇
今天我們就來(lái)說(shuō)說(shuō)Airtest的具體操作方法吧,讓我們輕松實(shí)現(xiàn)軟件自動(dòng)化,真正解放我們的雙手吧。
基本操作
我們就是用我們說(shuō)的跨平臺(tái)API模塊中的方法來(lái)操作我們的APK,下面來(lái)看下吧。我們先點(diǎn)擊Touch,然后框選App所在的區(qū)域,如圖:
這里框選好了后就會(huì)在腳本編輯器中自動(dòng)生成代碼了,如圖:
這里就相當(dāng)于點(diǎn)擊了拼多多這個(gè)App了。當(dāng)然這里只是給大家講了一個(gè)例子,我們真正來(lái)做開(kāi)發(fā)時(shí),可以選擇一些短視頻軟件,比如抖音,微視,快手等下面我們就以抖音為主來(lái)講解下具體操作流程。
1.點(diǎn)擊目標(biāo)APP并等待界面加載完畢
我們要做自動(dòng)點(diǎn)擊肯定不能只是點(diǎn)擊App就完事了啊,還有每個(gè)APP啟動(dòng)后的時(shí)間都不固定,我們肯定得等APP啟動(dòng)完畢之后我們才可以進(jìn)行下一步操作,那么這樣怎樣做呢?我們以短視頻軟件微視為主,下面請(qǐng)看:
我們先點(diǎn)擊微視,打開(kāi)微視有兩種方法,如下:
1).根據(jù)圖像識(shí)別來(lái)打開(kāi)
上面的這種方法就是根據(jù)圖像識(shí)別來(lái)打開(kāi)的。使用這種方法你要打開(kāi)的APP必須在當(dāng)前頁(yè),不可在其它頁(yè),否則搜索不到。
2).根據(jù)包名打開(kāi)
這里我們首先需要獲取到所有的包名,然后找到微視的包名,如下:
- dev=device() # 先獲取到當(dāng)前設(shè)備對(duì)象,即是Android對(duì)象
- print(dev.list_app()) # 平臺(tái)接口列表
- start_app('com.tencent.weishi')#利用包名打開(kāi)微視
喜歡哪種方法就用哪種方法。建議用第一種,因?yàn)橛袝r(shí)候包名太多不好找。
2.點(diǎn)贊評(píng)論關(guān)閉
由于剛剛微視崩潰了,所以這里采用抖音短視頻,這里我們需要將需要打開(kāi)的APP的圖像截取下來(lái),先等到它在這篇區(qū)域出現(xiàn)然后點(diǎn)擊才能進(jìn)行其它操作 ,如下:
然后就是輸入評(píng)論,輸完后關(guān)閉評(píng)論,最后退出。
這樣我們就實(shí)現(xiàn)了打開(kāi)抖音視頻并且給視頻點(diǎn)贊和評(píng)論,然后關(guān)閉抖音回到桌面。這里有個(gè)小技巧分享給大家,就是大家在點(diǎn)擊某一個(gè)區(qū)域的圖像時(shí)記得先Wait一下哦,因?yàn)槿绻鸚ait的話(huà)如果你直接點(diǎn)擊的話(huà)就會(huì)報(bào)錯(cuò)了。
3.截屏加滑動(dòng)屏幕
如果想要捕捉操作截圖的話(huà),可以使用Snapshot進(jìn)行截圖,記得指定絕對(duì)地址哦。如下:
- snapshot(filename=r'C:\Users\Administrator\Desktop\test.jpg',msg='截圖成功')
成功截圖了;然后我們給它添加個(gè)滑動(dòng)視頻的動(dòng)作,因?yàn)槲覀儾恢牢覀兪髽?biāo)此時(shí)所處的位置的坐標(biāo)的值是多少,所以我們需要開(kāi)啟Airtest中的一項(xiàng)重要功能----實(shí)時(shí)坐標(biāo)顯示。設(shè)置方法如下圖所示:
第二個(gè)代碼補(bǔ)全對(duì)于電腦配置好的可以開(kāi)啟,電腦配置太差不建議開(kāi)啟。
可看到鼠標(biāo)的坐標(biāo)了。然后我們需要使用Swipe的幫助,有了它我們可以進(jìn)行滑動(dòng)屏幕的操作了,如下:
這行代碼是我通過(guò)截取視頻中兩個(gè)地方的圖像然后才得到的方法參數(shù),這里是向量位移的操作。我們可以看到我們進(jìn)行了這么多操作,但是都是一些圖片,而且圖片有的大有的小,看著不美觀(guān),我們其實(shí)可以將這些圖片轉(zhuǎn)換為代碼,如下:
只需選中圖片代碼模式切換即可,我們所截取的圖片都在這個(gè)文件里,大家可以去看看就知道了。其實(shí)這個(gè)就是PY文件里的內(nèi)容。
4.不斷滑動(dòng)屏幕
那么重點(diǎn)來(lái)了,我們?cè)撊绾螌⑺貜?fù)一直滑動(dòng)了,很簡(jiǎn)單,死循環(huán),順便給它加個(gè)隨機(jī)延時(shí)。
- import random
- wait(Template(r"tpl1594203055954.png", record_pos=(0.356, 0.562), resolution=(1080, 2340)))
- sleep(1)
- touch(Template(r"tpl1594203066034.png", record_pos=(0.354, 0.564), resolution=(1080, 2340)))
- sleep(2)
- exists(Template(r"tpl1594203382253.png", record_pos=(0.415, 0.139), resolution=(1080, 2340)))
- sleep(2)
- snapshot(filename=r'C:\Users\Administrator\Desktop\test.jpg',msg='截圖成功')
- sleep(2)
- assert_exists(Template(r"tpl1594203920118.png", record_pos=(0.411, 0.33), resolution=(1080, 2340)), "請(qǐng)?zhí)顚?xiě)測(cè)試點(diǎn)")
- while True:#死循環(huán),不斷滑動(dòng)短視頻
- aa=random.randint(1,5)
- swipe((700,1950),(700,300))
- sleep(aa)
我們也可以在這個(gè)死循環(huán)里加入其它的操作,比如點(diǎn)贊,評(píng)論啥的,上面我都有說(shuō)到,大家可以結(jié)合試試。
總結(jié)
通過(guò)對(duì)Airtest框架的學(xué)習(xí),我們就能輕松做出短視頻的點(diǎn)贊評(píng)論滑動(dòng)以及其它功能,很多互粉的小盆友需要的正是這種神器了。
本文轉(zhuǎn)載自微信公眾號(hào)「IT共享之家」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系IT共享之家公眾號(hào)