monkeyrunner之夜神模擬器的安裝與使用(2)
在上一篇文章-安卓開發(fā)環(huán)境搭建中,我們創(chuàng)建并啟動(dòng)了eclipse自帶的安卓模擬器,該模擬器不僅啟動(dòng)慢,而且在使用過程中的反應(yīng)速度也是出奇的差,經(jīng)常出現(xiàn)卡機(jī)現(xiàn)象。為了解決這種現(xiàn)象,因此,我們又尋找到了更加合適的模擬器-夜神模擬器。該模擬器除了安裝包有點(diǎn)大之外,其速度是特別快,基本和真機(jī)速度無差,甚至是還要更快些,這樣一款速度可以媲美真機(jī)的模擬器,更加有利于我們后期的安卓自動(dòng)化測(cè)試。下面就從夜神模擬器的選擇原因及夜神模擬器的使用兩方面講述。
一、夜神模擬器的選擇原因
眾所周知,Android studio的模擬器運(yùn)行速度也很快,可以媲美真機(jī)。雖然其運(yùn)行速度很快,可以滿足我們測(cè)試的需求。但仍存在以下問題:
(1)Android studio的模擬器無法連接wifi,修改dns,不能用測(cè)試環(huán)境的版本去進(jìn)行Monkeyrunner腳本的運(yùn)行及測(cè)試;
(2)如果選用真機(jī),修改dns后,可以用測(cè)試版本,但無法采用HierarchyViewer獲取控件ID,運(yùn)行Monkeyrunner會(huì)報(bào)錯(cuò)。
有人又會(huì)說(2)中,使用真機(jī)可以選擇獲取控件坐標(biāo),不使用控件ID,這里使用控件ID的原因,見文章尾解釋。下面附加一個(gè)真機(jī)使用HierarchyViewer報(bào)錯(cuò)截圖。
運(yùn)行結(jié)果:失敗
原因:腳本中調(diào)用到了HierarchyViewer,但是真機(jī)中沒有開啟view server。
基于上述兩種原因,因此,我們選擇夜神模擬器作為測(cè)試中要使用的模擬器。夜神模擬器對(duì)于我們來說,好處就是可以連接wifi,修改dns,速度快,但是內(nèi)存比較大。
二、夜神模擬器的設(shè)置與連接
1.模擬器下載與設(shè)置
夜神模擬器占用內(nèi)存比較大,可以去官網(wǎng)下載:http://www.yeshen.com/。下載完成后,按照安裝提示,默認(rèn)安裝或自定義安裝即可。
安裝成功后,打開模擬器,可以在設(shè)置中,設(shè)置成顯示為手機(jī)版,重啟后生效。以后,每次啟動(dòng)后,模擬器就是你所設(shè)置的手機(jī)的大小。同樣,可以設(shè)置其他選項(xiàng),這個(gè)根據(jù)自己需要設(shè)置。
2.模擬器的連接
模擬器設(shè)置完成后,在cmd窗口中,查看該模擬器是否連接上電腦,輸入adb devices,結(jié)果顯示沒有設(shè)備連接。
接下來,就是如何使模擬器連接上電腦。打開夜神模擬器,然后cmd中進(jìn)Androidsdk下的platform-tools目錄,然后執(zhí)行命令:adb connect 127.0.0.1:62001。(如果環(huán)境變量中已配置ANDROID_HOME,則直接打開cmd,執(zhí)行命令:adb connect 127.0.0.1:62001即可)?;蛘哂靡股褡詭У膎on_adb.exe,進(jìn)入到夜神安裝目錄下的bin目錄中,執(zhí)行命令:adb connect 127.0.0.1:62001。
最后cmd窗口中,輸入命令:adb devices,查看夜神模擬器已經(jīng)連接上。
三、夜神模擬器的使用
和之前的任一款A(yù)ndroid模擬器一樣,安裝我們自己需要的app,我們這里安裝XXX的app,此時(shí),由于沒有修改wifi的dns,此時(shí),連接的是線上環(huán)境。
1.dns的修改
下面,我們修改dns為xx.x.x.x,切換到測(cè)試環(huán)境。
設(shè)置頁面,選擇WLAN,可以看到已經(jīng)連接的wifi,長(zhǎng)按鼠標(biāo)左鍵,彈框修改網(wǎng)絡(luò)。
點(diǎn)擊修改網(wǎng)絡(luò),在網(wǎng)絡(luò)詳情頁面,勾選“顯示高級(jí)選項(xiàng)”,修改域名1為xx.x.x.x。
現(xiàn)在可以打開app,輸入測(cè)試賬號(hào)進(jìn)行登錄了。
2.模擬器的簡(jiǎn)單使用
夜神模擬器直接雙擊打開啟動(dòng)就行。我們現(xiàn)在可以把Hierarchy Viewer打開,獲取夜神模擬器中安裝的個(gè)人端app登錄頁面的控件ID,并查看一下速度有沒有達(dá)到我們的需求。
打開android-sdk\tools下面的hierarchyviewer.bat,運(yùn)行,可以快速獲取登錄頁面的賬號(hào)輸入框、密碼輸入框、登錄按鈕的ID。
之后,將app切到登錄頁面,在夜神模擬器上運(yùn)行登錄頁面的Monkeyrunner腳本。腳本如下,可以一步一步執(zhí)行,也可以直接寫到py文件中運(yùn)行。
具體的腳本如下(腳本的編寫會(huì)在后面文章中介紹):
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice from com.android.monkeyrunner.easy import EasyMonkeyDevice #提供了根據(jù)ID進(jìn)行訪問 from com.android.monkeyrunner.easy import By #根據(jù)ID返回PyObject的方法 device=MonkeyRunner.waitForConnection(5,'127.0.0.1:62001') #連接夜神模擬器 MonkeyRunner.sleep(3.0) packageName='xxxxxxxx' activity='xxxxxx' componentName=packageName+'/'+activity device.startActivity(component=componentName) easy_device=EasyMonkeyDevice(device) #必須在activity啟動(dòng)之后 easy_device.touch(By.id('id/input_login_phone'),MonkeyDevice.DOWN_AND_UP) #獲取輸入賬號(hào)的控件ID device.type('18511111111') #在賬號(hào)輸入框中輸入賬號(hào)
查看模擬器中是否有輸入。注意,monkeyrunner運(yùn)行上述py文件時(shí),會(huì)失敗報(bào)錯(cuò)。
原因:python編碼的問題, python中默認(rèn)的編碼格式是ASCII格式,所以,沒有修改編碼格式時(shí)無法顯示中文。
解決方法:在每一個(gè)需要顯示中文的python文件中,加入#coding:utf-8、#-*-coding:utf-8 -*-或#vim: set fileencoding:utf-8,我們這邊選擇#coding:utf-8。
即,在上述的py文件的頂部,加入#coding:utf-8后,再運(yùn)行,則可以運(yùn)行成功。
四、控件ID的使用原因
Monkeyrunner需要通過獲取控件坐標(biāo)或控件ID,編寫腳本運(yùn)行。但是,獲取控件坐標(biāo)會(huì)由于不同分辨率,導(dǎo)致腳本不能復(fù)用,需要重新獲取坐標(biāo),這樣Monkeyrunner腳本的可用性比較差。
所以我們采取通過Hierarchy Viewer獲取控件ID編寫腳本(后面會(huì)有文章講述獲取ID或坐標(biāo)方法)。但Hierarchy Viewer只能連接Android開發(fā)版手機(jī)或是模擬器,網(wǎng)上雖然有一些如何把手機(jī)root和打開view service的文章,建議不要嘗試,手機(jī)容易變磚或者不斷重啟。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- eclipse中運(yùn)行monkeyrunner腳本之環(huán)境搭建(4)
- monkeyrunner環(huán)境搭建及實(shí)例教程(3)
- monkeyrunner之安卓開發(fā)環(huán)境搭建教程(1)
- monkeyrunner 腳本錄制實(shí)例詳解
- Monkeyrunner 常用按鍵總結(jié)
- android monkey自動(dòng)化測(cè)試改為java調(diào)用monkeyrunner Api
- Ubuntu中為Android系統(tǒng)上實(shí)現(xiàn)內(nèi)置C可執(zhí)行程序測(cè)試Linux內(nèi)核驅(qū)動(dòng)程序
- Ubuntu中為Android系統(tǒng)上編寫Linux內(nèi)核驅(qū)動(dòng)程序?qū)崿F(xiàn)方法
- 解析如何在android中增加gsensor驅(qū)動(dòng)(MMA7660)
- monkeyrunner之電腦安裝驅(qū)動(dòng)(5)
相關(guān)文章
Android搜索結(jié)果顯示高亮實(shí)例(有數(shù)據(jù)滑動(dòng)底部自動(dòng)刷新)
本篇文章主要介紹了Android搜索結(jié)果顯示高亮實(shí)例(有數(shù)據(jù)滑動(dòng)底部自動(dòng)刷新),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04Android自定義view之圍棋動(dòng)畫效果的實(shí)現(xiàn)
這篇文章主要介紹了Android自定義view之圍棋動(dòng)畫效果的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Android控件RecyclerView實(shí)現(xiàn)混排效果仿網(wǎng)易云音樂
這篇文章主要為大家詳細(xì)介紹了Android控件RecyclerView實(shí)現(xiàn)混排效果,仿網(wǎng)易云音樂,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Jetpack?Compose?實(shí)現(xiàn)一個(gè)圖片選擇框架功能
這篇文章主要介紹了Jetpack?Compose?實(shí)現(xiàn)一個(gè)圖片選擇框架,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06詳解Android中點(diǎn)擊事件的幾種實(shí)現(xiàn)方式
本篇文章主要介紹了Android中點(diǎn)擊事件的實(shí)現(xiàn)方式,點(diǎn)擊事件的實(shí)現(xiàn)分為3中,詳細(xì)的介紹了三種的用法,有興趣的可以了解一下。2016-12-12Android軟鍵盤顯示模式及打開和關(guān)閉方式(推薦)
這篇文章主要介紹了Android軟鍵盤顯示模式及打開和關(guān)閉方式(推薦),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02android+json+php+mysql實(shí)現(xiàn)用戶反饋功能方法解析
相信每個(gè)項(xiàng)目都會(huì)有用戶反饋建議等功能,這個(gè)實(shí)現(xiàn)的方法很多,下面是我實(shí)現(xiàn)的方法,供大家交流2012-11-11Android本地搜索業(yè)務(wù)優(yōu)化方案
這篇文章主要為大家介紹了Android本地搜索業(yè)務(wù)優(yōu)化方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05AndroidStudio插件GsonFormat之Json快速轉(zhuǎn)換JavaBean教程
這篇文章主要介紹了AndroidStudio插件GsonFormat之Json快速轉(zhuǎn)換JavaBean教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04