appium入坑必备--Monkey命令_appium monkey

ADB与Monkey有着密切的关系,但是我为什么要分开讲呢,虽然有密切的关系,但是作用的领域还是有所区别的,Monkey猴子,模仿人的动作完成指定或者随机的操作,代替人为操作手机的。ADB模拟管理手机的,通俗点这么说。废话不多说,看完你就知道了两者之间有何具体的区别。

目录

基本配置

事件间隔(–throttle)

指定包(-p)

日志设置(-v)

seed值(-s)

调试选项

事件类型

分析日志(找BUG)


在测试中如果要进行APP稳定性测试Monkey绝对是首选,那么什么是稳定性测试呢?

稳定性测试就是指软件长时间的持续运行,系统版本是否稳定,是否能否持续的为用户 提供服务

那么Monkey又是怎么来做到的呢。

Monkey是向系统发送随机的用户事件流(如按键输入、触摸屏输入和手势输入等), 实现对正在开发的应用程序进行稳定性测试。可以更好的模拟用户操作,确保App的稳定性。

adb shell monkey——monkey.shell——monkey.jar——安卓进程——设备上执行测试

看了Andrioid-SDK包的就明白了,里面有这么些东西,我们通过输入命令辗转反侧才到设备上,设备识别到了才会有相应的操作。

Monkey选项主要分为3大类:

1. 基本配置选项,如设置尝试的事件数量,运行约束选项,如设置只对单独的一个包进行测试

2. 事件类型和频率

3. 调试选

之前讲过怎么装Android-SDK,那么我们通过输入adb shell monkey可以看到

这么多命令,怎么办呢,也看不懂,看不懂就跟着来。

不管怎么样万能的结构就是adb shell monkey … count

count什么意思呢,事件数,也就是执行多少次的意思 ,这个结构中就是你随意填入的命令了,接着看。

基本配置

事件间隔(–throttle)

eg:时间间隔单位是ms,1s=1000ms发送10个事件,持续1分钟。换算一个事件间隔6s,10个事件就是60s

adb shell monkey --throttle 6000 10

指定包(-p)

1、-p 此参数指定了一个包,Monkey将只允许系统启动这些包里的 Activity

2、-p -p 如果用此参数指定了几个包, Monkey将只允许系统启动这些包里的Activity

eg:执行CSDN100次事件

adb shell monkey -p net.csdn.csdnplus 100

日志设置(-v)

1、-v Level 0 除启动提示、测试完成和最终结果之外,提供较少信息

2、-v-v Level 1 提供较为详细的测试信息,如逐个发送到Activity的事件

3、-v-v-v Level 2 提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。

eg:执行日志导出到本地

adb shell monkey -p net.csdn.csdnplus -v-v-v 100 >d:\CSDN.txt

seed值(-s)

在Monkey运行过程中,肯定会发现异常、奔溃、无响应等问题,对于此类问题如何进行复现 呢?

-s seed 伪随机数生成器的seed值。如果用相同的seed值再次运行Monkey,它将生成 相同的事件序列。也可以指定值。

eg: 复现bug

adb shell monkey -s 20210728 -p net.csdn.csdnplus -v-v-v 100 >d:\net.csdn.csdnplus.txt

回归测试(验证bug)

adb shell monkey -s 20210728 -p net.csdn.csdnplus -v-v-v 50

调试选项

在Monkey运行过程中,我们可以通过结束进程的方式来终止Monkey的执行,当然在运行过程中遇 到异常、奔溃等情况Monkey也会停止。为了保证执行的事件数执行完整,我们可以通过调试选项 的设置来防止在运行过程中Monkey命令的提前结束。

–ignore-crashes 忽略在应用程序出现crash时导致的monkey停止

–ignore-timeouts 忽略在应用程序出现ANR问题时导致monkey停止

–ignore-security-exceptions 忽略应用程序发生许可错误时导致monkey停止

–kill-process-after-error 当应用程序发生错误时,应用程序停止运行并保持在当前状态

eg:对CSDN进行稳定性测试,执行50次事件,忽略过程中遇到的异常,直到50次事件完成

adb shell monkey -p net.csdn.csdnplus --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security- exceptions --kill-process-after-error -v-v-v 50 >d:\CSDN.txt

事件类型

0:触摸事件百分比,即参数–pct-touch 实际操作类似于点击

1:滑动事件百分比,即参数–pct-motion 实际操作是一个没有拐弯的直线滑动操作

2:缩放事件百分比,即参数–pct-pinchzoom 智能机上的放大缩小手势操作

3:轨迹球事件百分比,即参数–pct-trackball 一系列的曲线滑动操作

4:屏幕旋转事件百分比,即参数----pct-rotation 手机屏幕在横竖屏之间不断地切换

5:基本导航事件百分比,即参数–pct-nav 设备上、下、左、右键

6:主要导航事件百分比,即参数–pct-majornav 键盘的中间键、回退按键、菜单按键

7:系统事件百分比,即参数–pct-syskeys 点击Home键、返回键、音量调节键等

8:Activity启动事件百分比,即参数–pct-appswitch 页面的切换与跳转

9:键盘翻转事件百分比,即参数–pct-flip 点击输入框、键盘弹起、点击输入框以外区域、键盘收回等

10:其他事件百分比,即参数–pct-anyevent 除了上面的一些其他事件,如按键、其他不常用的设备上的按钮,

eg:adb shell monkey -p net.csdn.csdnplus -s 100 --pct-touch 30 --pct-motion 30 --pct-appswitch 10 --pct-rotation 5 --throttle 1000 --ignore-crashes --ignore-timeouts -v-v-v 36000 >d:\CSDN.log

注:将adb shell monkey写到.bat文件中即可,事件类型根据测试的app自行决定事件的百分比,如果APP的滑动需求较多,那就增加滑动的事件百分比。

分析日志(找BUG)

作为一名合格的测试人员,既然能跑稳定性测试,那么出现的BUG也不能放过,需要记录起来,那么怎么样找BUG呢,这里稍作说明。

ANR程序无响应、crash程序崩溃、exception异常、timeout超时,这四种,timeout可以忽略,可能是因为网络原因造成的也不一定,但是合格的测试都会记录下来。

1、统计出现的异常次数、出现频率

2、定位错误事件

3、提交bug,并附上日志信息

4、回归验证

最好的是把次数记录好后把对应的BUG提示也一起附在后面,记录好多少行,最后提交的时候把整个日志文件也给到开发。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值