MONKEY稳定性测试

MONKEY测试

1、手机打开USB调试模式

MONKEY稳定性测试_第1张图片

2、打开设备,获取设备号:SNMBB18314511026

3、MONKEY应用场景

# monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触发屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久时间会发生异常

Monkey是命令行工具

# 弱点:monkey虽然可以根据一个指定的命令脚本发送按键 信息,但其不支持条件判断,也不支持读取待测界面的值来执行验证操作

#monkey可以用来做压力测试也开用来做自动化测试

# 什么时候用:产品稳定,没有特别多的BUG,一般会用monkey测试应用的文档性、健壮性(是否发生闪退、崩溃);整机测试

# 异常情形:

ANR: 无响应异常application not responding无响应

crash:崩溃,应用程序在使用中非正常退出;

4、应用步骤

# 启动安卓模拟器/真机

# cmd窗口进入命令行界面

# 查看设备连接情况

# 在命令行界面输入monkey命令

【如果需要制定设备:adb -s [device] shell monkey [options]】

5、monkey命令

adb shell monkey -p com.taobao.taobao -v -v -v -s 200 50

MONKEY稳定性测试_第2张图片

-p 用于约束限制,用次参数指定一个或多个包(package个,即APP名字),指定包之后,monkey将只允许系统启动指定的APP,如果不指定,monkey将允许系统启动设备所有的应用程序

adb shell monkey -p com.taobao.taobao 1000

com.taobao.taobao为包名,1000是事件计数(即让monkey程序模拟1000次随机用户事件)

查看包名:打开一个APP,输入:adb shell dumpsys activity | find "mFocusedActivity"

adb shell dumpsys window w |findstr \/ |findstr name=

adb shell dumpsys window -h

MONKEY稳定性测试_第3张图片

-s 用于指定伪随机数生产器的seed值,如果seed相同,则两次monkey测试所产生的事件序列也相同

adb shell monkey -p com.taobao.taobao -s 101 100

adb shell monkey -p com.taobao.taobao -s 101 100

用途:复现问题

工作原理:seed指定事件序列,用户触摸事件,按下home按键,然后按下物理电源键

同一seed重复事件步骤

adb shell monkey -p com.taobao.taobao -s 230 1000

说明:两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的,工作序列虽然是随机生成的,但是只要我们制定了相同的seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作是伪随机的

-v 用于指定反馈信息级别(信息级别就是日志的详细程度)总共分为三个级别

-v 日志级别 level0

说明:缺省值,仅提供启动提示,测试完成和最终结果等少量信息

-v -v 日志级别level1

说明:提供较为详细的日志,包括每个发送到activity的事件信息

-v -v -v 日志级别level2

说明:最详细的日志,包括了测试中选中、未选中的activity信息

adb shell monkey -p com.android.chrome -s 180 -v -v -v 500

看不懂日志,具体要学习monkey日志的分析

--throttle <毫秒> 用于指定用户操作(即事件)间的时间间隔,单位是毫秒

adb shell monkey -p com.android.chrome --throttle 3000 100

时间间隔3秒执行100次

MONKEY稳定性测试_第4张图片

--randomize-throttle 在事件之间插入随机延迟,随机延迟范围为0到throttle设置的时间,单位为毫秒

adb shell monkey -p com.android.chrome --throttle 5000 --randomize-throttle 100

时间间隔随机0到5秒执行100次

MONKEY稳定性测试_第5张图片

--pkg-whitelist-file 白名单,后面接txt文件

1)第一步把你设置的白名单的包写到一个txt文档里面,记得路径和文档名字都是英文

2)把这个文件拉到安卓机中去,放到/data/local/tmp下面

adb push D:\whitelist.txt /data/local/tmp

命令:adb shell monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt 1000

MONKEY稳定性测试_第6张图片

--pkg-blacklist-file 黑名单,后面接txt文件

命令:adb shell money --pkg-blacklist-file /data/tmp/blacklist.txt 100

输出日志文件(默认日志在窗体,但是大小有限制,不一定全):重定向

adb shell monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt 100 > D:\apk\monkey_log.txt

测试黑名单的程序

MONKEY稳定性测试_第7张图片

不测试黑名单中的应用程序

monkey常见参数-百分比事件

--pct-touch 调整点击事件的百分比,down-up,编号为0

--pct-motion 调整移动事件的百分比,直线滑动,编号为1

--pct-pinchzoom 调整两指缩放压缩手势的百分比,比如缩小放大手势,编号为2

--pct-rotation 调整旋转事件的百分比,横屏竖屏,编号为4

--pct-syskeys 调整系统按键的百分比,编号为7,如:home,back,start call,end call,音量控制按键

--pct-appswitch 调整app切换事件的百分比,编号为8

--pct-flip 调整键盘换出隐藏的百分比,编号为9

--pct-anyevent 其它时间的百分比,编号为10

adb shell monkey -p com.android.chrome -s 180 -v -v -v --pct-touch 100

——100%都是点击事件

adb shell monkey -p com.android.chrome -s 180 -v -v -v --pct-rotation 100

——100%都是旋转事件(魔性的玩法)

monkeyScript是一组可以被monkey识别的命令集合

monkeyRunner:通过API定义特定命令和事件控制设备;

adb shell monkey -p com.android.chrome -s 180 -v -v -v --pct-touch 50 --pct-touch 50 400

——一半点击一半旋转

停止运行的命令CTRL+C

但是手机还在执行命令,用ps查看进程号,用kill杀进程

ps | grep monkey

Python中os.system模块可执行脚本

 

你可能感兴趣的:(工具自动化)