Android - 自动化测试_第1页
Android - 自动化测试_第2页
Android - 自动化测试_第3页
Android - 自动化测试_第4页
Android - 自动化测试_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Android - 自动化测试 - ArcherMind Technology(Nanjing) Co., Ltd.Mobile Software ExpertFan Wang 2014-6-15Mobile Software Expert 前言:软件测试是软件产品开发过程中的重要环节,对于保重软件质量具有重要的意思。手动测试和自动化测试是软件测试的两个基本手段。本文主要介Android 自动化测试Android平台上提供了一些自动化测试工具:Monkey、Monkeyrunner。Mobile Software Expert 培训目标:学习本课程后,你应该能:了解测试相关概念掌握Monke

2、y、Monkeyrunner 使用方法Mobile Software Expert 目录:测试相关概念Monkey、Monkeyrunner概述Monkey 的基本使用方法Monkey runner 的基本使用方法Mobile Software Expert 目录:测试相关概念Monkey、Monkeyrunner概述Monkey 的基本使用方法Monkey runner 的基本使用方法Mobile Software Expert 测试相关概念:测试方法是否知道源代码?测试粒度测试次数1、黑盒测试2、白盒测试1、方法测试2、单元测试3、集成测试1、冒烟测试2、压力测试MonkeyMobile

3、Software Expert 目录:测试相关概念Monkey、Monkeyrunner概述Monkey 的基本使用方法Monkey runner 的基本使用方法Mobile Software ExpertMonkey、Monkeyrunner概述:一、Monkey monkey可以直接在XP/WIN7上运行,只要XP/WIN7上能用adb,即可使用。 Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,Monkey测试是一种为了测试软件的稳定性、健壮性的快

4、速有效的方法。 Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar。 Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;这样就可以通过在shell窗口中执行: adb shell monkey +命令参数来进行Monkey测试了。 Mobile Software ExpertMonkey、Monkeyrunner概述:二、Monkeyrunner monkeyrun

5、ner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。 monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的 Monkeyrunner文件在SDK目录的tools子目录下,运行时,如果没有指定环境变量,需到tools目录下方可执行 Monkeyrunner支持自己编写插件,控制事件

6、,随时截图,简而言之,任何你在模拟器/设备中能干的事情,MonkeyRunner都能干,而且还可以记录和回放! Mobile Software ExpertMonkey、Monkeyrunner概述:二、monkeyrunner工具为Android测试提供了以下特性: 多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。 功能测试: monkeyrunner可以为一个应用自动贯彻

7、一次功能测试。您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。 回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。 可扩展的自动化:由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。除了使用monkeyrunner API之外,您还可以使用标准的Python os和subpress模块来调用如adb这样的Android工具。 Mobile Software ExpertMonkey、Monkeyrunner概述:三、Monkey和Monkey

8、runner工具区别Monkey:Monkey工具直接运行在设备或模拟器的adbshell中,生成用户或系统的伪随机事件流。monkeyrunner:monkeyrunner工具则是在工作站上通过API定义的特定命令和事件控制设备或模拟器。 Mobile Software Expert 目录:测试相关概念Monkey、Monkeyrunner概述Monkey 的基本使用方法Monkey runner 的基本使用方法Mobile Software Expert Monkey的基本用法:可以通过开发机器上的命令行或脚本来启动Monkey。由于Monkey运行在模拟器/设备环境中,所以必须用其环境中

9、的shell来进行启动。可以通过在每条命令前加上adb shell来达到目的,也可以进入Shell后直接输入Monkey命令。基本语法如下: adb shell monkey options 或adb shell#monkey如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,把调试等级加了1,并向其发送500个伪随机事件: adb shell monkey -p v 500Mobile Software Expert Monkey的基本用法:Monkey

10、 命令可简单分为如下四类:基本配置选项: 如设置尝试的事件数量,反馈信息的级别。运行约束选项: 如设置只对单独的一个包进行测试。事件类型和频率: 如设置触摸屏事件的发生频率。调试选项,如设置忽略应用程序异常,继续向系统发送事件,直到计数完成Mobile Software Expert Monkey的基本用法:Monkey Monkey 命令命令:Mobile Software Expert Monkey的基本用法:Monkey Monkey 命令命令:Mobile Software Expert Monkey的基本用法:Monkey Monkey 命令命令: adb adb shell mon

11、key shell monkey -p-p com.android.calendar com.android.calendar - - -ignore-ignore-crashes crashes -ignore-timeouts -ignore-timeouts - -throttlethrottle 380 380 - -v v - -s s 3500 3500 300000300000 C:C:monkeymonkey_ _calendar_calendar_log.txtlog.txt指定测试程序的包指定测试程序的包忽略超时忽略超时插入时延插入时延LogLog的详细度的详细度伪随机数伪

12、随机数执行次数执行次数Mobile Software Expert 目录:测试相关概念Monkey、Monkeyrunner概述Monkey 的基本使用方法Monkey runner 的基本使用方法Mobile Software ExpertMonkey runner 的基本使用方法:Monkeyrunner 环境搭建MonkeyRunnerAndroid环境搭建Python 环境搭建JDKSDKEclipseMobile Software ExpertMonkey runner 的基本使用方法:1、下载安装Python下载网址:/2、环境变量配置 C

13、:Python27Mobile Software ExpertMonkey runner 的基本使用方法:3、配置成功如图: Mobile Software ExpertMonkey runner 的基本使用方法:monkeyrunnerAPI于com.android.monkeyrunnercom.android.monkeyrunner包中包含三个模块:MonkeyRunner:一个为monkeyrunner程序提供工具方法的类。这个类提供了用于连接monkeyrunner至设备或模拟器的方法。它还提供了用于创建一个monkeyrunner程序的用户界面以及显示内置帮助的方法。waitFo

14、rConnection (float timeout, string deviceId) sleep (float seconds) help (string format) MonkeyImage:表示一个截图对象。这个类提供了截图、将位图转换成各种格式、比较两个MonkeyImage对象以及写图像到文件的方法。MonkeyImage创建对象的方法如下:newimage =MonkeyDevice.takeSnapshot()writeToFile (string path, string format)Mobile Software ExpertMonkey runner 的基本使用方法:

15、MonkeyDevice:表示一个设备或模拟器。这个类提供了安装和卸载程序包、启动一个活动以及发送键盘或触摸事件到应用程序的方法。您也可以用这个类来运行测试包。MonkeyDevice的常用方法:1.Touch (x坐标, y坐标,动作)可以通过开启Pointer location在手机上直接查看坐标点.2.Press(按键值, 动作)动作包括:DOWN, UP, DOWN_AND_UP。大部分时间用DOWN_AND_UP来模拟按键、松手的过程。比如要进行一个返回键操作:device.press(KEYCODE_BACK,MonkeyDevice.DOWN_AND_UP)Mobile Soft

16、ware ExpertMonkey runner 的基本使用方法:3.Drag(x, y),(x, y),持续时间,轨迹点,持续时间,轨迹点)按键值为按键值为Andriod键值表中有的值键值表中有的值drag(x, y),(x, y),持续时间,轨,持续时间,轨迹点迹点)第一组是起始坐标,第二组终点坐标。这里的坐标值要通过第一组是起始坐标,第二组终点坐标。这里的坐标值要通过hierarchyviewer工具来获取,轨迹点类似采样工具来获取,轨迹点类似采样4.启动启动Activity:startActivity(string)Mobile Software ExpertMonkey runner

17、 的基本使用方法:在python程序中,您将以Python模块的形式使用这些类。monkeyrunner工具不会自动导入这些模块。您必须使用类似如下的from语句: from com.android.monkeyrunner import Monkey Runner, Monkey Device, Monkey Image您可以在一个from语句中导入超过一个模块,其间以逗号分隔。Mobile Software ExpertMonkey runner 的基本使用方法:运行运行monkeyrunnermonkeyrunnermonkeyrunner命令的语法为:monkeyrunner -plu

18、ginmonkeyrunner -plugin 1、启动一个Android系统的模拟器,即为命令中device2、 将cmd命令定位到android SDK的路径下的tools目录3、输入命令monkeyrunner,回车,进入Shell命令交互方式 导入monkeyrunner所要使用的模块: A.直接在shell命令中输入(然后回车): from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice,MonkeyImage B.输入device = MonkeyRunner.waitForConnection(),然后回车Mo

19、bile Software ExpertMonkey runner 的基本使用方法:一个简单的一个简单的monkeyrunnermonkeyrunner程序实例程序实例以下为一个简单的monkeyrunner程序,它将会连接到一个设备,创建一个MonkeyDevice对象。使用MonkeyDevice对象,程序将安装一个Android应用包,运行其中一个活动,并向其发送按键事件。程序接下来会将结果截图,创建一个MonkeyImage对象,并使用这个对象截图将保存至.png文件。#导入此程序所需的monkeyrunner模块from com.android.monkeyrunner import

20、 MonkeyRunner, MonkeyDeviceMonkeyImage#连接当前设备,返回一个MonkeyDevice对象device = MonkeyRunner.waitForConnection()#安装Android包,注意,此方法返回的返回值为boolean,由此您可以判断安装过程是否正常device.installPackage(myproject/bin/MyApplication.apk)Mobile Software ExpertMonkey runner 的基本使用方法:#运行此应用中的一个活动device.startActivity(component=com.ex

21、ample.android.myapplication.MainActivity)#按下菜单按键device.press(KEYCODE_MENU,DOWN_AND_UP)#截取屏幕截图result = device.takeSnapshot()#将截图保存至文件result.writeToFile(myproject/shot1.png,png)#时延(秒):MonkeyRunner.sleep(3) #滑动屏幕(Python脚本):for i in range(1,70):device.drag(start,end,0.1,10) #触击屏幕: device.touch(94,34,DOW

22、N_AND_UP) Mobile Software ExpertMonkey runner 的基本使用方法:#运行此应用中的一个活动device.startActivity(component=com.example.android.myapplication.MainActivity)#按下菜单按键device.press(KEYCODE_MENU,DOWN_AND_UP)#截取屏幕截图result = device.takeSnapshot()#将截图保存至文件result.writeToFile(myproject/shot1.png,png)Mobile Software Expert

23、Monkey runner 的基本使用方法:相应按键指令:device.press(KEYCODE_DPAD_CENTER,DOWN_AND_UP) 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 下音量键:KE

24、YCODE_VOLUME_DOWN power键:KEYCODE_POWER camera键:KEYCODE_CAMERA menu键:KEYCODE_MENUMobile Software ExpertMonkey runner 的基本使用方法:一个简单的例子:在日历中连续新建2000个事件Mobile Software ExpertMonkey runner 的基本使用方法:Monkeyrunner自动化测试的记录和回放MonkeyRunner工具中提供了记录与回放的功能,可以通过monkey_recorder.py和monkey_playback.py两个python文件来实现。此两个文

25、件存放在:androidandroid源代码 - monkeyrunner源代码 - scripts文件夹。Mobile Software ExpertMonkey runner 的基本使用方法:1、记录 a、启动模拟器或通过USB连接手机 b、打开命令行提示符,并且定位到Tools文件下输入: monkeyrunner monkey_recorder.py 按下回车键如下图:Mobile Software ExpertMonkey runner 的基本使用方法:1、记录 录制界面菜单介绍:菜单菜单描述描述Wait等待时间Press a button发送Menu、Home、Search等按键事

26、件Type something发送一些字符Fling滑动Export Actions导出脚本,脚本命名可以不带后缀或加上.mrRefresh Display刷新当前的界面Mobile Software ExpertMonkey runner 的基本使用方法:1、记录 注意:导出的脚本要与monkey_recorder.py和monkey_playback.py 在同一目录下,即Tools文件夹下。Mobile Software ExpertMonkey runner 的基本使用方法:2、回放 脚本回放需要使用另外一个脚本 monkeyplayback.py执行步骤: a、启动模拟器或通过USB

27、连接手机 b、打开命令行提示符,并且定位到Tools文件下输入: monkeyrunner monkeyplayback.py “sound” 按下回车键Mobile Software Expert总结 测试相关概念 Monkey、Monkeyrunner 概述 Monkey 常用命令 Monkeyrunner 使用环境搭建、常用指令 Monkeyrunner 的记录与回放Mobile Software Expert附录:一、MonkeyMonkey命令命令介绍介绍常规 1、-help 列出简单的用法。 2、-v 命令行的每一个-v将增加反馈信息的级别。Level 0(缺省值)除启动提示、测试

28、完成和最终结果之外,提供较少信息。Level 1提供较为详细的测试信息,如逐个发送到Activity的事件。Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。 事件3、 -s 伪随机数生成器的seed值。如果用相同的seed值再次运行Monkey,它将生成相同的事件序列。 4、-throttle 在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被产成。 5、-pct-touch 调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)。6、-pct-mo

29、tion 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)。Mobile Software Expert附录:7、-pct-trackball 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)。 8、-pct-nav 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)。 9、-pct-majornav 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键) 10、-pct-syskeys 调整“系统”按

30、键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)。 11、-pct-appswitch 调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。12、-pct-anyevent 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。 Mobile Software Expert附录:约束限制 13、-p 如果用此参数指定了一个或几个包,Monkey将只允许系统启动这些包里的Activ

31、ity。如果你的应用程序还需要访问其它包里的Activity(如选择取一个联系人),那些包也需要在此同时指定。如果不指定任何包,Monkey将允许系统启动全部包里的Activity。要指定多个包,需要使用多个 -p选项,每个-p选项只能用于一个包。 14、-c 如果用此参数指定了一个或几个类别,Monkey将只允许系统启动被这些类别中的某个类别列出的Activity。如果不指定任何类别,Monkey将选 择下列类别中列出的Activity:Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多个类别,需要使用多个-c选项,每个-c选 项只能用于

32、一个类别。 调试15、 -dbg-no-events 设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不会再进一步生成事件。为了得到最佳结果,把它与-v、一个或几个包约 束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。 16、-hprof 设置此选项,将在Monkey事件序列之前和之后立即生成profiling报告。这将会在data/misc中生成大文件(5Mb),所以要小心使用它。 Mobile Software Expert附录:17、-ignore-crashes 通常,当应用程序崩溃或

33、发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。 18、-ignore-timeouts 通常,当应用程序发生任何超时错误(如“Application Not Responding”对话框)时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。 19、-ignore-security-exceptions 通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。20、-kill-proce

34、ss-after-error 通常,当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。当设置了此选项时,将会通知系统停止发生错误的进程。注意,正常的(成功的)结束,并没有停止启动的进程,设备只是在结束事件之后,简单地保持在最后的状态。 21、-monitor-native-crashes 监视并报告Android系统中本地代码的崩溃事件。如果设置了-kill-process-after-error,系统将停止运行。 22、-wait-dbg 停止执行中的Monkey,直到有调试器和它相连接 Mobile Software Expert附录:二、MonkeyrunnerMonkeyrunner 记录回放脚本记录回放脚本1 1、monkeyrecoder.pyUsage: monkeyrunner monkeyrecorder.py monkeyrecorder.py from com.android.monkeyrunner import MonkeyRunnerfrom com.android.monkeyrunner.recorder import MonkeyRecorderdevice = MonkeyRunner.waitForConnection()Monkey

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论