monkey测试

Monkey的概念:
又指‘猴子测试’,是指没有测试经验对计算机根本不了解的人,不知道任何程序的交互知识,给他一个程序,就会针对他看到的页面进行操作。
这种测试方式在产品早期会找到很多bug,为用户节省不少的时间。
Monkey是发送伪随机用户事件的工具。

Monkey在哪里?
每台android手机里都有Monkey工具,但是我们是看不到的,因为,Monkey不是一个可视化的工具,例如手机里的微信,这是一个可视化的,能打开,有图形化界面,但是Monkey没有。

手机如何与monkey进行通讯?
借助ADB才能与Monkey进行通讯。
在这里插入图片描述

Monkey的介绍
它是Android系统自带一个命令行工具,可以运行在模拟器里或者真是设备中运行。
monkey向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。

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

一、首先需要搭建环境

1、下载jdk
2、下载sdk:https://blog.csdn.net/weixin_45638642/article/details/122139997

二、打开手机的开发者调试工具,用usb数据线连接你的手机,我这里用的是逍遥模拟器

在这里插入图片描述
在这里插入图片描述
多次点击版本号就能开启开发者模式了。
在这里插入图片描述
ps:有时候会出现adb命令连接不上模拟器,这时候只要把电脑的adb复制一下,替换逍遥模拟器的安装目录下的,\MEmu文件夹内的adb文件,重启逍遥模拟器即可。过程不在复述。

网上说先进入逍遥模拟器安装目录(MEmu文件夹下),在CMD下输入:adb connect 127.0.0.1:21503,我这里连接不上,也不知道为什么,不过直接输入命令:adb devices,连上了。

在这里插入图片描述

三、monkey前准备工作

先连接模拟器,输入adb命令 adb devices
然后再输入adb shell pm list packages查看你的手机所有的安装包
输入 adb shell pm list packages -3 查看手机上所有的第三方安装包,尽量让测试机少安装第三方软件,这样可以尽快的找到想要的安装包名称。
在这里插入图片描述
在这里插入图片描述

四、首先用一个最简单的mokey去试着找哪个是你想要的安装包名称

/ / -p参数:表示指定测试的程序(空格后面跟安装包名字,拿刚才的第三方安装包一个个试)
/ /-v参数:表示查看monkey执行过程的信息(日志级别)(-v 越多越详细,最多三个)

/ /数字100:表示测试事件数为100

指定一个包 adb shell monkey -p 包名 -v -v -v 100 (此时指定软件会被打开并开始乱点乱按)
指定多个包 adb shell monkey -p 包名 -p com.pdfreader -p com.widgets -v 1000
不指定包 adb shell monkey -v 1000
在这里插入图片描述
Event percentages(事件百分比):

0:触摸事件百分比,参数–pct-touch

1:滑动事件百分比,参数–pct-motion

2:缩放事件百分比,参数–pct-pinchzoom

3:轨迹球事件百分比,参数–pct-trackball

4:屏幕旋转事件百分比,参数–pct-rotation

5:调整导航事件的百分比,包括上下左右,如方向输入设备的输入,老数据的上下左右键,智能机上没有。

6:基本导航事件百分比,参数–pct-nav

7:主要导航事件百分比,参数–pct-majornav

8:系统事件百分比,参数–pct-syskeys

9:Activity启动事件百分比,参数–pct-appswitch

10:键盘翻转事件百分比,参数–pct-flip

11:其他事件百分比,参数–pct-anyevent
2.尽管monkey产生是伪随机事件流,但是我们希望我们的操作有一定的规律性,即按键、触屏等各类事件操作有所偏重。

eg:(1).对文本框操作,需要更多的按键操作。
(2).玩游戏,需要更多的点击和滑动操作。

3.–throttle 设定两个事件之间一个固定延迟,可以减缓monkey的执行速度。如果不指定,monkey将不会被延迟,事件将尽可能快地生成和发送消息。单位:毫秒

eg:adb shell monkey --throttle 3000 -p com.tencent.news 100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。

4.–pct-touch (空格后加数字)设定触屏事件生成的百分比。触屏事件是一个有手指按下,抬起事件的手势。

eg: adb shell monkey --throttle 3000 --pct-touch 50 -p com.tencent.news 100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定触屏的事件占比为50%。

5.–pct-motion 设定滑动事件生成的百分比。滑动事件是一个先在某一个位置手指按下,滑动一段距离后再抬起手指的手势。

eg: adb shell monkey --throttle 3000 --pct-motion 50 -p com.tencent.news 100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定滑动的事件占比为50%。

6.–pct-trackball 设定轨迹球事件生成的百分比。轨迹球事件是包含一系列随机移动和单击事件的事件

eg:adb shell monkey --throttle 3000 --pct-trackball 50 -p com.tencent.news 100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定轨迹球的事件占比为50%。

7.–pct-nav 设定基本导航事件生成的百分比。基本导航事件是模拟方向性在设备上输入向上、向下、向左、向右的事件。

eg:adb shell monkey --throttle 3000 --pct-nav 40 -p com.tencent.news 100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定基本导航事件的占比为40%。

8.–pct-majornav 设定主要导航事件生成的百分比。主要导航事件通常会导致UI产生回馈信息,如单击Back键、Home键、Menu键等、

eg: adb shell monkey --throttle 3000 --pct-majornav 40 -p com.tencent.news 100

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定主要导航事件的占比为40%。

9.–hprof

指定了该参数,Monkey会在发送事件序列的前、后,生成性能分析报告。通常会在data/misc目录下生成一个5MB左右大小的文件

10.–ignore-crashes

通常情况下,monkey会在测试应用程序崩溃或者发生异常后停止运行,若指定了该参数,则monkey将会在产生异常后,继续向系统发送事件,直到指定事件全部运行完毕。

11.–ignore-timeouts

通常情况下,当应用程序发生任何超时错误(application not responding)时,monkey将停止运行。若指定了该参数,则monkey将会在产生错误信息后,继续向系统发送事件,直到指定事件全部运行完毕

12.–ignore-security-exceptions 通常情况下,指定应用程序发生许可错误时(如证书许可,网络许可等),monkey将停止运行。若指定了该参数,即使应用程序发生许可错误,monkey会继续向系统发送事件,直到指定事件全部运行完毕。

eg:adb shell monkey --throttle 3000 --pct-trackball 50 -p com.tencent.news --ignore-security-exceptions 100

ps:很大部分是抄的各个教程的,自己做了实践,然后在上面记录下面,方便自己记忆。

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小龚的测试之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值