monkey測試

歡迎來到趙小歪的Android世界,最近在學習Android monkey測試,并小試牛刀編寫了第一個簡單的monkey腳本,并成功運行,故而記錄下來與大家分享。

monkey,作為Android自動化測試的利器,有其強大之處,而其基本命令網上大致都有資料可以查詢,本篇文章主要從monkey腳本的角度出發,帶大家了解Windows平臺下monkey腳本的搭建以及運行過程,讓我們開始這次旅程吧!

1.SDK配置

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

adb version

2.配置Android模擬器

對于使用Android真機的同學可以忽略這個部分。對于Android模擬器我使用的是Genymotion,Genymotion以其運行速度快,資源占用少的優勢被眾多Android開發人員使用。Genymotion的安裝過程也很簡單,具體步驟如下:

a.首先登錄Genymotion官網:www.genymotion.net。


genymotion

b.點擊注冊按鈕進行注冊,并進入注冊使用的郵箱查看激活郵件,點擊激活鏈接進行激活。成功注冊后點擊Download進入如下頁面:


Download page

c.若機器上已經安裝了VirtualBox直接下載without VirtualBox的版本,若沒有安裝選擇with VirtualBox的版本。下載完成后直接進行安裝即可,安裝完成打開Genymotion。

Genymotion界面

d.點擊Setting按鈕進入設置頁面,選擇ADB Tab后選擇Use custom Android SDK tools,并將安裝的SDK路徑添加進去即可。

配置ADB路徑

e.在配置完成SDK路徑后,我們創建自己的Android模擬器。這里在Your virtual devices中已經存在一個我配置的模擬器,我們可以通過點擊Add按鈕創建一個新的模擬器,但在創建之前需要將VirtualBox打開,然后點擊Add按鈕。

可選模擬器

f.選擇想要安裝的模擬器進行下載安裝即可,安裝完成后選中想要打開的模擬器,點擊Start按鈕,啟動模擬器,經過短暫的等待后,模擬器成功啟動。

Android模擬器

3.Python環境安裝

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

4.編寫monkey腳本并進行測試

我們選擇Android原生瀏覽器作為測試目標,打開瀏覽器我們看到如下界面:

Browser界面

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

1)啟動Browser應用

2)在網址輸入框中輸入網址,如www.baidu.com

3)點擊加載按鈕

下面我們分步來完成這些工作,首先是啟動Browser應用,對于monkey而言,我們可以使用LaunchActivity函數來啟動應用,但需要傳遞應用的包名以及Activity名。我們在模擬器中打開瀏覽器,然后打開命令提示框,輸入adb shell進入shell,輸入命令logcat | grep START查看當前正在運行的應用程序以及包名和Activity名。

Browser的包名及Activity名

在成功啟動應用后,我們需要在網址輸入框中輸入網址,這里我們需要點擊輸入框,輸入網址文本后點擊軟鍵盤的回車按鈕使輸入的網址進入EditText控件中。對于點擊輸入框,我們可以通過函數DispatchPointer來完成,該函數重要的是第三、四、五三個參數,第三個參數表示點擊動作的類型,類型有:ACTION_DOWN=0,ACTION_UP=1,ACTION_MULTIPLE=2。第四個參數以及第五個參數表示點擊的位置的x坐標以及y坐標,這里對于點擊位置的獲取,我們可以通過使用Google提供的uiautomatorviewer工具來獲取。該工具位于SDK tools目錄下,進入該目錄,按住shift鍵不松,點擊鼠標右鍵選擇在此處打開命令窗口,打開后輸入uiautomatorviewer.bat腳本運行uiautomatorviewer。

uiautomatorviewer

選中需要點擊的控件,如EditText即我們要輸入網址的控件,在右側我們會看到該控件的有效范圍,我們只需要保證點擊位置的x以及y坐標在這個范圍內即可。對于輸入文本,我們可以使用函數DispatchString來完成,輸入文本后通過使用函數DispatchPress并傳入參數66(軟鍵盤回車按鈕的key code)來完成點擊軟鍵盤回車按鈕操作。完成網址的輸入工作后,我們需要點擊加載按鈕,我們同樣可以通過DispatchPointer函數來完成,點擊位置仍然通過uiautomatorviewer來獲取。在所有的操作過程中我們可以通過使用函數UserWait函數來設置等待時間。完整的腳本如下:

完整的腳本

5.腳本編寫完畢后,使用adb push命令將腳本push到模擬器中,在push之前使用adb remount掛載系統分區,push成功后執行命令adb shell monkey命令運行腳本,對于使用monkey命令只執行一次腳本的原因,在上面完整的腳本圖片中有說明。具體運行腳本命令格式如下所示。

執行腳本

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

腳本運行結果

這是小歪的第一篇簡書技術類型的文章,語言組織有不到位的地方還希望各位看官見諒,小歪一直相信,未來的路還很長,只要有一顆永遠不停止學習的心,追求卓越,總有一天會強大起來。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容

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