monkeyrunner教程笔记Word文档下载推荐.docx

上传人:b****6 文档编号:21312006 上传时间:2023-01-29 格式:DOCX 页数:18 大小:581.55KB
下载 相关 举报
monkeyrunner教程笔记Word文档下载推荐.docx_第1页
第1页 / 共18页
monkeyrunner教程笔记Word文档下载推荐.docx_第2页
第2页 / 共18页
monkeyrunner教程笔记Word文档下载推荐.docx_第3页
第3页 / 共18页
monkeyrunner教程笔记Word文档下载推荐.docx_第4页
第4页 / 共18页
monkeyrunner教程笔记Word文档下载推荐.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

monkeyrunner教程笔记Word文档下载推荐.docx

《monkeyrunner教程笔记Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《monkeyrunner教程笔记Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

monkeyrunner教程笔记Word文档下载推荐.docx

fromcom.android.monkeyrunnerimport<

module>

运行monkeyrunner

命令语法为:

monkeyrunner-plugin<

plugin_jar>

<

program_filename>

program_options>

方式一:

在CMD命令窗口直接运行monkeyrunner

方式二:

使用Python编写测试代码文件,在CMD中执行monkeyrunnerFindyou.py运行

不论使用哪种方式,您都需要调用SDK目录的tools子目录下的monkeyrunner命令。

在运行monkeyrunner之前必须先运行相应的模拟器或连接真机,否则monkeyrunner无法连接到设备

运行模拟器有两种方法:

1、通过eclipse中执行模拟器2、在CMD中通过命令调用模拟器

这里介绍通过命令,在CMD中执行模拟器的方法

emulator-avdtest

上面命令中test是指模拟器的名称。

附:

问题:

CMD运行提示monkeyrunner不是内部或外部命令,也不是可运行的程序或批处理文件。

解决:

电脑环境变量未配置,将monkeyrunner所在目录配在环境变量里。

变量名:

Path

变量值:

D:

\android\android-sdk-windows\tools;

\android\android-sdk-windows\platform-tools

第一部分:

实例说明

实例一:

使用模拟器测试monkeyrunner

1.用Elipse打开andorid的模拟器或者在CMD中用andorid命令打开模拟器,如下:

命令:

C:

\Users\Administrator>

emulator-avdtest1(#test1是在模似器的上名称)

输入cmd命令后,模拟器就会起来(这个时候,如果一切正常的话,模拟器应该可以启动起来了。

运行monkeyrunner之前必须先运行相应的模拟器,不然monkeyrunner无法连接设备)

接着,我们打开另一个CMD窗口(前一个不要关),还是定位到tools目录,输入命令"

monkeyrunner"

,回车,将进入shell命令交互模式

monkeyrunner

好了,接下来就可以导入monkeyrunner所要使用的模块了。

当然是我们的"

From...import..."

直接在shell命令中输入:

fromcom.android.monkeyrunnerimportMonkeyRunner,MonkeyDevice回车

>

fromcom.android.monkeyrunnerimportMonkeyRunner,MonkeyDevice

OK,这步完成之后,我们就可以开始和模拟器“勾兑”了,

device=MonkeyRunner.waitForConnection()

没有报错的话,就代表和模拟器勾兑成功。

接下来,我们可以在里面装点东西了。

输入如下命令,并传入你的apk所在相对路径即可。

我这安装的是自己的apkhaitao,APK。

成功了会返回true。

如果没有返回true,一般都是语法错误或者你传入的相对路径有问题,仔细检查下就没问题了。

我自己的apk放在了E盘根目录下

device.installPackage(“E:

\Haitao.apk”)

接下来,我们就可以启动其中的任意activity了,只要传入package和activity名称即可。

命令如下:

device.startActivity(component="

com.example.android.apis/com.example.android.apis.Haitao"

相关指令:

查看包名,versioncode,versionName,和查看获取Activity下package和入口activity名称

win+R→cmd→命令:

aaptdumpbadginge:

\Haitao.apk

实例二:

连接真机测试monkeyrunner自动化测试

(P.S:

因为模拟器和真机的巨大差距,建议使用真机做Monkeyrunner自动化测试,如果没有真机,自行安装虚拟模拟器。

首先检查设备是否已连接

a、winr+R→cmd→C:

adbdevices

b、连接成功后,在CMD中输入adbshell

adbshell

进入到手机,连接成功

相关学习笔记

#引入程序所用的模块

fromcom.android.monkeyrunnerimportMonkeyRunner,MonkeyDevice,MonkeyImage

#引入程序所用的模块,使用别名

fromcom.android.monkeyrunnerimportMonkeyRunnerasmr

fromcom.android.monkeyrunnerimportMonkeyDeviceasmd

fromcom.android.monkeyrunnerimportMonkeyImageasmi

#如果给导入的模块起了别名,就必须使用别名,否则会出现错误。

#比如连接设备或模拟器,起了以上别名后,命令应该如下:

device=mr.waitForConnection()

#连接到设备或模拟器

#参数1:

超时时间,单位秒,浮点数。

默认是无限期地等待。

#参数2:

串deviceid,指定的设备名称。

默认为当前设备(手机优先,比如手机通过USB线连接到PC、其次为模拟器)。

#默认连接:

device=MonkeyRunner.waitForConnection()

#参数连接:

device=MonkeyRunner.waitForConnection(1.0,'

4df74b8XXXXXXX'

c、另开一个CMD,运行monkeyrunner

#导入模块(必须-第一步)

fromcom.android.monkeyrunnerimportMonkeyRunner,MonkeyDevice,MonkeyImage

#连接当前设备,并返回一个MonkeyDevice对象(必须-第二步);

device=MonkeyRunner.waitForConnection()

#安装Android包:

device.installPackage('

E:

\Haitao.apk'

#卸载包

device.removePackage('

com.shantao'

)(#包名)

#启动任意的Activity

使用aapt(apktool安装)获取Activity下package和入口activity名称使用cmd窗口下面,跳转到apktool下,输入aaptdumpbadgingE:

包名/启动Activity"

device.startActivity(component='

com.shantao/com.shantao.LaunchActivity'

(#在输入这窜指令之前,需要重新安装刚才安装的包,因为刚才有把它卸了,所以需要重新安装)

#截图;

获取设备的屏蔽缓冲区,产生了整个显示器的屏蔽捕获。

(截图)

命令 

result=device.takeSnapshot()

返回一个MonkeyImage对象(点阵图包装),我们可以用以下命令将图保存到指定文夹里,比如:

在E盘下有一个shot文件夹,输入命令回车显示为true后可以在shot文件夹找到刚才截的图

result.writeToFile('

/shot/1.png'

'

png'

#暂停(时延秒)

暂停目前正在运行的程序指定的秒数

MonkeyRunner.sleep(5)

#滑动屏幕;

device.drag((180,180),(600,600),0.1,10)//开始,结束,持续时间,步骤

#device.drag(X,Y,D,S)

#X开始坐标

#Y结束坐标

#D拖动持续时间(以秒为单位),默认1.0秒

#S插值点时要采取的步骤。

默认值是10

#连续滑动屏幕;

foriinrange(1,4):

device.drag((180,180),(600,600),0.1,10)

#触击屏幕;

device.touch(408,66,"

DOWN_AND_UP"

#device.touch(x,y,触摸事件类型)

#x,y的单位为像素

#触摸事件类型,请见下文中Findyou对device.press描述

#打印

print"

insertlogin"

#字符串发送到键盘输入(登录输入)

#device.type('

字符串'

),例如:

device.type('

longshan'

Findyou'

123456'

#唤醒设备屏幕

#锁屏后,屏幕关闭,可以用下命令唤醒

device.wake()

#重起手机

device.reboot()

#按键(系统键)

#device.press(参数1:

键码,参数2:

触摸事件类型)

见android.view.KeyEvent

#参数2,如有TouchPressType()返回的类型-触摸事件类型,有三种。

#1、DOWN发送一个DOWN事件。

指定DOWN事件类型发送到设备,对应的按一个键或触摸屏幕上。

#2、UP发送一个UP事件。

指定UP事件类型发送到设备,对应释放一个键或从屏幕上抬起。

#3、DOWN_AND_UP发送一个DOWN事件,然后一个UP事件。

对应于输入键或点击屏幕。

以上三种事件做为press()参数或touch()参数

#按下HOME键

device.press('

KEYCODE_HOME'

MonkeyDevice.DOWN_AND_UP)

#按下BACK键

KEYCODE_BACK'

#按下下导航键

KEYCODE_DPAD_DOWN'

#按下上导航键

KEYCODE_DPAD_UP'

#按下OK键

KEYCODE_DPAD_CENTER'

KeyCode:

home键KEYCODE_HOME

back键KEYCODE_BACK

send键KEYCODE_CALL

end键KEYCODE_ENDCALL

上导航键KEYCODE_DPAD_UP

下导航键KEYCODE_DPAD_DOWN

左导航KEYCODE_DPAD_LEFT

右导航键KEYCODE_DPAD_RIGHT

ok键KEYCODE_DPAD_CENTER

上音量键KEYCODE_VOLUME_UP

下音量键KEYCODE_VOLUME_DOWN

power键KEYCODE_POWER

camera键KEYCODE_CAMERA

menu键KEYCODE_MENU

DOWN_AND_UP'

#回车键

device.press('

KEYCODE_ENTER'

#for循环

foriinrange(5,10):

print(i)

#循环截图命名

result=device.takeSnapshot()

result.writeToFile('

F:

/shot/'

+str(i)+'

.png'

#时间命名

t=time.strftime("

%Y-%m-%d-%X"

time.localtime())t=t.replace("

:

"

"

-"

+t+'

#if判断

if(device):

deviceisOK"

else:

print"

deviceis...Please...退出"

sys.exit

(1)

#定义函数

importsys,time,datetime,os

defwrite_result(casename):

time.localtime())

t=t.replace("

testfinish=casename+'

'

+'

testfinished!

'

new_path_filename=r'

\shot\TestResult.txt'

file_object=open(new_path_filename,'

a'

file_object.write(t)

file_object.write('

\n'

file_object.write(testfinish)

file_object.close()printtestfinish

#调用函数

write_result(casename)

综上,常用:

1.print"

2.device.type('

3.device.press('

4.device.touch(430,220,"

5.device.drag((300,670),(300,220),1,10)

6.result=device.takeSnapshot()

7.result.writeToFile('

8.MonkeyRunner.sleep(10)

9.device.wake()

总结:

第一步:

在cmd窗口下面输入monkeyrunner,进入monkeyrunner版本信息

第二步:

导入模板fromcom.android.monkeyrunnerimportMonkeyRunner,MonkeyDevice,MonkeyImage回车

第三步:

连接当前设备,并返回一个MonkeyDevice对象

第四步:

按下Home键device.press('

第五步:

后续操作(按照基本要素操作)

第二部分:

使用Monkeyrunner编辑脚本

除了cmd直接操作手机,也可以编辑好脚本后,运行脚本,一次操作多个脚本命令

a)新建py格式脚本,如record_test.py

b)编辑脚本

#导入模块

fromcom.android.monkeyrunnerimportMonkeyRunner,MonkeyDevice,MonkeyImage

MonkeyRunner.sleep

(1)

#连接设备

device.wake()

#滑动解销

device.drag((360,1008),(616,1016),0.1,10)

MonkeyRunner.sleep

(2)

#点击Home键

#导入安装包并安装

E"

#启动程序

device.startActivity(component='

component='

#登录输入

device.type('

c)运行脚本,在cmd窗口下,输入monkeyrunnerD:

\

record_test.py,基本即可运行,脚本运转速度比较快,中间穿插时延比较好

第三部分:

使用Monkeyrunner录制脚本

Monkeyrunner除了编写脚本,也可以录制脚本,再运行,录制的脚本主要基于坐标点,无法测试安装和卸载。

常用功能:

点击,滑动,时延,点击按键:

HomeMENUSearch,

输入主界面:

具体操作步骤如下:

a)新建py格式脚本:

recorder.py

b)在脚本中编写内容如下:

fromcom.android.monkeyrunnerimportMonkeyRunnerasmrfromcom.android.monkeyrunner.recorderimportMonkeyRecorderasrecorderdevice=mr.waitForConnection()recorder.start(device)

c)保存recorder.py后,在cmd窗口下,运行monkeyrunnerD:

\recorder.py,也可以在cmd下,先monkeyrunner再输入上面脚本,启动录制

d)录制脚本:

walt时延(s),pressaButton按下指定系统3个按键中一个,TypeSomething输入文本,Fling滑动RefreshDisplay刷新屏幕(用于断开连接后)

e)录制完成脚本后,点击:

exportAction导出录制的脚本保存,选择保存位置,和脚本名:

如:

record_test.py

f)新建py格式脚本:

recorder_playback.py

g)编辑recorder_playback.py脚本,内容如下:

h)在cmd窗口下,运行:

MonkeyrunnerD:

\recorder_playback.pyD:

\recorder_test.py脚本即可运行,真机安装脚本步骤运行

注:

Monkeyrunner,在运行了录制窗口后,如果device连接不上,需要重启手机和电脑附:

recorder_playback.pyrecorder_test.pyrecorder.py文件MonR-P-1.py基于坐标,MonR-P-2.py基于坐标:

添加判断、函数、循环、截图。

备注:

Monkeyrunner运用方便,但是移植性太弱,需要坐标支持,所以Monkeyrunner可以用基于ID控件的方式编写脚本,但是ID得获得和对手机服务要求高附:

MonR-P-3.py基于ID

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1