软件测试|Monkey基本参数介绍

2023-11-09 22:05

本文主要是介绍软件测试|Monkey基本参数介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

说到android移动端稳定性测试,大家通常会想到android系统自动Monkey小猴子,通过Monkey命令模拟用户触摸点击屏幕、滑动、系统按键等操作来对设备上的app进行压力测试,来测试应用的稳定性和健壮性。

下面就说说monkey常用参数的用法~~

1、-help

**
**

作用:列出简单的用法

2、–throttle <milliseconds>

**
**

作用:在事件之间插入固定的时间(毫秒)延迟,你可以使用这个设置来减缓Monkey的运行速度,如果你不指定这个参数,则事件之间将没有延迟,事件将以最快的速度生成。

一般这里设置为300毫秒,原因是实际上用户操作一个动作事件最快需要300毫秒左右,所以设置太小,也不符合正常用户的使用习惯,设置太大,又会发现不了问题。

用法: adb shell “monkey –throttle 300”

3、–pct-touch <percent>

**
**

作用:调整monkey命令触摸事件的百分比。(触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按下并抬起的操作),参数设置要根据被测应用程序的特点来修改设置。

用法:adb shell “monkey --pct-touch 100”

4、–pct-motion <percent>

**
**

作用:调整motion事件百分比。(motion事件是由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up事件组成),需注意的是滑动事件是直线滑动,不适用曲线滑动。

用法:adb shell “monkey --pct-motion 100”

5、–pct-trackball <percent>

作用:调整滚动球事件百分比。(滚动球事件由一个或多个随机的移动事件组成,有时会伴随着点击事件)

这个参数现在不常使用,早期的android手机出厂自带滚动球,估计有些小伙伴们见过,但现在手机几乎没有滚动球,至少我没有见过,但滚动球事件中包含曲线滑动事件,如果被测应用需要曲线滑动时可以选用此参数。

用法:adb shell “monkey --pct-trackball 100”

6、–pct-nav <percent>

作用:调整基本的导航事件百分比。(导航事件由方向输入设备的上下左右按键所触发的事件组成),这个参数不常用。

用法:adb shell “monkey --pct-nav 100”

7、–pct-majornav <percent>

作用:调整主要导航事件的百分比。(这些导航事件通常会导致UI界面中的动作事件,如5-way键盘的中间键,回退按键、菜单按键),这个参数不常用。

用法:adb shell “monkey --pct-majornav 100”

8、–pct-syskeys <percent>

作用:调整系统事件百分比。(这些按键通常由系统保留使用,如Home、Back、Start Call、End Call、音量调节),这个参数的百分比通常比较小。

用法:adb shell “monkey --pct-syskeys 3”

9、–pct-appswitch <percent>

作用:调整Activity启动的百分比。(在随机的时间间隔中,Monkey将执行一个startActivity()调用,作为最大程度覆盖被测包中全部Activity的一种方法)

用法:adb shell “monkey --pct-appswitch 100”

10、–pct-anyevent

作用:调整其他事件的百分比。(这包含所有其他事件,如按键、其他在设备上不常用的按钮等),这个参数不常用。

用法:adb shell “monkey --pct-anyevent 100”

11、-p <allowed-package-name>

作用:如果你想指定一个或多个应用,Monkey将只启动这些包中的Activity。如果不指定任何包,Monkey将启动系统所有包的Activity。指定多个包,使用多个-p,一个-p后面接一个包名。

用法:adb shell “monkey -p com.Android.browser”

12、–ignore-crashes

作用:应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

用法:adb shell “monkey --ignore-crashes”

13、–ignore-timeouts

作用:应用程序发生任何超时错误(例如:ANR)时,Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

用法:adb shell “monkey --ignore-crashes”

14、–ignore-security-exception

**
**

作用:当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

用法:adb shell “monkey --ignore-security-exception”

15、–kill-process-after-error

作用:当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。设置此项,将会通知系统停止发生错误的进程。注意,正常(成功)的结束,并没有停止启动的进程,设备只是在结束事件之后简单的保持在最后的状态。

用法:adb shell “monkey --kill-process-after-error”

16、-v

作用:命令行上的每一个-v都将增加反馈信息的详细级别。(最多使用3个-v)

Level 0(默认),除了启动、测试完成和最终结果外只提供较少的信息。
Level 1,提供了较为详细的测试信息,如逐个发送到Activity的事件信息。
Level 2,提供了更多的设置信息,如测试中选中或未选中的Activity信息。

用法:adb shell “monkey -v -v -v”

17、-s<seed>

作用:伪随机数生成器的seed值。如果用相同的seed值再次运行monkey,将生成相同的事件序列。

用法:adb shell “monkey -s 300”

最近测试的项目属于短视频类的,这样结合这些monkey参数和被测应用的特点(滑动和点击操作比较多)。组合的monkey的命令如下:

adb shell “monkey -p com.xxx.video -v -v -v -s 100 --throttle 300 --pct-touch 35 --pct-motion 41 --pct-syskeys 2 --pct-appswitch 20 --pct-anyevent 2 --ignore-security-exceptions --ignore-crashes --ignore-timeouts 1000000 1 >/sdcard/xxxlog.txt 2> /sdcard/xxxlog_error.txt& logcat -v time -d >sdcard/xxx_logcat.txt”

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

这篇关于软件测试|Monkey基本参数介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/378697

相关文章

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题