《MTK平台Monkey测试用例及报告》(中)
monkey工具介绍及用法
monkey⼯具介绍及⽤法monkey是android 系统⾃带的⼀个命令⾏⼯具,可以向被测应⽤程序发送伪随机的⽤户事件流(如按键、触屏、滑动等操作),实现对应⽤程序进⾏测试的⽬的。
monkey测试也叫猴⼦测试,是指测试时可以像好奇的猴⼦⼀样,不停的对应⽤程序进⾏随机操作,以便验证应⽤程序的稳定性和健壮性。
因此,monkey测试是软件稳定性,健壮性的测试⼯具下⾯是monkey提供的⼀些参数:参数:事件相关参数表:-s <seed> 这个参数是伪随机数⽣成器的种⼦值,如果⽤相同的随机种⼦值再次运⾏相同的monkey命令时,前、后两次执⾏的操作事件序列相同,也就是相同的操作。
--throttle <milliseconds> 这个参数是设定在两个事件之间插⼊⼀个固定延时,它可以减缓Monkey的执⾏速度。
如果您不指定选项,Monkey将不会被延迟,事件将尽可能快地⽣产和发送消息。
--pct-touch <percent> 这个参数是设定触屏事件⽣产的百分⽐,触屏事件是⼀个有⼿指按下、抬起事件的操作。
--pct-motion <percent> 这个参数是设定滑动事件⽣成的百分⽐,滑动事件是⼀个先在某⼀个位置⼿指按下,滑动⼀段距离后再抬起⼿势的操作。
--pct-trackball <percent> 这个参数是设定轨迹球事件⽣成的百分⽐,轨迹球事件是包含⼀系列随机移动和单击事件的操作。
--pct-nav <percent> 这个参数是设置基本的导航事件的百分⽐,基本导航事件的模拟⽅向性设置输⼊向上、向下、向左、向右的操作。
--pct-majornav <percent> 这个参数是设定主要导航事件的百分⽐,主要导航事件通常是导致UI产⽣回馈事件,如:单击BACK键,单击MENU键。
--pct-syskeys <percent> 这个参数是设定系统按键事件的百分⽐,系统按键是指这些按键通常被保留,由系统使⽤,如HOME,BACK,拨号,挂断及⾳量控制键。
MTK测试用例大全(涵盖各项菜单)
7.1
7.2
来电中断 来短信中断
7.3 菜单查看
菜单—设置—话机设置—待机菜单显示—来 电中断 菜单—设置—话机设置—待机菜单显示—来 短信中断
菜单—设置—话机设置—待机菜单显示—墙 纸
7.4
设置系统墙纸 7.5
菜单—设置—话机设置—待机菜单显示—墙 纸—系统
设置下载墙纸
菜单—设置—话机设置—待机菜单显示—墙 纸—下载—记忆卡
70.7 70.8 70.9 80.1 80.2 80.3 80.4 80.5 80.6 80.7 80.8 80.9 90.1 90.2 90.3 90.4 90.5 90.6 90.7 90.8 90.9 100.1 100.2 100.3 100.4 100.5 100.6 100.7 100.8 100.8 110.1 110.2 110.3 110.4 110.5 110.6 110.7 110.8 110.9 120.1 120.2 120.3 120.4 120.5 120.6 120.7 120.8
7.6
设置下载墙纸之后将 设置下载墙纸之后将下载墙纸在TF卡中重命 7.7 下载墙纸在TF卡中重 名或者删除 命名或者删除 屏幕保护设置 菜单—设置—话机设置—待机菜单显示—屏 幕保护—屏幕保护设置 7.8
屏幕保护选择 7.9
菜单—设置—话机设置—待机菜单显示—屏 幕保护—选择
设置TF的图片为屏保 设置TF的图片为屏保之后将图片在TF卡中重 8.1 之后将图片在TF卡中 命名或者删除 重命名或者删除 屏保时来中断 设置屏保—待机—屏保时间到进入屏保界面 8.2 —来电或是来短信、闹钟等中断 设置屏保后在非待机 设置屏保,在非待机下屏保时间到 8.3 界面下 菜单查看 菜单—设置—话机设置—待机菜单显示—开 机(或是关机)动画 8.4
monkey测试精华(手把手教)
monkey测试是啥呢?monkey是的英文名,monkey测试就测试啦,拿着手机能干哈子啊,当然是感到好奇、一顿乱点啦,没有目的的进行操作!言归正传一、What is the MonkeyMonkey 是Android \ SDK 中附带的一个工具Monkey测试的原理:利用socket通讯(Android客户端和服务器以TCP/UDP方式)的方式来模拟用户的按键输入、触摸屏输入、手势输入等Monkey测试的目的:该工具可进行压力测试,更多的是一种随机测试和稳定性测试;开发人员可以结合Monkey打印的日志和系统打印的日志来分析测试的结果二、Monkey的特征1、测试的对象仅为应用程序包,有一定的局限性。
2、 Monkey测试使用的事件流数据流是随机的,不能进行自定义。
3、可对MonkeyTest的对象、事件数量、类型、频率等进行设置三、关于Monkey测试的停止条件Monkey Test执行过程中在下列三种情况下会自动停止:1、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
2、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。
3、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。
通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序四、Monkey的命令Monkey可分四大类:常用选项、事件选项、约束选项、调试选项1、常用选项-help :打印帮助信息 monkey命令的简单帮助:adb shell monkey -help-v :用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别日志级别 Level 0 示例:adb shell monkey -p com.htc.Weather -v 100日志级别 Level 1 示例:adb shell monkey -p com.htc.Weather -v -v 100 日志级别 Level 2 示例:adb shell monkey -p com.htc.Weather -v -v -v 1002、事件选项-s :用于指定伪随机数生成器的seed(种子)值,如果seed相同,则两次monkey测试所产生的事件序列也相同示例:adb shell monkey -p com.htc.Weather -s 10 100--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)如:--throttle 100--pct-touch:指定触摸事件的百分比,如:--pct-touch 5% ,相关的还有以下option:--pct-motion (滑动事件)、--pct-trackball (轨迹球事件)、--pct-nav (导航事件 up/down/left/right)、--pct-majornav (主要导航事件 back key 、 menu key)、--pct-syskeys (系统按键事件 Home 、Back 、startCall 、 endCall 、volumeControl)、--pct-appswitch (activity之间的切换)、--pct-anyevent (任意事件)3、约束选项-c: activity必须至少包含一个指定的category,才能被启动,否则启动不了-p:用于约束限制,用此参数指定一个或多个包如:指定一个包:adb shell monkey -p com.example.sellclientapp 100指定多个包:adb shell monkey -p com.htc.Weather -p com.htc.pdfreader 100说明:com.example.sellclientapp为包名,100是事件计数(即让monkey程序模拟100次随机用户事件)要查看设备中所有的包,在CMD窗口中执行以下命令:4、调试选项--dbg-no-events:初始化启动的activity,但是不产生任何事件。
Monkey测试执行与LOG分析_游戏中心测试人员使用
1、Monkey测试介绍Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。
传统意义上,Monkey测试主要针对的是应用的健壮性与稳定性,它通过大量的随机的用户事件来检测应用是否会异常。
主要使用Monkey测试来进行内存泄露检查。
2、Monkey测试执行Monkey测试可分为环境配置、测试执行、结果分析3步骤。
2.1、环境配置MONKEY测试使用的是ADB命令,因此只需要配置ADB环境即可。
2.2、测试准备与执行在Monkey测试前,必须进行以下准备手机屏幕超时设置为30分钟,防止手机进入锁屏状态。
插入SIM卡和存储卡后将手机开机,开启ADB模式,连接到PC(存储卡剩余空间尽量留大,建议1G以上)开启系统log。
(具体可依据每个机型平台决定)在PC上执行运行—>CMD,在弹出的命令窗口中,输入adb devices,检查设备是否连接在弹出的命令窗口中,输入adb shell,进入Linux Shell2.3、结果检查与分析测试结束后,需要将手机连接PC,拷贝以下文件:info.txt:此文件在手机上的SDCARD中,主要记录了MONKEY测试时发送的各种事件,如触摸事件的位置等等。
error.txt:此文件在手机上的SDCARD中,主要记录了MONKEY测试时产生的一些ANR、强制关闭等异常。
LOG文件:此文件在手机上的LOG文件夹中中,主要主要记录程序对MONKEY测试时的响应情况。
我们需要对这3个文件进行分析整理,以便提交开发人员处理。
2.3.1、检查测试是否完成通过info.txt文件,可以查看Monkey是否执行成功。
如下图2.3.2、结果分析整理前文有提及,我们目前执行Monkey测试的目的是为了检查是否有内存泄露,而这类问题主要是通过Log 文件来体现的。
monkey测试文档
Android Monkey测试Android中的monkey是对app做界面压力测试的一款工具,它可以向模拟器或者真机发送一系列随机的用户操作事件、或者系统事件。
概述Monkey是android sdk自带的一款命令行工具,适用于任何android模拟器或者真机。
它通过向手机发送一系列的随机事件,来测试手机app的稳定性。
Monkey命令包含一些参数,大体可以分为四类:∙基本参数,如指定随机事件的个数∙操作约束,如限制随机操作在指定的包内∙事件类型和频率∙调试选项Monkey运行过程中,向android系统发送随机事件。
并且,monkey会监视android 系统的运行状态,保证下面的三点:∙如果我们限制了monkey只在一个或几个包中运行。
那么monkey在运行过程中会监视产生的随机事件,如果某一事件会跳到其他包中,monkey就会丢弃该事件,确保monkey只在指定的包中运行。
∙如果我们的程序出现crash或者有未被捕获的异常,monkey就会停止运行,并报错。
∙如果我们的程序出现未响应,monkey会停止运行,并报错。
Monkey的基本用法我们可以在直接在命令行或者脚本中运行monkey,前提是android sdk环境已经ok。
基本语法如下:$ adb shell monkey [options] <event-count>如果没有其他参数限制,monkey默认以quiet模式运行,它会随机向手机中的包发送请求。
一般请求,我们都需要指定包名,下面的命令限制了包名,且指定产生500个随机事件:$ adb shell monkey -p com.yeetrack.android.client -v 500Monkey的参数下面列出了Monkey可以使用的参数。
基本参数∙--help打印帮助文档∙-v命令行中的每一个-v将增加反馈信息的级别。
Level 0(也是默认值)除启动提示、测试完成和最终结果之外,其他的信息很少。
Monkey测试详解
Monkey测试详解概念:monkey test,也有⼈叫做搞怪测试,⼀般指⽤毫⽆规律的指令或操作去测试被测系统,观察被测系统的稳定性和容错性。
这种测试⽅式在产品周期中的早期阶段会找到很多很好的bug,为⽤户节省不少的时间。
介绍:Monkey是Android系统⾃带⼀个命令⾏⼯具,可以运⾏在模拟器⾥或者真实设备中运⾏。
monkey向系统发送伪随机的⽤户事件流,实现对正在开发的应⽤程序进⾏压⼒测试。
monkey包括很多选项,⼤致四⼤类:1.基本配置选项,如设置尝试的事件数量。
2.运⾏约束选项,如设置只对单独的⼀个包进⾏测试。
3.事件类型和频率。
4.调试选项Monkey 命令启动⽅式:a. 可以通过PC机CMD窗⼝中执⾏: adb shell monkey {+命令参数}来进⾏Monkey测试b. 在PC上adb shell 进⼊Android系统,通过执⾏monkey {+命令参数} 来进⾏Monkey 测试c. 在Android机或者模拟器上直接执⾏monkey 命令,可以在Android机上安装Android终端模拟器monkey命令特性:不可能使⽤monkey来指定做⼀样测试,重复做很多次。
因为monkey产⽣的是伪随机的事件流。
但是我们可以通过添加命令选项将操作限制在⼀定的范围内。
⼀、⾸先你要先搭建环境1.先下载jdk具体安装流程请参考:JDK教程2.再下载sdk 具体安装流程请参考:SDK教程⼆、在开发者选项⾥打开⼿机的usb调试,⽤usb数据线连接⼿机,允许电脑连接⼿机。
三、monkey前的准备命令1.windows+R 输⼊cmd进⼊dos命令⾏;2.输⼊adb devices 下⾯出现类似下图的组合你就成功了;3.输⼊ adb shell pm list packages查看⼿机所有的包名,输⼊ adb shell pm list packages -3 查看⼿机上所有的第三⽅包名。
Monkey测试
Monkey测试⼀、Monkey是什么?Monkey是Android中的⼀个命令⾏⼯具,可以运⾏在模拟器或者实际设备中向系统发送伪随机的⽤户事件流(按键输⼊、触摸屏输⼊、⼿势输⼊等)实现对正在开发的应⽤程序进⾏测试Monkey测试之⼀种为了测试软件的稳定性、健壮性的快速有效的⽅式⼆、Monkey⽤来做什么的?Monkey 主要⽤于Android的稳定性测试,⾃动的⼀个压⼒测试⼩⼯具,主要⽬的就是为了测试app 是否会Crash(崩溃).三、Monkey的特征1.测试对象仅为应⽤程序包,有⼀定的局限性(不能对源码进⾏测试)2.Monkey测试使⽤的事件流数据是随机的,不能进⾏⾃定义3.可以对MonkeyTest对象,事件数量,类型、频率等进⾏设置四、Monkey程序介绍(1) Monkey程序由Android系统⾃带,使⽤Java语⾔写成,在Android⽂件系统中的存放路径是: /system/framework/monkey.jar;(2) Monkey.jar程序是由⼀个名为“monkey”的Shell脚本来启动执⾏,shell脚本在Android⽂件系统中的存放路径是:/system/bin/monkey;(3)Monkey 命令启动⽅式:a)可以通过PC机CMD窗⼝中执⾏: adb shell monkey {+命令参数}来进⾏Monkey测试b)在PC上adb shell 进⼊Android系统,通过执⾏ monkey {+命令参数} 来进⾏Monkey 测试c)在Android机或者模拟器上直接执⾏monkey 命令,可以在Android机上安装Android终端模拟器五、Monkey测试的⽬的1.ANR问题:在⽇志中搜索“ANR”2.崩溃的问题:在⽇志中搜索“Exception”3.ANR:Application Not Responding,在Android中,如果应该程序有⼀段时间响应不够灵敏,系统会向⽤户显⽰⼀个对话框,这个对话框称作应⽤程序⽆响应对话框。
monkey测试方法
monkey测试⽅法
1、Monkey测试原理:
Monkey是Android中的⼀个命令⾏⼯具,可以运⾏在模拟器⾥或实际设备中。
它向系统发送伪随机的⽤户事件流(如按键输⼊、触摸屏输⼊、⼿势输⼊等),实现对正在开发的应⽤程序进⾏压⼒测试。
Monkey测试是⼀种为了测试软件的稳定性、健壮性的快速有效的⽅法。
2、monkey常见命令:
adb shell monkey {+命令参数} 次数
adb shell monkey -help/-h
3、解析:
adb shell monkey –v –v –v –p 包名 –s 200 --throttle 1000 --ignore-crashes --ignore-timeouts 10000
-v:⽤于指定反馈信息级别,即⽇志的详细程度,总共有三个级别
-p:后边接着对应的包名,如果是整机测试,就不需要,⽤此参数指定⼀个或多个包(package,即APP名字)
-s:seed值,如果seed值相同,则两次的随机事件相同,常⽤于问题重现
--throttle <毫秒>:⽤于指定⽤户(即事件间)的时间延迟,单位是毫秒
--ignore-crashes --ignore-timeouts:在monkey测试过程中,遇到crash或者timeout的情况时忽略,⼀般不设置时,出现crash或者timeout时,monkey测试会终⽌,这⾥是防⽌monkey测试终⽌。
10000:随机事件次数
4、终⽌进程:
adb shell
ps | grep monkey
kill -9 pid。
monkey测试结果详细分析
monkey测试结果详细分析一、为什么要用Monkey 测试?简单在说就是象猴子一样乱点,为了测试软件的稳定性,健壮性。
号称最快速有效的方法。
有时候运行相同系列的测试,即使是复杂的测试,但是以相同的顺序和路径,即使一遍又一遍地运行也很少机会能发现内存和资源使用的bug。
而此时猴子就比人更有效了。
简介Monkey是一个命令行工具,可以运行在模拟器里或实际设备中。
它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。
Monkey包括许多选项,它们大致分为四大类:· 基本配置选项,如设置尝试的事件数量。
· 运行约束选项,如设置只对单独的一个包进行测试。
· 事件类型和频率。
· 调试选项。
在Monkey运行的时候,它生成事件,并把它们发给系统。
同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理:· 如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
· 如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。
· 如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
二、怎么用的?首先用一个最简单的例子分析://p参数:表示指定测试的程序//v参数:表示查看monkey生成的一些详细的随机的事件名//数字100:表示测试事件数为100monkey -p com.example.android.apis -v -v -v 100结果如下::Monkey: seed=0 count=100:AllowPackage: com.example.android.apis:IncludeCategory: UNCHER:IncludeCategory: android.intent.category.MONKEY//各种事件所占的比例。
Monkey稳定性测试实战之Monkey对APP随机测试
Monkey稳定性测试实战之Monkey对APP随机测试Monkey测试简介Monkey测试是Android平台⾃动化测试的⼀种⼿段,通过Monkey程序模拟⽤户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进⾏压⼒测试,检测程序多久的时间会发⽣异常。
开发⼈员结合monkey 打印的⽇志和系统打印的⽇志,修改测试中出现的问题, Monkey 是SDK中附带的⼀个⼯具,所有的事件都是随机产⽣的,不带任何⼈的主观性。
Monkey程序介绍1) Monkey程序由Android系统⾃带,使⽤Java语⾔写成,在Android⽂件系统中的存放路径是:/system/framework/monkey.jar2) Monkey.jar程序是由⼀个名为“monkey”的Shell脚本来启动执⾏,shell脚本在Android⽂件系统中的存放路径是:/system/bin/monkey;这样就可以通过在CMD窗⼝中执⾏: adb shell monkey {+命令参数}来进⾏Monkey测试了。
Monkey命令的简单帮助要获取Monkey命令⾃带的简单帮助,在CMD中执⾏命令: adb shell monkey –help2.环境搭建⼀、环境搭建安装通过 adb命令安装 apk包: adb install apk包名根据⾃⼰的需要,使⽤其它命令对apk进⾏测试:⽐如通过adb shell monkey -v -p com.xx.xx 100来简单输出测试信息,如图3.随机测试查看apk包名:Cmd -->cd apk安装包⽬录下 aapt dump badging 包名.apk或者直接查看⼿机中存在的apk包,进⼊adb shell 命令后-⼿机的data/data⽂件夹-ls查看所有包名找到要测apk的包名Cmd -> adb shell -> cd data/data -> ls2.运⾏Monkey,对此包进⾏300 次⽆规律点击测试在adb shell环境中:monkey –p 包名字 –v 300或者在windows外⾯执⾏该命令:adb shell monkey -p 包名字 -v 300或者运⾏monkey,对此包进⾏300次⽆规律点击后将⽇志导出到电脑的某⼀位置adb shell -p 包名 -v 点击数 > 电脑某⼀位置3、测试停⽌后,查看导出的monkey⽇志,发现问题。
Monkey测试
利用monkey测试android,入门级用户可能遇见的错误及解决办法一、D:\android\android-sdk-windows\tools目录中没有adb.exe检查一下你的android-sdk-windows目录下有没有platform-tools目录。
并检查访目录下是否有adb.exe二、在cmd中执行“adb shell”,则提示“error: device not found”没有发现设备。
如果用手机设备测试,请用USB数据线与电脑连接,同时并安装好手机驱动;如果你采用模拟器测试,你应该先启动eclipse,然后设置好模拟器,并进入模拟器测试状态,如下图所示三、执行“adb shell”,提示“error: more than one device and emulator”第一种情况:确实用多个设备或者模拟器错误说明是有一个以上的设备和仿真器。
这是因为我启用了模拟器,同时我也将我的手机通过USB线连接到了电脑。
所以这里存在两个设备。
这种情况下,需要指定连接某一个设备或者模拟器。
1、获取模拟器或设备列表命令:adb devices效果如下图所示:2、指定device来执行adb shell命令:adb -s devicename shell在多个device的时候,执行adb命令一般都需要用参数-s指定device。
例如卸载emulator-5554上的包com.soft.camera,命令如下adb -s emulator-5554 uninstall com.soft.camera例如通过monkey测试adb -s emulator-5554 shell monkey -v -p 500第二种情况:确实有一个设备或者模拟器之所以显示有多个,是因为此设备用过两次。
使用命令adb devices 会看到这个设备有两种状:offline 和device,有以下两种解决办法:1、重启adb.exe服务一般办法:在命令窗口输入adb start-server重新启动adb.exe服务2、终极方法,结束adb进程如果上述方法不可以,终极方法:打开任务栏,选择“进程”选项卡,找到adb.exe进程,结束之,重新启动就完事OK啦(或者在命令窗口输入命令adb kill-server)四、在手机上通过monkey测试在cmd中输入:adb -s HT21JV204550 shell monkey -v -p 500出现:No activities found to run, monkey aborted.原因:起初我是通过模拟环境测试,Eclipse设置如下:通过手机测试,应该将“Target”选项卡中由原来的“Automatic”项改为“Manual”,如下图所示:然后选择“Target”选项卡的前面一个选项卡“Android”,点击下面的“Run”。
Android自动化压力测试图解教程——Monkey工具
Android自动化压力测试图解教程——Monkey工具本帖最后由 lfyx 于 2012-4-1 14:20 编辑有时候我们需要对一个软件进行压力测试,检查该软件的性能。
如果是人工进行测试的话,效率会低很多,而且会比较枯燥。
这时,Android中的一个命令行工具Monkey就可以为我们减轻很多重复而又繁琐的工作。
以下就Monkey工具的简介、特性、基本用法、测试示例图解、测试的停止条件和命令参数说明等方面进行介绍。
一、Monkey简介至于Monkey的名字是有何而来的呢?这个没有去怎么考究,Monkey这个工具就是一个调皮的猴子,在App中乱按、乱摸、乱滚、乱跳。
Monkey测试是Android平台下自动化测试的一种快速有效的手段,通过Monkey工具可以模拟用户触摸屏幕、滑动轨迹球、按键等操作来对模拟器或者手机设备上的软件进行压力测试,检测该软件的稳定性、健壮性。
它的原理是向系统发送伪随机的用户事件流(如按键输入、触摸输入、手势输入等),实现对正在开发的应用程序进行压力测试。
二、Monkey的特性(1)测试的对象仅为应用程序包(apk包),有一定的局限性;(2)Monkey测试使用的事件流数据流是随机的,不能进行自定义;(3)可对MonkeyTest的对象、事件数量、类型、频率等进行设置。
虽然Monkey工具并不完善,但是足于应付应用程序的基本测试需要了。
如果需要功能更强大的测试工具的话,可以使用Monkey的进化版MonkeyRunner。
如果把Monkey看作是幼儿园的小孩,那么它的进化版MonkeyRunner就可以看作是一个初中生了。
它支持自定义插件,控制事件,随时截图,简而言之,任何你在模拟器/设备中能干的事情,MonkeyRunner都能干,而且还可以记录和回放。
在这里,就不详细介绍MonkeyRunner了,具体可以参考其官方文档或者其他相关资料。
注:MonkeyRunner官方文档的网址/guide/developing/tools/monkeyrunner_concepts.html三、Monkey的基本用法基本语法如下:$ adb shell monkey [options]如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。
【自动化】Monkey自动化测试实现总结
【⾃动化】Monkey⾃动化测试实现总结⽬的:“盲点”进⾏monkey⾃动化测试,检测卡死注意:设置对应企业证书+APP名称+设置测试时间:存储log路径:/Users/XXXX/Library/Developer/Xcode/DerivedData/XCTestWD-dodkkvpngiaeisakvpjpjukiraqy/Logs/Test教程:ps :建议使⽤xcode 10.1, mac系统不升级到最新10.15即可(可能中间很多步骤都不需要经历,就能安装成功)1、下载Fastmoneygit clone2、下载后检查路径并解压⽂件/Users/xxxxx/Fastmonkey3、进⼊Fastmonkey路径下并更新所需要的依赖cd /Users/xxxxx/Fastmonkey/XCTestWD-master4、因安装所需的第三库需要先安装Carthage (第三⽅管理⼯具),若未安装请先安装carthagebrew install carthage-----------------------------------------------------5、若提⽰未安装Homebrew,请先安装Homebrew(包管理⼯具)/usr/bin/ruby -e "$(curl -fsSL )"6、更新brew到最新版本brew update注意:如果遇到Error: The /usr/local directory is not writable.错误,就执⾏以下命令sudo chown -R $(whoami):admin /usr/local,再更新。
-----------------------------------------------------7、继续第4步,安装carthage8、安装carthage成功后,更新所需的第三⽅库1)⾸先进⼊cd /Users/xxxxx/Fastmonkey/XCTestWD-master2)创建carthage⽂件touch Cartfile3)此时项⽬⽂件夹中会有⼀个名字为Carthage的⽂件4)使⽤xcode打开该⽂件open -a Xcode Cartfile-------------------------------------------5)在⽂件中输⼊需要更新的第三库并指定版本(以下为多次尝试可⽤的第三⽅库版本)github "Alamofire/Alamofire" ~> 4.0github "httpswift/swifter" == 1.4.3github "SwiftyJSON/SwiftyJSON" == 4.2.0github "cezheng/Fuzi" ~> 2.1.0github "tadija/AEXML" == 4.2.2github "CocoaLumberjack/CocoaLumberjack" == 3.2.0github "Quick/Nimble"6)保存⽂件并退出7)如遇更新报错,打开xcode -> Preferences -> Locations,选择xcode版本为10.19、更新:carthage update--------------------------------------------10、第三⽅库下载完成后,开始配置XCTestWD.xcodeproj1)⽤Xcode打开XCTestWD.xcodeproj2)修改为企业证书XCTestWD->General->Signing->TeamXCTestWDUITests->General->Signing->Team3)将XCTestWD->Build Setting->Header Search Paths和XCTestWD->Build Setting->Objective-C Bridging Header⾥⾯的XCTestWD/XCTestWD-Bridging-Header.h删掉(解决编译报错:error: bridging header '/Users/xxxxx/Fastmonkey/XCTestWD-master/XCTestWD/XCTestWD/XCTestWD-Bridging-Header.h' does not exist)4)修改Product ID11、修改XCTestWD项⽬⼯程代码中的配置值1)修改运⾏模式,将XCTestWDRunner.swift⽂件中的serverMode设置为false2)修改XCTestWDMonkey.swift⽂件中的bundleID为被测App的值3)修改Monkey.swift⽂件中的elapsedTime值确定你需要运⾏多长时间的Monkey,注意单位是秒12、执⾏Monkey⽅法1:1)将被测⼿机连接电脑(注意App事先安装到被测试⼿机上)2)xcode选择执⾏XCTestWDUITests3)Product - > Test⽅法2:1)将被测⼿机连接电脑(注意App事先安装到被测试⼿机上)2)打开⼀个终端窗⼝,执⾏以下命令iproxy 8001 80013)再打开⼀个端⼝,先进⼊⼯程所在⽬录cd /Users/xxxxx/Fastmonkey/XCTestWD-master/XCTestWD4)执⾏以下命令(注意,devidce name 为被测⼿机名称,注意单引号为英⽂状态下输⼊)xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination ‘platform=iOS,name=devide name’XCTESTWD_PORT=8100 clean test13、编译报错的解决办法1)ideviceinstaller: command not foundCommand /bin/sh failed with exit code 127解决办法:安装ideviceinstallerbrew uninstall ideviceinstallerbrew uninstall libimobiledevicebrew install --HEAD libimobiledevicebrew link --overwrite libimobiledevicebrew install ideviceinstallerbrew link --overwrite ideviceinstaller备注:在使⽤中如果遇到Could not connect to lockdownd. Exiting错误可以试试升级libusbmuxd并重新安装ideviceinstallerbrew uninstall --ignore-dependencies libimobiledevicebrew uninstall --ignore-dependencies usbmuxdbrew install --HEAD usbmuxdbrew unlink usbmuxdbrew link usbmuxd2)可以编译成功,但执⾏Monkey过程中报错Assertion Failure: XCTestWDRunner.swift:39: failed: caught "NSInvalidArgumentException", "+[XCAXClient_iOS sharedClient]: unrecognized selector sent to class 0x104afc130"解决办法:⼀开始搭建环境时使⽤的xcode版本为10.2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SW_Str_002
SW_Str_003
SW_Str_004
SW_Str_005
1. SIM卡已经安装 2. SD卡已经安装 Contacts 3. 手机和SIM卡中已经 存有多个联系人 1. SIM卡已经安装 2. SD卡已经安装 SMS 3. 手机上已经存有若干 短信和彩信 1. SIM卡已经安装 2. SD卡已经安装 Settings 3. 多个应用程序已经启 用 4.打开WIFI或数据流量 1. 相机图库中已经存有 Gallery/Cam 多张照片 era
SW_Str_006 deskclock SW_Str_007 calculator SW_Str_008 Email 1、登陆email帐号且存 在邮件 2.打开WIFI或数据流量
SW_Str_009 FM SW_Str_010 File Manager SW_Str_011 Sound Recorder SW_Str_012 System
系统应用压力测试
编号 SW_Str_001 Launcher 项目名称 预置条件 1. SIM卡已经安装 2. SD卡已经安装
SW04_KAZAM_Thunder3_4.7_2014_06_30 执行步骤 1.输入命令“adb shell monkey - p uncher3 --throttle 500 --pct-anyevent 100 -v 14400”
com.and roid.setti ngs
1.终端运行正常, 整个过程中无异常 发生 1.终端运行正常, 整个过程中无异常 发生 1.终端运行正常, 整个过程中无异常 发生 1.终端运行正常, 整个过程中无异常 发生
com.and roid.calc ulator2
1.终端运行正常, 整个过程中无异常 发生 1.终端运行正常, 整个过程中无异常 发生 1.终端运行正常, 整个过程中无异常 发生 1.终端运行正常, 整个过程中无异常 发生
测试结果 第一轮测试结果 第二轮测试结果
Байду номын сангаас
测试人
设备1 设备2 设备3 设备1 设备2 设备3
1.终端运行正常, 整个过程中无异常 发生 1.终端运行正常, 整个过程中无异常 发生 1.终端运行正常, 整个过程中无异常 发生
com.gion ee.carefr eelaunch er com.and roid.cont acts
1、插入耳机
1. SIM卡已经安装 2. SD卡已经安装 3. 多个应用程序已经启 用 1. SIM卡已经安装 2. SD卡已经安装 3. 多个应用程序已经启 用 1. SIM卡已经安装 2. SD卡已经安装 3.打开WIFI或数据流量
der3_4.7_2014_06_30 预期结果 1.终端运行正常, 整个过程中无异常 发生 备注
1.输入命令“adb shell monkey - p com.android.contacts --throttle 500 --pct-anyevent 100 -v 14400 ” 1. 输入命令“adb shell monkey - p com.android.mms --throttle 500 -pct-appswitch 100 -v 14400” 1. 输入命令“adb shell monkey - p com.android.settings --throttle 500 --pct-appswitch 100 -v 14400 ” 1. 输入命令“adb shell monkey -p com.android.gallery3d --throttle 500 --pct-appswitch 100 -v 14400 ” 1. 输入命令“adb shell monkey -p com.android.deskclock --throttle 500 --pct-appswitch 100 -v 14400 ” 1. 输入命令“adb shell monkey -p com.android.calculator2 -throttle 500 --pct-appswitch 100 -v 14400” 1. 输入命令“adb shell monkey -v -p com.android.email --throttle 400 --pct-appswitch 100 144000” (随机事件144000次,每次100毫秒, 覆盖该应用中全部Activity) 1. 输入命令“adb shell monkey -p com.mediatek.FMRadio --throttle 500 --pct-appswitch 100 -v 14400 ” 1. 输入命令“adb shell monkey -p com.mediatek.filemanager -throttle 500 --pct-appswitch 100 -v 14400” 1. 输入命令“adb shell monkey -v -p com.android.soundrecorder -throttle 500 --pct-appswitch 100 14400” 1. 输入命令“adb shell monkey -v -v -v --pct-anyevent 50 -throttle 500 288000”