五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

08編寫并運(yùn)行你的第一個(gè)Poco腳本

2021-06-03 14:34 作者:Airtest醬  | 我要投稿

同學(xué)們好,我是網(wǎng)易AirtestProject的團(tuán)隊(duì)成員曉娟,歡迎大家來(lái)到我們的視頻教程專欄《14天Airtest自動(dòng)化測(cè)試小白課程》。

上節(jié)課我們一起學(xué)習(xí)了如何編寫Airtest腳本,Airtest框架的核心就是截圖腳本。而我們的另一個(gè)測(cè)試框架Poco,跟Airtest的差別非常大,它的核心是 元素定位

那么今天我們就來(lái)學(xué)習(xí)下:poco腳本的編寫和運(yùn)行。

poco輔助窗功能

與編寫Airtest腳本的步驟相似,我們首先需要在IDE中連接上1臺(tái)待測(cè)設(shè)備,這里以雷電模擬器為例,連接好設(shè)備之后,我們來(lái)看看poco輔助窗:


① 選擇對(duì)應(yīng)的poco模式

點(diǎn)擊stop的下拉按鈕,可以顯示目前所支持的平臺(tái),比如unity、UE4、Android和iOS等,測(cè)試哪個(gè)平臺(tái),我們就需要把這里的poco模式選到對(duì)應(yīng)的平臺(tái)。比如我們這里想要測(cè)安卓模擬器的原生應(yīng)用,就需要在下拉菜單中選擇安卓模式: ?


選擇了Android模式之后,等待幾秒,窗口就會(huì)刷出當(dāng)前設(shè)備的UI樹,并且在腳本編輯窗中,會(huì)彈出1個(gè)是否插入poco初始化代碼的提示,選擇yes之后,腳本編輯窗就會(huì)被自動(dòng)插入當(dāng)前模式的初始化腳本: ?


當(dāng)然,如果我們想要測(cè)試unity游戲,就需要在poco模式中選擇unity,而不是Android。當(dāng)UI樹正常顯示之后,我們就可以使用poco輔助窗的鎖定UI控件或者錄制poco腳本的功能了。

不過(guò)需要注意的是,除了安卓原生和iOS原生不需要接入pocosdk就可以直接顯示UI樹之外,其余引擎的游戲,比如unity、UE4、Cocos creator等,都需要事先按官網(wǎng)教程接入pocosdk后,才能夠獲取到poco的UI樹


各種平臺(tái)接入SDK的教程匯總


1. unity3d接入教程 :https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#unity3d

2. cocos2dx-lua接入教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos2dx-lua

3. cocos2dx-js接入教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos2dx-js-beta

4. cocos-creator接入教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integration.html#cocos-creator

5. Egret接入教程:https://github.com/AirtestProject/Poco-SDK/tree/master/Egret

6. UE4接入教程:https://mp.weixin.qq.com/s?__biz=MzUxMDc4NTkwMA==&mid=2247484258&idx=1&sn=0fec4461bc870077af4e096b494d646a&chksm=f97ce361ce0b6a77c885193a900d2be08d22c3cf86a0e90a5fb0e83758aaffc65a9d00ec3927&token=1860040772&lang=zh_CN#rd

7. 自行接入其它引擎的教程:https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/implementation_guide.html

8. WebView檢視:https://airtest.doc.io.netease.com/IDEdocs/poco_framework/poco_webview/

其它

無(wú)需接入pocoSDK的平臺(tái):Android原生、iOS原生

暫不支持的平臺(tái):Windows、MacOS等

② poco檢索功能

先來(lái)看下鎖定查看UI控件的功能,單擊像一把小鎖一樣的按鈕,此時(shí)整個(gè)設(shè)備畫面會(huì)被鎖定;之后再把鼠標(biāo)移動(dòng)到設(shè)備畫面上,可以看到鼠標(biāo)能夠檢索出畫面內(nèi)包含的控件,并且會(huì)用1個(gè)半透明的框框住了這個(gè)控件,單擊該控件,log查看窗就會(huì)顯示出該控件的屬性信息,這個(gè)功能可以幫助我們快速查看控件的所有屬性:??


小鎖右邊的檢索按鈕,跟剛才介紹的又有點(diǎn)不同,它可以檢索當(dāng)前頁(yè)面的控件,但是不會(huì)鎖定設(shè)備的當(dāng)前頁(yè)面,也就是說(shuō),隨著鼠標(biāo)的點(diǎn)擊動(dòng)作,畫面會(huì)跟著做出對(duì)應(yīng)的響應(yīng): ?


③ 錄制poco腳本

接下來(lái)我們看看錄制按鈕,隨著鼠標(biāo)在設(shè)備上對(duì)各個(gè)控件進(jìn)行點(diǎn)擊或者滑動(dòng)的操作,腳本編輯窗會(huì)自動(dòng)生成一系列的poco腳本: ?


對(duì)于錄制好的poco腳本,我們也可以在IDE中右鍵單獨(dú)運(yùn)行,或者一鍵回放。

api介紹和定位選擇器

當(dāng)然,除了采用錄制的方法生成poco腳本之外,更重要的是,學(xué)會(huì)自己編寫poco腳本,實(shí)現(xiàn)更多更復(fù)雜的需求。主要有2個(gè)問(wèn)題:1個(gè)是元素的定位語(yǔ)句是怎么寫的;第2個(gè)是poco常見(jiàn)的api操作有哪些。

① 定位選擇器

我們先來(lái)看看第1個(gè)問(wèn)題,編寫元素定位語(yǔ)句,poco給我們提供了3種定位選擇器:一是基本選擇器,即利用元素的一些基本屬性來(lái)進(jìn)行定位,比如name、text等等。舉個(gè)例子,poco(name="網(wǎng)易云音樂(lè)"),這個(gè)定位語(yǔ)句就是使用基本選擇器進(jìn)行定位的。當(dāng)然我們可以不止使用1個(gè)屬性來(lái)定位,括號(hào)里面可以用多個(gè)屬性來(lái)定位控件。剛才我們學(xué)習(xí)了如何檢索控件,查看元素屬性,就可以用那些屬性寫定位語(yǔ)句了。

二是相對(duì)選擇器,即利用控件之間的父子關(guān)系、爺孫關(guān)系和兄弟關(guān)系等來(lái)定位控件。例如parent()、child()、offspring()等。舉個(gè)例子:poco("androidx.appcompat.widget.LinearLayoutCompat").child("搜索"),就是典型的利用父子關(guān)系來(lái)定位元素的,這個(gè)需要借助poco輔助窗的那棵UI樹,觀察目標(biāo)節(jié)點(diǎn)附近的控件,然后利用相對(duì)關(guān)系進(jìn)行定位。有些比較難定位的節(jié)點(diǎn),可能需要編寫幾層關(guān)系才可以定位到,比如剛才我們錄制的時(shí)候,就很容易出現(xiàn)很長(zhǎng)的定位語(yǔ)句。

三是控件順序選擇器,常用于UI樹中多個(gè)相同名稱的節(jié)點(diǎn)定位。比如,poco("com.netease.cloudmusic:id/mainActivityTab").offspring("androidx.appcompat.app.ActionBar$Tab")[0],定位的就是這4個(gè)相同名字節(jié)點(diǎn)的第1個(gè),坐標(biāo)是從0開始遞增的


② poco常用的api

了解完這3種定位方式之后,我們?cè)賮?lái)看看poco都有哪些常見(jiàn)的控件操作,這里以我們官網(wǎng)上提供的1個(gè)unity游戲(https://poco.readthedocs.io/en/latest/source/doc/poco-example/index.html)為例,這個(gè)demo已經(jīng)事先接入了pocosdk,所以在設(shè)備上安裝好這個(gè)demo,打開游戲,在poco輔助窗內(nèi)選擇unity模式,等待幾秒即可刷出這個(gè)游戲的UI樹了: ?


然后看一下,我們常見(jiàn)的poco功能有以下幾點(diǎn):

1)點(diǎn)擊操作

poco("star_single").click()poco('star_single').long_click()

2)讀取和設(shè)置控件的屬性poco("star_single").get_name()poco("star_single").attr('name')poco("star_single").get_text()poco("pos_input").set_text("123")poco("pos_input").setattr('text',"456")

3)判斷元素是否存在

poco(XXX).exists()

4)拖動(dòng)與滑動(dòng)

poco("star").drag_to(poco("shell"))

5)內(nèi)部偏移和外部偏移(focus)poco("pearl").focus([0.1,0.1]).long_click()poco("pearl").focus([0.9,0.9]).long_click()poco("pearl").focus([0.5,-3]).long_click()

6)遍歷元素

for star in poco("playDragAndDrop").child("star"): ? ?star.drag_to(poco("shell"))

7)等待事件poco("bomb").wait_for_appearance()poco("bomb").wait_for_disappearance()yellow = poco("yellow")blue = poco("blue")black = poco("black")poco.wait_for_all([yellow,blue,black])poco.wait_for_any([bomb,yellow,blue])

③ 官網(wǎng)的unity游戲demo

這個(gè)demo可以幫助我們很好地去練習(xí)這些常見(jiàn)的poco api,課前我們也準(zhǔn)備了1個(gè)測(cè)試這個(gè)demo的腳本,里面基本包含了poco所有常見(jiàn)的api:


老樣子,我們先講解下這個(gè)腳本里面的一些知識(shí)點(diǎn),課后同學(xué)們?cè)僮约簢L試寫一個(gè)這樣的腳本出來(lái),鞏固知識(shí)點(diǎn)。另外需要這個(gè)示例腳本來(lái)學(xué)習(xí)的同學(xué),可以到我們的官方公眾號(hào)回復(fù)“A08”即可獲取。


生成和導(dǎo)出報(bào)告

上面我們已經(jīng)給大家演示過(guò)這個(gè)腳本的運(yùn)行了,如上節(jié)課講的那樣,我們直接點(diǎn)擊頂部菜單欄的查看報(bào)告按鈕,即可生成這份poco腳本的運(yùn)行報(bào)告,并用你電腦的默認(rèn)瀏覽器打開(建議使用谷歌瀏覽器,對(duì)報(bào)告的兼容性最好)。

另外這份報(bào)告僅限于在本地查看。如需發(fā)給別人查看,我們需要導(dǎo)出腳本:右鍵單擊腳本名稱,選擇導(dǎo)出報(bào)告,在選擇導(dǎo)出的路徑,等到報(bào)告導(dǎo)出即可。

小結(jié)

好了,這節(jié)課的內(nèi)容就到此為止啦,今天我們主要學(xué)習(xí)了poco腳本的錄制、定位腳本的編寫以及常見(jiàn)的poco api等等,內(nèi)容還是比較多的,希望同學(xué)們課后可以好好練習(xí),先把課上講的示例自己編寫一遍之后,就可以嘗試寫一寫別的應(yīng)用的poco測(cè)試腳本了。


下節(jié)課我們將學(xué)習(xí)一個(gè)新的庫(kù):airtest-selenium,用于網(wǎng)頁(yè)的自動(dòng)化測(cè)試,下期我們不見(jiàn)不散~


08編寫并運(yùn)行你的第一個(gè)Poco腳本的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
闻喜县| 灵武市| 自贡市| 旺苍县| 大安市| 湟源县| 大余县| 客服| 胶南市| 肇庆市| 临夏市| 胶州市| 光山县| 喀什市| 乌兰浩特市| 江口县| 衡阳市| 临邑县| 海南省| 临高县| 辉南县| 上杭县| 永平县| 福州市| 蒲江县| 安岳县| 文成县| 收藏| 佛学| 夏河县| 肥西县| 景泰县| 射洪县| 浦城县| 郎溪县| 鄢陵县| 礼泉县| 道孚县| 淮滨县| 海城市| 武强县|