monkey測試

歡迎來到趙小歪的Android世界楼熄,最近在學(xué)習(xí)Android monkey測試,并小試牛刀編寫了第一個簡單的monkey腳本,并成功運(yùn)行排监,故而記錄下來與大家分享。

monkey杰捂,作為Android自動化測試的利器舆床,有其強(qiáng)大之處,而其基本命令網(wǎng)上大致都有資料可以查詢嫁佳,本篇文章主要從monkey腳本的角度出發(fā)挨队,帶大家了解Windows平臺下monkey腳本的搭建以及運(yùn)行過程,讓我們開始這次旅程吧蒿往!

1.SDK配置

對于Android開發(fā)者來說盛垦,Android SDK我想都不陌生,下載完整的Android SDK后瓤漏,將文件夾platform-tools路徑添加到環(huán)境變量中腾夯,以便能使用adb以及fastboot命令省撑,配置完成后可以通過在命令提示窗口運(yùn)行adb version查看adb是否成功安裝。

adb version

2.配置Android模擬器

對于使用Android真機(jī)的同學(xué)可以忽略這個部分俯在。對于Android模擬器我使用的是Genymotion竟秫,Genymotion以其運(yùn)行速度快,資源占用少的優(yōu)勢被眾多Android開發(fā)人員使用跷乐。Genymotion的安裝過程也很簡單肥败,具體步驟如下:

a.首先登錄Genymotion官網(wǎng):www.genymotion.net。


genymotion

b.點(diǎn)擊注冊按鈕進(jìn)行注冊愕提,并進(jìn)入注冊使用的郵箱查看激活郵件馒稍,點(diǎn)擊激活鏈接進(jìn)行激活。成功注冊后點(diǎn)擊Download進(jìn)入如下頁面:


Download page

c.若機(jī)器上已經(jīng)安裝了VirtualBox直接下載without VirtualBox的版本浅侨,若沒有安裝選擇with VirtualBox的版本纽谒。下載完成后直接進(jìn)行安裝即可,安裝完成打開Genymotion如输。

Genymotion界面

d.點(diǎn)擊Setting按鈕進(jìn)入設(shè)置頁面鼓黔,選擇ADB Tab后選擇Use custom Android SDK tools,并將安裝的SDK路徑添加進(jìn)去即可不见。

配置ADB路徑

e.在配置完成SDK路徑后澳化,我們創(chuàng)建自己的Android模擬器。這里在Your virtual devices中已經(jīng)存在一個我配置的模擬器稳吮,我們可以通過點(diǎn)擊Add按鈕創(chuàng)建一個新的模擬器缎谷,但在創(chuàng)建之前需要將VirtualBox打開,然后點(diǎn)擊Add按鈕灶似。

可選模擬器

f.選擇想要安裝的模擬器進(jìn)行下載安裝即可列林,安裝完成后選中想要打開的模擬器,點(diǎn)擊Start按鈕酪惭,啟動模擬器希痴,經(jīng)過短暫的等待后,模擬器成功啟動撞蚕。

Android模擬器

3.Python環(huán)境安裝

對于不想安裝Python的同學(xué)可以跳過這個步驟润梯。首先安裝Python環(huán)境,成功后安裝PyCharm集成開發(fā)環(huán)境(為將來學(xué)習(xí)monkeyrunner編寫腳本提供方便)

4.編寫monkey腳本并進(jìn)行測試

我們選擇Android原生瀏覽器作為測試目標(biāo)甥厦,打開瀏覽器我們看到如下界面:

Browser界面

我們需要編寫的腳本很簡單纺铭,主要功能如下:

1)啟動Browser應(yīng)用

2)在網(wǎng)址輸入框中輸入網(wǎng)址,如www.baidu.com

3)點(diǎn)擊加載按鈕

下面我們分步來完成這些工作刀疙,首先是啟動Browser應(yīng)用舶赔,對于monkey而言,我們可以使用LaunchActivity函數(shù)來啟動應(yīng)用谦秧,但需要傳遞應(yīng)用的包名以及Activity名竟纳。我們在模擬器中打開瀏覽器撵溃,然后打開命令提示框,輸入adb shell進(jìn)入shell锥累,輸入命令logcat | grep START查看當(dāng)前正在運(yùn)行的應(yīng)用程序以及包名和Activity名缘挑。

Browser的包名及Activity名

在成功啟動應(yīng)用后,我們需要在網(wǎng)址輸入框中輸入網(wǎng)址桶略,這里我們需要點(diǎn)擊輸入框语淘,輸入網(wǎng)址文本后點(diǎn)擊軟鍵盤的回車按鈕使輸入的網(wǎng)址進(jìn)入EditText控件中。對于點(diǎn)擊輸入框际歼,我們可以通過函數(shù)DispatchPointer來完成惶翻,該函數(shù)重要的是第三、四鹅心、五三個參數(shù)吕粗,第三個參數(shù)表示點(diǎn)擊動作的類型,類型有:ACTION_DOWN=0,ACTION_UP=1,ACTION_MULTIPLE=2旭愧。第四個參數(shù)以及第五個參數(shù)表示點(diǎn)擊的位置的x坐標(biāo)以及y坐標(biāo)颅筋,這里對于點(diǎn)擊位置的獲取,我們可以通過使用Google提供的uiautomatorviewer工具來獲取榕茧。該工具位于SDK tools目錄下垃沦,進(jìn)入該目錄客给,按住shift鍵不松用押,點(diǎn)擊鼠標(biāo)右鍵選擇在此處打開命令窗口,打開后輸入uiautomatorviewer.bat腳本運(yùn)行uiautomatorviewer靶剑。

uiautomatorviewer

選中需要點(diǎn)擊的控件蜻拨,如EditText即我們要輸入網(wǎng)址的控件,在右側(cè)我們會看到該控件的有效范圍桩引,我們只需要保證點(diǎn)擊位置的x以及y坐標(biāo)在這個范圍內(nèi)即可缎讼。對于輸入文本,我們可以使用函數(shù)DispatchString來完成坑匠,輸入文本后通過使用函數(shù)DispatchPress并傳入?yún)?shù)66(軟鍵盤回車按鈕的key code)來完成點(diǎn)擊軟鍵盤回車按鈕操作血崭。完成網(wǎng)址的輸入工作后,我們需要點(diǎn)擊加載按鈕厘灼,我們同樣可以通過DispatchPointer函數(shù)來完成夹纫,點(diǎn)擊位置仍然通過uiautomatorviewer來獲取。在所有的操作過程中我們可以通過使用函數(shù)UserWait函數(shù)來設(shè)置等待時間设凹。完整的腳本如下:

完整的腳本

5.腳本編寫完畢后舰讹,使用adb push命令將腳本push到模擬器中,在push之前使用adb remount掛載系統(tǒng)分區(qū)闪朱,push成功后執(zhí)行命令adb shell monkey命令運(yùn)行腳本月匣,對于使用monkey命令只執(zhí)行一次腳本的原因钻洒,在上面完整的腳本圖片中有說明。具體運(yùn)行腳本命令格式如下所示锄开。

執(zhí)行腳本

6.執(zhí)行腳本后我們會看到模擬器成功啟動Browser應(yīng)用素标,并在網(wǎng)址輸入框中輸入www.baidu.com,并且點(diǎn)擊加載按鈕萍悴,加載網(wǎng)站(瀏覽器網(wǎng)址不是www.baidu.com是因為輸入該網(wǎng)址后點(diǎn)擊加載按鈕自動鏈到百度的手機(jī)客戶端地址)

腳本運(yùn)行結(jié)果

這是小歪的第一篇簡書技術(shù)類型的文章糯钙,語言組織有不到位的地方還希望各位看官見諒,小歪一直相信退腥,未來的路還很長任岸,只要有一顆永遠(yuǎn)不停止學(xué)習(xí)的心,追求卓越狡刘,總有一天會強(qiáng)大起來享潜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嗅蔬,隨后出現(xiàn)的幾起案子剑按,更是在濱河造成了極大的恐慌,老刑警劉巖澜术,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艺蝴,死亡現(xiàn)場離奇詭異,居然都是意外死亡鸟废,警方通過查閱死者的電腦和手機(jī)猜敢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盒延,“玉大人缩擂,你說我怎么就攤上這事√硭拢” “怎么了胯盯?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長计露。 經(jīng)常有香客問我博脑,道長,這世上最難降的妖魔是什么票罐? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任叉趣,我火速辦了婚禮,結(jié)果婚禮上胶坠,老公的妹妹穿的比我還像新娘君账。我一直安慰自己,他們只是感情好沈善,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布乡数。 她就那樣靜靜地躺著椭蹄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪净赴。 梳的紋絲不亂的頭發(fā)上绳矩,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機(jī)與錄音玖翅,去河邊找鬼翼馆。 笑死,一個胖子當(dāng)著我的面吹牛金度,可吹牛的內(nèi)容都是我干的应媚。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼猜极,長吁一口氣:“原來是場噩夢啊……” “哼中姜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起跟伏,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤窄瘟,失蹤者是張志新(化名)和其女友劉穎练对,沒想到半個月后酱固,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體验毡,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年勘高,在試婚紗的時候發(fā)現(xiàn)自己被綠了峡蟋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡相满,死狀恐怖层亿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情立美,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布方灾,位于F島的核電站建蹄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏裕偿。R本人自食惡果不足惜洞慎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘿棘。 院中可真熱鬧劲腿,春花似錦、人聲如沸鸟妙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至花椭,卻和暖如春忽匈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背矿辽。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工丹允, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人袋倔。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓雕蔽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宾娜。 傳聞我的和親對象是個殘疾皇子萎羔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,841評論 25 707
  • 注意:應(yīng)該是monkey -p your.package.name -v 500 這條命令,前面沒有adb she...
    Ten_Minutes閱讀 755評論 0 0
  • 一碳默、Monkey簡介 monkey文檔官方網(wǎng)址 Monkey 是Android SDK提供的一個命令行工具贾陷, 可以...
    黃海佳閱讀 14,677評論 0 4
  • Monkey命令行可用的全部選項 常規(guī) --help 列出簡單的用法。 -v 命令行的每一個-v將增加反饋信息的級...
    宇文臭臭閱讀 822評論 0 4
  • 荒蕪一世終幻滅嘱根,只恨情癡絆無邪髓废。 小立秋暮思極恐,無語凝淚望碧空该抒。
    癡人一念閱讀 327評論 4 24