您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 鹤壁分类信息网,免费分类信息发布

知晓APP压力稳定性测试之monkey入门

2023/7/5 3:43:01发布34次查看
1、什么是monkey?更要紧的是,把性能测试工具分析透彻,让其社会功能发挥到极致才是我们当务之急要做的。
monkey是一个命令行工具,使用安卓调试桥(adb)来运行它,模拟用户触摸屏幕、滑动trackball、按键等随机事件流来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,可以根据获取的log信息进行修复。
注:运行adb服务,需要搭建android sdk的环境,可以参考我另一篇《app压力稳定性测试之monkey环境搭建》完成。
2、monkey的一般使用步骤
1先确认设备(模拟器或者真机)是否连接成功。命令:adb devices,出现设备号则表示连接成功
2确定待测应用的包名。参考如下
1)打开待测应用后,输入命令:adb shell dumpsys activity | find "mfocusedactivity"
例图,我开启课堂的应用,输入命令后,得到包名为comtencentedu
2)adb shell进入shell界面,通过查看datadata下的程序包,根据关键字查找包名
3执行monkey测试命令:adb shell monkey -p comtencentedu -v -v 200
这个命令的意思就是,向课堂app发送200次随机事件流操作,且打印日志
3、monkey的常见命令
-help 查看monkey用法
命令格式:adb shell monkey [限制命令 参数值][事件名 百分比] 事件次数
-p <allowed-package-name>
用于约束限制,用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果不指定包,monkey将允许系统启动设备中的所有app。指定多个包,使用多个-p,一个-p后面接一个包名。
例: adb shell monkey -p comandroidbrowser -p comtencentedu -v 100
-v 用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别
-v,日志级别 level0;
-v -v,日志级别 level 1;
-v -v -v,日志级别 level 2;
要查看级别最高的日志,例:adb shell monkey -p comtencentedu -v -v -v 100
-s 用于指定伪随机数生成器的seed值,如果seed相同,则两次monkey测试所产生的事件序列也相同的。一般测试过程中出现崩溃,可以通过seed值来完成复现。
--throttle <毫秒> 用于指定用户操作(即事件)间的时延,单位是毫秒;
--randomize-throttle 用这个参数必须与--throttle 绑定使用。用于在事件之间插入随机延迟,随机延迟范围为0到throttle设置的时间,单位为毫秒;
例:adb shell monkey -p comtencentedu --throttle 500 --randomize-throttle 100
--pkg-whitelist-file 白名单,后面接txt文件,指定白名单参数后只测试白名单的应用程序
--pkg-blacklist-file 黑名单,后面接txt文件,指定黑名单参数后,避开黑名单的应用程序
例:adb shell monkey --pkg-whitelist-file datalocaltmpwhitelisttxt 100
注:黑白名单命令不能同时使用
monkey百分比事件
0:点击事件百分比,即参数--pct-touch
1:滑动事件百分比,即参数--pct-motion
2:缩放事件百分比,即参数--pct-pinchzoom
3:轨迹球事件百分比,即参数--pct-trackball
4:屏幕旋转事件百分比,即参数--pct-rotation
5:基本导航事件百分比,即参数--pct-nav
6:主要导航事件百分比,即参数--pct-majornav
7:系统按键事件百分比,即参数--pct-syskeys
8:activity启动事件百分比,即参数--pct-appswitch
9:键盘唤出隐藏事件百分比,即参数--pct-flip
10:其他事件百分比,即参数--pct-anyevent
例:adb shell monkey -p comtencentedu --pct-touch 10 -v -v 100
4、monkeyscript
monkeyscript是monkey的脚本语言,是一组可以被monkey识别的命令集合,可以帮我们完成一系列的被固定的重复性操作。
脚本优势:简单、快捷、不需要借助任何工具,只是运行一个脚本文件
脚本缺点:只能简单实现坐标、按键等基本操作(根据像素点来进行操作)
<脚本格式>
#头文件、控制monkey发送消息的参数
type=raw events
count=10
speed=10
#以下为monkey命令
start data >>
launchactivity(pkg_name,activity)
dispatchpress(keycode_enter)
dispatchpress(keycode_home)
---->前三行是脚本头。count为脚本中包含的指令数目。speed为执行速度。
---->start data >>后面是执行的命令。
<常见api>
launchactivity(pkg_name, cl_name): 启动应用的activity。参数:包名和启动的activity。
tap(x, y, tapduration): 模拟一次手指单击事件。参数:x,y为控件坐标,tapduration为点击的持续时间,此参数可省略。
dispatchpress(keyname): 按键。注:keyname值可以百度android keycode列表获?
?otatescreen(rotationdegree, persist): 旋转屏幕。 参数:rotationdegree为旋转角度, eg 1代表90度;persist表示旋转之后是否固定,0表示旋转后恢复,非0则表示固定不变。
dispatchflip(truefalse): 打开或者关闭软键盘。
longpress(): 长按2秒。
pressandhold(x, y, pressduration): 模拟长按事件。
dispatchstring(input): 输入字符串。
drag(xstart, ystart, xend, yend, stepcount): 用于模拟一个拖拽操作。
pinchzoom(x1start, y1start, x1end, y1end, x2start, y2start, x2end, y2end, stepcount): 模拟缩放手势。
userwait(sleeptime): 休眠一段时间
devicewakeup(): 唤醒屏幕。
profilewait: 等待5秒。
---->在android sdk路径-tools下,使用sdk中的工具hierarchyviewerbat或者uiautomatorviewerbat,获取api方法中控件位置(x,y轴的坐标)。
<脚本举例>
要求:打开浏览器,输入wwwningmengbancom, 退出浏览器。这个步骤进行重复压力测试。
---->脚本文件browsertxt编写内容如下:
#头文件、控制monkey发送消息的参数
type=raw events
count=10
speed=10
#以下为脚本正文
start data >>
#1打开浏览器
launchactivity(comandroidbrowser,comandroidbrowserbrowseractivity)
profilewait()
#2清空网址
tap(223,146)
profilewait()
dispatchpress(112)
profilewait()
#3输入网址
dispatchstring(wwwningmengbancom)
profilewait()
#4确认,载入网址
dispatchpress(keycode_enter)
profilewait()
#5完成退出浏览器
dispatchpress(keycode_home)
profilewait()
---->将browsertxt文件push到手机中
adb push d:\browsertxt datalocaltmp
d:\browsertxt 为本地脚本文件路径及名称,datalocaltmp为手机路径
---->运行脚本
adb shell monkey -f datalocaltmpbrowsertxt -v -v 200
5、补充小知识:
1>如何安装apk?
adb install xxxapk -----为了获取apk的安装包所在地址,可以直接把apk拖到cmd的窗口获取,返回success就说明安装成功了?
?>如何将本地文件上传到手机端?
adb push <本机路径> <手机路径>
例,将本地的白名单上传到手机端,adb push f:\whitelisttxt datalocaltmp
3>如何将日志保存到pc端?
adb shell monkey -v -v -v 1000 > 本机地址
例:adb shell monkey -v -v -v 1000 > d:\monkeytxt
4>日志查看补充
---->先把日志输出到本地
---->注意观察switch后面的内容,一般错误都会显示在这个后面
---->anr问题:日志中搜索anr关键字
---->奔溃问题:在日志中搜索exception问题
鹤壁分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录