ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:403.48KB ,
资源ID:11433052      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11433052.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Monkeyrunner操作测试.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Monkeyrunner操作测试.docx

1、Monkeyrunner操作测试 Monkeyrunner操作手册一、 自动化测试的原理a) 手机自动化测试的原理i. 手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试。ii. 关键点在于agent,有的公司是向自己的手

2、机终端的软件功能模块中植入测试程序响应代码,有的公司可以利用MMI_Command的方式来控制手机终端;原理就是给手机提供一个响应的接口。iii. 而对于PC控制端,这个测试脚本用各种编程语言都可以,看如何定义。iv. 而有的自动化测试设计成录制的机制,说通俗点,就是记录手工操作的键盘信息或者LCD的操作信息(LCD需要用到智能识别机制)v. 自动化测试框架的搭建方法是通用的,你需要有一套自己的测试框架才能保证自动化测试的顺利开展。b) MonkeyRunner自动化测试的原理MonkeyRunner工具提供了一个API,运用该API编写的程序可以不用通过Android代码来直接控制Andro

3、id设置和模拟器,我们可以写一个Python程序对A ndroid应用程序或测试包进行安装,运行,发送模拟击键,对用户界面进行截图并将截图存储在指定目录上等操作。二、 环境搭建a) 连接手机: 1 Android需要Root;2 (不必须)安装RE,控制data/data挂载权限工具安装i. JDK安装:详细:JDK安装配置ii. SDK安装:建议 拷贝SDK包,解压后配置SDK环境变量 或 安装详细:SDK安装配置iii. 安装apktool,下载apktool包,解压后,拷贝到SDK:.sdktools下 iv. Python编译器安装:1. 下载python安装包2. 双击打开pytho

4、n3. 选择安装路径,点击NEXT,到安装完成4. 配置python环境变量,在添加python安装地址 v. 安装完成后在cmd窗口下面分别输入java version、python和monkeyrunner检查是否正确安装,如下图所示:至此环境安装就结束了三、 Monkeyrunner:连接真机因为模拟器和真机的巨大差距,建议使用真机做Monkeyrunner自动化测试,如果没有真机,自行安装虚拟模拟器。a) 在cmd窗口下面输入adb decixes显示出真机连接型号。如果未出现连接不成功。连接不成功,可以尝试使用豌豆荚安装手机连接,按照提示对PC和手机操作。b) 连接成功后,在cmd窗

5、口下面输入adb shell进入到手机,连接成功四、 使用Monkeyrunner基本要素#导入模块(必须-第一步);from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice,MonkeyImage #连接当前设备,并返回一个MonkeyDevice对象(必须-第二步);device=MonkeyRunner.waitForConnection()#安装Android包:device.installPackage(D:FreeBook.apk)#卸载程序device.removePackage ( com.xiaomishu

6、.restaurant.reservation ) #使用aapt(apktool安装 )获取Activity下package和入口activity名称使用cmd窗口下面,跳转到apktool下,输入aapt dump badging D:freebook.apk #启动一个Activity;device.startActivity (component=com.xiaomishu.restaurant.reservation/com.xiaomishu.rp.app.activity.main.SplashActivity) #截图;result=device.takeSnapshot()r

7、esult.writeToFile(F:/shot/1.png,png) #从PC加载图片pic=MonkeyRunner.loadImageFromFile(./shot.png) #获取坐标点指定区域的图像newpic=newpic.getSubImage(0,57,715,1123)#和电脑上保存的图片进行对比,并输出结果pic=MonkeyRunner.loadImageFromFile(F:/shot.png)newpic.writeToFile(./shot1.png,png)print (pic.sameAs(newpic,1.0)#时延(秒);MonkeyRunner.slee

8、p(2)#滑动屏幕;device.drag(180,180),(600,600),0.1,10) /开始,结束,持续时间,步骤 #连续滑动屏幕;for i in range(1,4):device.drag(180,180),(600,600),0.1,10)#触击屏幕;device.touch(408,66,DOWN_AND_UP)#打印printinsert login #输入(登录输入)device.type(longshan)#按键(系统键)device.press(KEYCODE_HOME,DOWN_AND_UP)home键:KEYCODE_HOME back键:KEYCODE_BA

9、CK send键:KEYCODE_CALLend键:KEYCODE_ENDCALL 上导航键:KEYCODE_DPAD_UP下导航键:KEYCODE_DPAD_DOWN 左导航:KEYCODE_DPAD_LEFT右导航键:KEYCODE_DPAD_RIGHT ok键:KEYCODE_DPAD_CENTER上音量键:KEYCODE_VOLUME_UP 下音量键:KEYCODE_VOLUME_DOWNpower键:KEYCODE_POWER camera键:KEYCODE_CAMERA menu键:KEYCODE_MENU #回车键device.press(KEYCODE_ENTER) #屏幕唤醒

10、device.wake() #for 循环for i in range(5,10): print(i) #循环截图命名 result=device.takeSnapshot() result.writeToFile(F:/shot/+str(i)+.png,png) #时间命名t = time.strftime(%Y-%m-%d-%X,time.localtime()t = t.replace(:,-)result=device.takeSnapshot()result.writeToFile(F:/shot/+t+.png,png) #if判断if(device): printdevice

11、is OKelse: printdevice is .Please.退出 sys.exit(1) #定义函数import sys,time,datetime,osdef write_result(casename): t = time.strftime(%Y-%m-%d-%X,time.localtime() t = t.replace(:,-) testfinish = casename+ +test finished! new_path_filename = rF:shotTestResult.txt file_object = open(new_path_filename, a) fil

12、e_object.write(t) file_object.write(n) file_object.write(testfinish) file_object.write(n) file_object.close( ) print testfinish #调用函数write_result(casename) 综上,常用:1. printinsert login 2. device.type(longshan) 3. device.press(KEYCODE_ENTER)4. device.touch(430,220,DOWN_AND_UP) 5. device.drag(300,670),(

13、300,220),1,10)6. result=device.takeSnapshot()7. result.writeToFile(F:/shot/1.png,png)8. MonkeyRunner.sleep(10)9. device.wake()五、 启动Monkeyrunnera) 在cmd窗口下面输入monkeyrunner,进入monkeyrunner版本信息b) 导入模板from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice,MonkeyImage 回车c) 连接当前设备,并返回一个MonkeyDevice对

14、象d) 按下Home键device.press(KEYCODE_HOME,DOWN_AND_UP)e) 后续操作(按照基本要素操作)六、 使用Monkeyrunner编辑脚本除了cmd直接操作手机,也可以编辑好脚本后,运行脚本,一次操作多个脚本命令a) 新建py格式脚本,如record_test.pyb) 编辑脚本c) 运行脚本,在cmd窗口下,输入monkeyrunner D: record_test.py,基本即可运行,脚本运转速度比较快,中间穿插时延比较好附:1、instal and remove.py 安装和卸载模板,修改*部分即可 2、MonR-P.py脚本模板,操作手机安装卸载,输

15、入截图等等基本全部包含在内 3、for-循环模板,4次循环点击HOME和MENU七、 使用Monkeyrunner录制脚本Monkeyrunner除了编写脚本,也可以录制脚本,再运行,录制的脚本主要基于坐标点,无法测试安装和卸载。常用功能: 点击,滑动,时延,点击按键:Home MENU Search,输入主界面:具体操作步骤如下:a) 新建py格式脚本:recorder.pyb) 在脚本中编写内容如下:from com.android.monkeyrunner import MonkeyRunner as mrfrom com.android.monkeyrunner.recorder im

16、port MonkeyRecorder as recorderdevice = mr.waitForConnection()recorder.start(device)c) 保存recorder.py后,在cmd窗口下,运行 monkeyrunner D:recorder.py, 也可以在cmd下,先monkeyrunner 再输入上面脚本,启动录制d) 录制脚本:walt时延(s),press a Button按下指定系统3个按键中一个,Type Something 输入文本,Fling滑动 Refresh Display刷新屏幕(用于断开连接后)e) 录制完成脚本后,点击:export A

17、ction导出录制的脚本保存,选择保存位置,和脚本名:如:record_test.pyf) 新建py格式脚本:recorder_playback.pyg) 编辑recorder_playback.py脚本,内容如下:import sysfrom com.android.monkeyrunner import MonkeyRunnerCMD_MAP = TOUCH: lambda dev, arg: dev.touch(*arg), DRAG: lambda dev, arg: dev.drag(*arg), PRESS: lambda dev, arg: dev.press(*arg), TY

18、PE: lambda dev, arg: dev.type(*arg), WAIT: lambda dev, arg: MonkeyRunner.sleep(*arg) # Process a single file for the specified device.def process_file(fp, device): for line in fp: (cmd, rest) = line.split(|) try: # Parse the pydict rest = eval(rest) except: print unable to parse options continue if

19、cmd not in CMD_MAP: print unknown command: + cmd continue CMD_MAPcmd(device, rest)def main(): file = sys.argv1 fp = open(file, r) device = MonkeyRunner.waitForConnection() process_file(fp, device) fp.close();if _name_ = _main_: ain()h) 在cmd窗口下,运行:Monkeyrunner D:recorder_playback.py D:recorder_test.py脚本即可运行,真机安装脚本步骤运行注:Monkeyrunner,在运行了录制窗口后,如果device连接不上,需要重启手机和电脑附:recorder_playback.py recorder_test.py recorder.py文件MonR-P-1.py基于坐标,MonR-P-2.py基于坐标:添加判断、 函数、循环、截图。备注:Monkeyrunner 运用方便,但是移植性太弱,需要坐标支持,所以Monkeyrunner可以用基于ID控件的方式编写脚本,但是ID得获得和对手机服务要求高附:MonR-P-3.py基于ID

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

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