monkey测试android稳定性

monkey测试简介:

Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法

monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件, 提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器

monkey包括很多选项,大致四大类:
1.基本配置选项,如设置尝试的事件数量。
2.运行约束选项,如设置只对单独的一个包进行测试。
3.事件类型和频率。
4.调试选项

一,首先你要先搭建环境(adb的运行环境要有)
1.先下载jdk 具体安装流程请参考

https://blog.csdn.net/write6/article/details/79136388

2.再下载sdk 具体安装流程请参考:https://blog.csdn.net/u011541946/article/details/77142045
3.下载雷电、夜神等模拟机(如果是在虚拟机上测试)

二,打开手机的开发者调试工具,用usb数据线链接你的手机,打开usb调试模式;

三,monkey前的准备命令
1.windows+r 输入cmd进入dos命令行;
2.输入adb devices 下面出现设备名
3.如果没有链接上虚拟机
adb connect 127.0.0.1:虚拟机端点号

3.再点开待测APP,输入adb shell dumpsys window windows | findstr mFocusedApp找到应用包名
四、monkey命令详解:
在这里插入图片描述
Monkey停止的三种情况,1.应用报错 2.应用出现anr异常,无响应 3 指定包名后,应用中有跳往其他原因的意图时,也会报错停止

Monkey的测试策略及示例:

一、先上一个简单的测试用例

设计用例的思路就是设置不同的事件比,不同的时间间隔,执行的事件数一般起码要上万吧,不然怎么能称作稳定性测试,中间在加入不同的测试包名,模拟多个应用切换的场景。
在这里插入图片描述
异常: 1、插入其他应用:搜狗输入法、电话、短信 、QQ等

2、 忽略崩溃、超时、安全异常、跟踪本地方法的崩溃问题

示例:
-p 后面可以添加多个测试包名,以便模拟应用间的切换

C:\Users\Administrator>adbshell monkey -p com.chemi -p com.sougou --pct-touch 25 --pct-motion 15 --pct-pinchzoom 5–pct-rotation 10 --pct-majornav 25 --pct-flip 10 --pct-syskeys 10 --throttle300 --ignore-crashes --monitor-native-crashes -v -v -v 10000 >log040502.txt

结束monkey进程:

直接拨数据线是没有用的,必须把这个进程杀掉monkey才会停止

C:\Documents and Settings\hui.qian>adb shell
1|shell@scx15_sp7715ea:/ $ ps|grep monkey
ps|grep monkey
shell 7772 185 277516 22244 ffffffff4010a58c S com.android.commands.monkey
shell@scx15_sp7715ea:/ $ kill 7772

*注:可以通过重定向>到手机文件,方面后续分析log
打开log文件,大概内容如下:
Event percentages(事件百分比):
1:滑动事件百分比,即参数–pct-motion
2:缩放事件百分比,即参数–pct-pinchzoom
3:轨迹球事件百分比,即参数–pct-trackball
4:屏幕旋转事件百分比
5:基本导航事件百分比,即参数–pct-nav
6:主要导航事件百分比,即参数–pct-majornav
8:Activity启动事件百分比,即参数–pct-appswitch
9:键盘翻转事件百分比,即参数–pct-flip
10:其他事件百分比,即参数–pct-anyevent

日志分析:

正常情况, 如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间; // Monkey finished 代表执行完成.
异常情况
Monkey 测试出现错误后,一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)

  1. 程序无响应的问题: 在日志中搜索 “ANR”
  2. 崩溃问题:在日志中搜索 “Exception” (如果出现空指针, NullPointerException) 肯定是有bug

Monkey 执行中断, 在log最后也能看到当前执行次数
*分析crash的exception信息
在这里插入图片描述
在这里插入图片描述
把这些信息发给开发人员
在这里插入图片描述
在这里插入图片描述
重现问题使用seed值:Adb shell monkey -p包名 -s
1468814836964 1000
如果使用忽略anr和crash时没有seed值;
5.anr结果分析
实践过程
Step1:安装可以引起anr的app
Step2:执行压力命令
Step3:分析anr的exception信息

在这里插入图片描述
手动找到anrlog的信息
Adb shell 进入手机
Cd /data/anr/ 有一个traces.txt
如果出现anr了会抛出一条信息,这条信息会在traces.TXT的最上面部分
注:相关整理可以看我的日志分析文章
that’s all

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值