Automatisation Appium+python (19) - Paramètres de singe (singe) (explication super détaillée)

 Les articles précédents présentaient Monkey et les événements de Monkey, aujourd'hui, je vais présenter et partager les paramètres de Monkey avec mes amis.

  Tout d'abord, regardons cette image pour avoir une idée générale :

1. Introduction aux paramètres de base de la commande Monkey

-p <liste des noms de packages autorisés>         

Utilisez ce paramètre pour spécifier un ou plusieurs packages. Après avoir spécifié le package, monkey n'autorisera le système qu'à démarrer l'application spécifiée. Si aucun package n'est spécifié, monkey autorisera le système à lancer toutes les applications sur l'appareil.  

Spécifiez un package :

1

adb shell monkey -p com.shjt.map 100

Spécifiez plusieurs packages :

1

adb shell monkey -p fishjoy.control.menu  –p com.shjt.map  100

-v        

Il permet de préciser le niveau d'information de retour (le niveau d'information est le niveau détaillé du journal), qui se décompose en 3 niveaux au total, et les paramètres correspondants sont présentés dans le tableau suivant : 

1

2

3

4

5

Level 0  :  adb shell monkey -p com.shjt.map -v 100               // 缺省值,仅提供启动提示、测试完成和最终结果等少量信息  

Level 1  :  adb shell monkey -p com.shjt.map -v  -v 100          // 提供较为详细的日志,包括每个发送到Activity的事件信息

Level 2  :  adb shell monkey -p com.shjt.map -v  -v  -v 100     // 最详细的日志,包括了测试中选中/未选中的Activity信息


-s (graine de nombre aléatoire)            

Il est utilisé pour spécifier la valeur de graine du générateur de nombres pseudo-aléatoires. Si la graine est la même, la séquence d'événements générés par les deux tests Monkey est également la même. Exemple:

test de singe 1 :

1

adb shell monkey -p com.shjt.map –s 10 100

test de singe 2 :

1

adb shell monkey -p com.shjt.map –s 10 100


--throttle <millisecondes>            

Il est utilisé pour spécifier le délai entre les opérations de l'utilisateur (événements), en millisecondes ; si ce paramètre n'est pas spécifié, monkey générera et enverra des messages aussi rapidement que possible.

Exemple:

1

adb shell monkey -p com.shjt.map --throttle 3000 100

2. paramètres de singe

2.1 Classement des paramètres

  • Paramètres généraux de classe
  • Paramètres de classe d'événement
  • Paramètres de classe de contrainte
  • Paramètres de classe de débogage

2.2 Paramètres généraux de classe

Les paramètres de classe généraux incluent les paramètres d'aide et les paramètres d'informations de journal. Le paramètre d'aide est utilisé pour générer des instructions pour l'utilisation de la commande Monkey ; le paramètre d'informations de journal divise le journal en trois niveaux, et plus le niveau est élevé, plus les informations de journal sont détaillées.

1. Paramètres de classe d'aide

1

monkey -h

2. Niveau de journalisation

1

$ adb shell monkey -v <event-count>

-v : affiche les informations du journal, chaque -v augmentera le niveau des informations de retour. Plus il y a de -v, plus les informations de journal sont détaillées, mais prend actuellement en charge jusqu'à 3 -v, à savoir :

 

2.3 Paramètres de classe d'événement

La fonction du paramètre d'événement est de réguler l'événement aléatoire afin qu'il fonctionne en fonction du réglage, tel que la définition du pourcentage de divers événements, la définition de la valeur de départ utilisée pour la génération d'événements, etc. Le paramètre de fréquence limite principalement l'intervalle de temps d'exécution de l'événement.

1. Exécuter le script spécifié

1

2

3

4

5

$ adb shell monkey -f <scriptfile> <event-count>

eg:

$ adb shell monkey -f /mnt/sdcard/test1

2. Valeur de départ de génération de nombres pseudo-aléatoires

Utilisez la commande -s pour répéter l'opération pseudo-aléatoire précédente. Chaque fois qu'une opération d'événement pseudo-aléatoire est effectuée, une valeur de départ sera générée par défaut

1

2

3

4

5

$ adb shell monkey -s <seed> <event-count>

eg:

$ adb shell monkey -s 666 100

3. Définir l'intervalle

Si vous souhaitez ajouter un intervalle fixe entre chaque commande, vous pouvez utiliser la commande --throttle (notez que le devant est --).

1

2

3

4

5

$ adb shell monkey --throttle <milliseconds>

eg:

$ adb shell monkey --throttle 3000  5

--throttle:后面接时间,单位为ms(<milliseconds>),表示事件之间的固定延迟(即执行每一个指令间隔的时间),若不接该选项,monkey将不会延迟。

4.调整触摸事件百分比

如果你希望调整触摸事件的百分比,记住使用--pct-touch。

1

2

3

4

5

$ adb shell monkey --pct-touch

eg:

$ adb shell monkey -v -v --pct-touch 100 200

<percent>--pct-touch:后面接触摸事件百分比

注意:触摸事件不单单是按键,它泛指发生在某一位置的一个down-up事件。

5.调整手势事件百分比

1

2

3

4

5

$ adb shell monkey --pct-motion

eg:

$ adb shell monkey -v -v --pct-motion 100 200

6.调整应用启动事件的百分比

如果你希望调整应用启动事件的百分比,记住使用--pct-app-switch。

1

$ adb shell monkey --pct-appswtich <percent>

--pct-appswitch:后面接应用启动事件百分比。

应用启动事件(即activity launches)俗称打开应用,通过调用startActivity()方法最大限度地开启该package下的所有应用。

7.调整屏幕旋转事件百分比

1

$ adb shell monkey --pct-rotation <percent>

--pct-rotation 后面接屏幕旋转事件的比例值。

8.其他参数

2.4约束类参数

1.包约束

-p:后面接一个或多个包名(<allowed-package-name>),如果应用需要访问其他包里的Activity,那相关的包也需要在此同时指定。如果不指定任何包,monkey将允许系统启动全部包里的Activity。

1

2

3

4

5

6

7

$ adb shell monkey -p <allowed-package-name> <event-count>

eg:

$ adb shell monkey -p com.tal.kaoyan 500

$ adb shell monkey -p com.tal.kaoyan -p com.tencent.mm 500

2.activity类约束

如果你希望将monkey限制在一个或几个类别中,使用如下命令:

1

adb shell monkey -c <main-category> <event-count>

以下命令表示运行Intent.CATEGORY_LAUNCHER类别的Activity并发送1000个随机事件。

1

$ adb shell monkey -c Intent.CATEGORY_LAUNCHER  1000

 

2.5调试类参数

1.应用程序崩溃后继续发送事件

如果你希望monkey在应用程序崩溃后继续发送事件,则需要用到--ignore-crashes命令

1

$ adb shell monkey --ignore-crashes <event-count>

在设置此选项后,当应用程序崩溃或发生失控异常时,monkey将继续运行直到计数完成。如果不设置此选项,monkey遇到上述崩溃或异常将停止运行。

2.超时错误继续发送事件

如果你希望monkey在任何超时错误发生后继续发送事件,则需要用到--ignore-timeouts命令。

1

$ adb shell monkey --ignore-timeouts

<event-count>--ignore-timeouts:在设置此选项后,当应用程序发生任何超时错误(如ANR,即Application Not Responding)时,monkey将继续运行直到计数完成。如果不设置此选项,monkey遇到此类超时对话框将停止运行。

3.应用程序权限错误发生后继续发送事件

如果你希望monkey在应用程序权限错误发生后继续发送事件,则需要用到--ignore-security-exceptions命令。

1

$ adb shell monkey --ignore-security-exceptions

<event-count>--ignore-security-exceptions:在设置此选项后,当应用程序发生任何权限错误(如启动一个需要某些权限的Activity)时,monkey将继续运行直到计数完成。如果不设置此选项,monkey遇到此类权限错误将停止运行。

4.其他

3、Monkey参数应用综合案例

3.1测试场景

测试考研帮app Android版。测试希望通过Monkey来模拟用户的随机操作,检查被测应用是否会出现异常(应用崩溃或者无响应)。

3.2需求分析

1、测试是指定应用,因此需要使用-p指定被测app包名:com.tal.kaoyan

2、这个测试的目的是希望模拟用户操作,因此需要让Monkey执行的事件尽可能地接近用户的常规操作,这样才可以最大限度地发现用户使用过程中可能出现的问题。因此需要对Monkey执行的事件百分比做一些调整:

触摸事件和手势事件是用户最常见的操作,所以通过--pct-touch和--pct-motion将这两个事件的占比调整到40%与25%;目标应用包含了多个Activity,为了能覆盖大部分的Activity,所以通过--pct-appswitch将Activity切换的事件占比调整到10%;被测应用在测试中出现过不少横竖屏之间切换的问题,这个场景也必须关注,因此通过--pct-rotation把横竖屏切换事件调整到10%。

3、使用-s参数来指定命令执行的seed值 Monkey会根据seed值来生成对应事件流,同一个seed生成的事件流是完全相同的。这里指定了seed值,是为了测试发现问题时,便于进行问题复现。

4、使用--throttle参数来控制Monkey每个操作之间的时间间隔 指定操作之间的时间间隔,一方面是希望能更接近用户的操作场景,正常用户操作都会有一定的时间间隔;另一方面也是不希望因为过于频繁的操作而导致系统崩溃,尤其是在比较低端的手机上执行测试时。因此通过--throttle设置Monkey每个操作固定延迟0.4秒。

5、使用--ignore-crashs和--ignore-timeouts参数使Monkey遇到意外时能继续执行 在执行Monkey测试时,会因为应用的崩溃或没有响应而意外终止,所以需要在命令中增加限制参数--ignore-crash和--ignore-timeouts,让Monkey在遇到崩溃或没有响应的时候,能在日志中记录相关信息,并继续执行后续的测试。

6、使用-v指定log的详细级别 Monkey的日志输出有3个级别:日志的级别越高,其详细程度也越高。为了方便问题的定位,这里将日志设为 -v -v.

3.3测试命令

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

adb shell monkey -p com.tal.kaoyan

--pct-touch 40 --pct-motion 25

--pct-appswitch 10

--pct-rotation 5

-s 1666 --throttle 400

--ignore-crashes

--ignore-timeouts

-v -v  200

4、小结

  好了,Monkey参数暂且到这里,告一段落,下一篇计划介绍分享Monkey的日志管理,各位小伙伴敬请期待哈!!!


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战


四、App自动化项目实战

五、一线大厂简历


六、测试开发DevOps体系

七、常用自动化测试工具


八、JMeter性能测试

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

Je suppose que tu aimes

Origine blog.csdn.net/NHB456789/article/details/131867281
conseillé
Classement