亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都

系統(tǒng) 1860 0

簡(jiǎn)介 

  一年一度的暑假如期而至,每年必不可少的,便是《西游記》這部經(jīng)典電視連續(xù)劇的播出,作為一名90后,對(duì)于這部經(jīng)典劇的情誼,就是觀看已成為一種習(xí)慣。依然深刻的記得,小時(shí)候媽媽為了催促我睡覺(jué),而關(guān)掉我的《西游記》,那種哀求不成繼而絕望的感覺(jué),至今記憶猶新。長(zhǎng)大后只要得空在家,哪怕手里做著其他的事情,也要把電視開(kāi)著,聽(tīng)一聽(tīng)《西游記》。“你挑著擔(dān),我牽著馬,迎來(lái)日出,送走晚霞——”這首基本人人能唱幾句的歌曲,陪著我們一代又一代人,走過(guò)童年,青年和少年,甚至中年,或許還有將來(lái)的老年。坐在沙發(fā)上,當(dāng)熟悉的音樂(lè)響起,心中突然冒出一股莫名的激動(dòng),電視里活潑生動(dòng)的師徒幾人,即便都能背出的故事情節(jié),依舊能讓我露出微笑。猴哥桀驁不馴,開(kāi)始也不聽(tīng)命令,大鬧天宮也是亂打一番,闖進(jìn)這里,跑出哪里,一會(huì)天上一會(huì)地下;后來(lái)戴上緊箍咒,老實(shí)了。猴哥我們不敢耍,但是猴哥的混血弟弟妹妹我們敢耍。耍猴在中國(guó)已有悠久歷史,最遲于唐朝已有出現(xiàn),發(fā)源于今河南省新野縣。古人把猴子視為馬的守護(hù)神,常于馬廄內(nèi)養(yǎng)猴子以留住馬匹,并讓猴子表演猴戲作祭祀之用,因此猴子又有“馬留”的別稱,此名稱至今仍保留在粵語(yǔ)中。日本于奈良時(shí)代從中國(guó)傳入猴戲。后來(lái)耍猴的宗教性變淡,有些只是純娛樂(lè)觀眾,一些小販為招攬顧客,也會(huì)養(yǎng)猴子表演賣技藝,尤其常見(jiàn)于賣武術(shù)、賣藥等行業(yè)。現(xiàn)時(shí)香港唯一一只獲漁農(nóng)自然護(hù)理署發(fā)牌由人飼養(yǎng)的猴子金鷹,其已故前主人陳日標(biāo)生前以賣藥為業(yè),金鷹就在主人賣藥時(shí)表演。下邊這幅圖片想必大家都不陌生吧。想必耍猴大家在實(shí)地或者電視、電影中都看過(guò),看著耍猴人,發(fā)出不同的指令猴子根據(jù)指令做出各種搞笑的動(dòng)作,逗的你開(kāi)懷大笑。這個(gè)不是天生的而是后天訓(xùn)練的。前邊講解的monkey都是隨機(jī)事件流,Monkey(猴子)在手機(jī)里像個(gè)無(wú)頭蒼蠅亂蹦亂跳地大鬧一番;那么今天宏哥今天就教你如何讓猴子按您的指令在手機(jī)里大鬧,教你如何耍猴——Monkey(猴子)自定義腳本。

Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第1張圖片

耍猴第一式 - 隱藏命令

?

monkey隱藏的兩個(gè)命令:

?

              –pck-blacklist-file<黑名單文件>
              

–pck-whitelist-file<白名單文件>

?

monkey還有一個(gè)隱藏的命令那就是:

?

              –f<腳本文件>:可以指定monkey的自定義腳本

            

  一般monkey測(cè)試都是隨機(jī)的測(cè)試事件,假如我們需要測(cè)試某一個(gè)特定的場(chǎng)景,普通的命令很難辦到,這是就是需要自定義腳本這個(gè)命令了,它的使用方式也是很簡(jiǎn)單方便的,只要我們按照monkey的腳本規(guī)范寫(xiě)好腳本,之后將它保存到手機(jī)中,然后運(yùn)行monkey的時(shí)候使用-f 命令指定腳本就行。

?

耍猴第二式 -?monkey自定義腳本格式

?

1、雖然,Google 官方并沒(méi)有提供對(duì) MS 詳細(xì)講解的 API 文檔,但是我們是可以通過(guò)源碼來(lái)分析出 MS 支持的API的。

2、MS 的源碼文件是:MonkeySourceScript.java

3、monkey的源碼MonkeySourceScript.java類中有一段關(guān)于monkey腳本規(guī)則的描述MonkeySourceScript.java有興趣的同學(xué)可以去看一下這個(gè)源碼,這里以 5.1.1 為例子,進(jìn)行講解,其實(shí)這一塊的代碼變動(dòng)非常的少,找一個(gè)版本了解即可。我們看一下源碼(33行到46行)對(duì)j腳本規(guī)則描述。

?

腳本規(guī)則的描述

?

              33/**
34 * monkey event queue. It takes a script to produce events sample script format:
35 *
36 * 
              
                
37 * type= raw events
38 * count= 10
39 * speed= 1.0
40 * start data >>
41 * captureDispatchPointer(5109520,5109520,0,230.75429,458.1814,0.20784314,0.06666667,0,0.0,0.0,65539,0)
42 * captureDispatchKey(5113146,5113146,0,20,0,0,0,0)
43 * captureDispatchFlip(true)
44 * ...
45 * 
              
46 */

?

解釋他們的意思

?

              #聲明腳本的類型
type= raw events
#腳本的執(zhí)行次數(shù),由于monkey運(yùn)行次數(shù)在命令設(shè)置的,這里的設(shè)置是無(wú)效的
count= 10
#事件執(zhí)行時(shí)間間隔,這個(gè)也是通過(guò)命令來(lái)設(shè)置,這里不起作用
speed= 1.0
#腳本的入口,說(shuō)明腳本從下面開(kāi)始執(zhí)行
start data >>
#下全是monkey命令
captureDispatchPointer(5109520,5109520,0,230.75429,458.1814,0.20784314,0.06666667,0,0.0,0.0,65539,0)
captureDispatchKey(5113146,5113146,0,20,0,0,0,0)
captureDispatchFlip(true)
            

?

知道了monkey腳本書(shū)寫(xiě)的基本格式,在來(lái)看一眼monkey常見(jiàn)腳本API

?

              1.LaunchActivity(包名,Activity名稱)
啟動(dòng)被測(cè)應(yīng)用的某個(gè)Activity
2.Tap(x,y,TapDuration)
一次單擊事件
x,y:是坐標(biāo)
TapDuration:持續(xù)的時(shí)間,單位毫秒
3.DispatchPress(keyName)
模擬一個(gè)按鍵
keyName:按鍵的名稱
4.RotateScreen(RotationDegree,peresist)
旋轉(zhuǎn)屏幕
RotationDegree:0~3分別表示順時(shí)針的四個(gè)方向
peresist:是否存留
5.DispatchFiip(true/false)
打開(kāi)或關(guān)閉軟鍵盤(pán)
6.LongPress()長(zhǎng)按2秒
7.PressAndHold(x,y,PressDuration)
模擬長(zhǎng)按事件
x,y:點(diǎn)擊的坐標(biāo)
PressDuration:持續(xù)時(shí)常,單位毫秒
8.DispatchString(input)
輸入字符串
input:輸入的內(nèi)容
9.Drag(xStart,yStart,xEnd,yEnd,pCount)
模擬拖動(dòng)操作
xStart,yStart:開(kāi)始的坐標(biāo)值
xEnd,yEnd:結(jié)束的坐標(biāo)值
pCount:滑動(dòng)事件的次數(shù)
10.PinchZoom(pt1xStart,pt1yStart,pt1xEnd,pt1yEnd,pt2xStart,pt2ystart,pt2xEnd,pt2yEnd)
手勢(shì)縮放事件
pt1xStart,pt1yStart:第一個(gè)手指起始的坐標(biāo)位置
pt1xEnd,pt1yEnd:第一個(gè)手指結(jié)束的坐標(biāo)位置
pt2xStart,pt2ystart:第二個(gè)手指開(kāi)始的坐標(biāo)位置
pt2xEnd,pt2yEnd:第二個(gè)手指結(jié)束的坐標(biāo)位置
11.UserWait(sleepTime)
設(shè)置睡眠時(shí)間
sleepTime:等待時(shí)間,單位毫秒
12.DeviceWake()
喚醒設(shè)備屏幕

            

?

  在源碼中,所有我們上面介紹的 API 都是以一個(gè)? static final ?的形式被聲明。這里簡(jiǎn)單就 LaunchActivity 的方法的源碼進(jìn)行講解,其他的 API 其實(shí)也大同小異。

?

LaunchActivity 的方法的源碼講解

?

1、瀏覽器輸入源碼地址,找到靜態(tài)字符串LaunchActivity,如圖:

?

Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第2張圖片

?

?2、將鼠標(biāo)定位到靜態(tài)字符串LaunchActivity通過(guò)ctrl(command)+?左鍵我們可以定位到方法的位置。大約在597行,如圖:

?

Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第3張圖片

?

?3、將鼠標(biāo)定位到LaunchActivity的方法通過(guò)ctrl(command)+?左鍵我們可以進(jìn)入到方法代碼。大約在597行,如圖:

?

? Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第4張圖片

?

4、如上邊LaunchActiviity 方法源碼所示,LaunchActiviity 會(huì)以數(shù)組的形式接收兩個(gè)參數(shù),分別表示 PackageName 和 Activity 的 ClassName,下面具體對(duì)應(yīng)的實(shí)現(xiàn),我們就不細(xì)看了。再參照上面介紹的 API ,就可以很清晰的定位出方法和參數(shù)的含義了。

5、有興趣的小伙伴們可以通過(guò)以上步驟一一查看哪些方法的API。?

?

耍猴第三式 -?monkey 腳本的實(shí)例

?

1、Monkey腳本主要包含兩部分,一部分是頭文件信息,一部分是具體的monkey命令。

2、按照2.1的腳本描述規(guī)則我們來(lái)編輯monkeyscript,如下:

              type = user
count = 1
speed = 500
start data >>
#啟動(dòng)應(yīng)用程序
LaunchActivity(com.michael.words,com.michael.words.activity.SplashActivity)
UserWait(5000)
#點(diǎn)擊下步按鈕
Tap(615,609)
UserWait(1000)
#點(diǎn)擊編輯框
Tap(200,85,1000)
#輸入sg
DispatchString(sg)

            

  以上腳本主要操作過(guò)程:

  1、點(diǎn)擊夜神模擬器的應(yīng)用中心

  2、進(jìn)入應(yīng)用中心,點(diǎn)擊搜索框

  3、在搜索欄輸入:hongge

  4、結(jié)束

  注意這里分別使用了 DispatchPress 和 DispatchString 來(lái)分別使用,就是為了做演示,實(shí)際你可以依賴場(chǎng)景選擇使用的 API 。而其中涉及到坐標(biāo)點(diǎn)的問(wèn)題,這個(gè)在后面會(huì)講解如何獲取控件的坐標(biāo)點(diǎn)。

?

執(zhí)行腳本

?

1、編寫(xiě)好腳本,保存為monkey.script 文件。

2、通過(guò) adb push 將其上傳到待測(cè)試的設(shè)備中。要push到sdcard文件夾中(這里一夜神模擬器為例),如圖:

                adb push C:/Users/DELL/Desktop/monkey.script /sdcard/
              

Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第5張圖片

?

3、查看有沒(méi)有push到設(shè)備中,從下圖可以看到成功的push進(jìn)去了。如圖:

?

Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第6張圖片

?

4、有興趣或者不相信的可以查看文件內(nèi)容,如圖:

?

Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第7張圖片

?

5、然后通過(guò) monkey -f 執(zhí)行此腳本,例如下面執(zhí)行 1次。

                adb shell monkey -f /sdcard/monkey.script -v 1
              

?

6、效果截圖,在應(yīng)用中心的搜索欄里輸入了:hongge。

?

Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第8張圖片
?
7、執(zhí)行完成之后,可以在控制臺(tái),看到輸出的 Log 信息。
?
?
?
8、我們一起看一下執(zhí)行過(guò)程小視頻,小伙伴們都看到了吧,猴子按你的指令在夜神模擬器上開(kāi)始表演,如下:
?
?
?

小結(jié)

?

1、通過(guò)adb pull和adb push 手機(jī)與電腦之間傳輸文件

(1)將手機(jī)卡中的某個(gè)文件復(fù)制到電腦

  1,手機(jī)連接電腦后,在命令行輸入 adb devices,獲取到設(shè)備序列號(hào)后說(shuō)明手機(jī)已經(jīng)和電腦連接成功。

  2,輸入: adb pull 手機(jī)存儲(chǔ)路徑 ?電腦路徑
    adb pull ?/sdcard/xxx ?/Users/xxxx/xxx.tx

(2) 從電腦端向手機(jī)復(fù)制文件

  1,輸入: adb pull 電腦路徑 ?手機(jī)存儲(chǔ)路徑 ?
    ?adb push ?/Users/xxxx/xxx.txt ? /sdcard/xxx

2、注意事項(xiàng)(此處有坑要留心注意哦!!!)

頭文件代碼書(shū)寫(xiě)注意 “=”兩邊預(yù)留空格,否則會(huì)出現(xiàn)如下報(bào)錯(cuò)。

java.lang.NumberFormatException: Invalid int: ""

3、好了,今天關(guān)于耍猴就到這里了!哈哈!最后祝大家都成為耍猴高手!!!

您的肯定就是我進(jìn)步的動(dòng)力。 如果你感覺(jué)還不錯(cuò),就請(qǐng)鼓勵(lì)一下吧!記得點(diǎn)波? 推薦 ?哦!!!(點(diǎn)擊右邊的小球即可)
Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第10張圖片

個(gè)人公眾號(hào)

Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第11張圖片

微信群

Appium+python自動(dòng)化(二十一)- 讓猴子按你指令大鬧手機(jī),讓我們都成為耍猴高手(超詳解)_第12張圖片


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久日韩精品中文字幕网 | 免费伊人 | 亚洲一级色| 天天干夜干 | www.奇米.com | 狠狠色狠狠色综合日日32 | 激情五月色婷婷丁香伊人 | 午夜j| 日本一区二区三区四区在线观看 | 久久久久久草 | 四虎影视永久免费视频观看 | 亚洲特级aaaaaa毛片 | 色综合欧美色综合七久久 | 永久免费的啪啪免费的网址 | 日韩黄a级成人毛片 | 国产亚洲精品美女一区二区 | 无遮挡一级毛片视频 | 国产女主播喷出白浆视频 | 99久热| 在线a网站 | 亚洲一区二区精品视频 | 精品福利一区 | 亚洲日产2021三区在线 | 国产中文字幕视频 | 一级毛片视频 | 在线观看欧美视频 | 99久久国产 | 久久乱码精品区中文字幕 | 一级片免费视频 | 亚洲综合久久久久久888 | 色婷婷香蕉| 久久男人 | 九九线精品视频 | 国产伦精品一区二区免费 | 伊人狼人综合网 | 日韩欧美伊人久久大香线蕉 | 四虎影永久在线观看网址 | 精品国产视频 | 日本不卡视频网站 | 成人国内精品久久久久影院 | 久热re在线视频精品免费 |