APP使用monkey进行稳定性测试过程

APP使用monkey进行稳定性测试记录

Monkey测试是Android自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。
当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的软件.
最简单的方法就是用用下面的命令来使用Monkey,这个命令将会启动你的软件并且触发500个事件.
$ adb shell monkey -p your.package.name -v 500
Monkey是一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。Monkey包括许多选项,它们大致分为四大类:
• 基本配置选项,如设置尝试的事件数量。
• 运行约束选项,如设置只对单独的一个包进行测试。
• 事件类型和频率。
• 调试选项。
在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理:
• 如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
• 如果应用程序崩溃(crash)或接收到任何失控异常,Monkey将停止并报错。
• 如果应用程序产生了应用程序不响应(application not responding,简称:ANR)的错误,Monkey将会停止并报错。
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。

接下来我们就来实际操作一下monkey得测试过程

一,安装monkey环境
1,提前下载AndroidSDK环境https://www.androiddevtools.cn/和环境变量(需要先安装java环境)
2,配置环境教程(可以参考这个地址)https://www.jianshu.com/p/c3e1fe6f61c4
3,安卓设备(我用得是真机)

二,连接设备
1,手机打开USB调试模式
2,cmd命令行输入 adb devices
这样提示就是链接成功了
有序列号出现,这样就是连接成功了

连接信息解释:
手机设备:显示设备的序列号,如图的3TG0221903001884
device:已识别的设备,连接成功(这种情况即连接成功)
unauthorized:没有授权,需要手机上授权后才能链接(手机授权一下解决)
unkown:未识别的设备(电脑按照驱动)
offine:离线设备(设备和电脑断开连接了)

三,monkey得常用命令,
1,adb shell monkey:查看所有支持的monkey命令
2,打开cmd,输入adb shell monkey查看所有支持得monkey命令
在这里插入图片描述
2,adb shell monkey 100:随机发送100次操作(针对整个手机),count指事件,100即100次事件
3,monkey命令-事件间隔
1,adb shell monkey --throttle 1000 10:发送10个事件,1秒一个。1000指1000毫秒,10指10次,即一秒一次,一共10次,throttle用来控制事件发送频率
2,adb shell monkey --throttle 6000 10:发送10个事件,持续时间一分钟
4,monkey命令-指定包运行
1,-p此参数指定了一个包,monkey将至允许系统启动这些包里的activity
5,查询指定包名
1,adb shell dumpsys window w | findstr / | findstr name= 打开指定的APP在输入这个指令可以找到指定包的报名(建议用这种,手机上安装的app比较多的时候不好找)
2,adb shell pm list package -3 (查看手机上安装的第三方安装包)
3,adb shell pm list packages:找到手机所有包名
4,-p -p 如果此参数指定了几个包,monkey将只允许系统启动这些包里的activity

四,查找包名进行monkey测试

1,手机先启动要测试得程序,然后输入命令行adb shell dumpsys window w | findstr / | findstr name=
找到包名

在这里插入图片描述
2,输入命令行adb shell monkey -p 包名 --throttle 500 50 跑这个程序,50次,500毫秒一次(根据实际可随意调整参数)
–throttle 500 设定延时
在这里插入图片描述
3,这样就算简单得跑起来了,当然你可以自己设定跑得次数,

五,查看结果,输出日志
1,可以跑起来后,那我们要怎么才知道是不是稳定,有没有出现问题,那这时候就需要查看日志了,
首先,我们要创建一个文件夹,这是我之前就创建好了得,D盘下创建一个叫monkey得文件夹在这里插入图片描述
然后在输入命令行adb shell monkey -p com.jialan.taishan.activity -v 1000 >D:\limengqian\monkey\monkey.log 添加包名,
-v显示默认程度的信息,后面>添加文件夹得路径,\monkey.log 是日志得名称,
在这里插入图片描述
运行后,会在monkey得文件夹下自动添加\monkey.log日志
在这里插入图片描述monkey.log日志只是记录monkey事件得过程,最终问题我们还是需要结合logcat日志来分析问题

2,获取logcat日志(logcat日志,记录了用户的在系统上的所有操作)
1)、先清空系统上原有的logcat日志:adb logcat -c
2)、获取logcat日志:adb logcat -v time > D:\limengqian\monkey\logcat.log – 把logcat日志导入到D盘的monkey目录下。

这些做完后,就可以再次输入命令跑起来拉,

monkey跑后,会出现如下日志:
//activityResuming(com.android.settings)
//activityResuming(com.android.settings)
— 表示一个APP从前台调入后台,然后又从后台恢复到前台的过程,每做一次这样的动作,就会产生一行这样的信息。
这里表示"com.jialan.taishan.activity做了两次这样的动作。
在这里插入图片描述

六,分析monkey日志

Monkey 日志由以下几部分组成:
(1) 测试命令信息:随机种子 seed、运行次数、可运行应用列表、各事件百分比。
在这里插入图片描述
伪随机事件流:记录各种随机操作及中间的延迟时间,主要是以下几种操作:在这里插入图片描述

测试结果信息:完成时间数,其他信息
在这里插入图片描述

logcat日志分析问题
logcat日志分析的基本步骤。
1,如果是ANR(Android Not Responding)问题(具体的表现是,系统出现类似这样的提示:APP提示无法响应,是结束进行还是继续等待), 则搜索“ANR” 或 'anr in’关键词。 快速定位到关键事件信息 。
如:
12-02 21:31:22.350 E/ActivityManager( 389): ANR in com.android.settings (com.android.settings/.SubSettings)
12-02 21:31:22.350 E/ActivityManager( 389): PID: 676

2,如果是系统crash(具体的表现是,系统出现类似这样的提示:很抱歉,“xxx”已停止运行),会有这些关键字:java.lang.NullPointerException。

举个例子
本例子,我们在logcat日志中搜索anr in,发现以下日志:
在这里插入图片描述

这个日志的意思是,app出现 ANR的问题,进程号是676,ANR的跟踪日志在/data/anr/traces.txt文件里。
接下来,我们通过ADB命令adb pull /data/anr/traces.txt D:\apk\获取出traces.txt文件。我们把这个文件提供给开发定位即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值