使用 Monkey+python 做一个简单的自动化测试

使用 Monkey+python 做一个简单的自动化测试monkey 测试是 Android 平台自动化测试的一种手段,通过 monkey 程序模拟用户触摸屏幕、滑动 Trackball、按键等操作来

欢迎大家来到IT世界,在知识的湖畔探索吧!

monkey 是什么

monkey 是一款通过命令行来对我们APP进行测试的工具,可以运行在模拟器里或真机上。它向系统发送伪随机的用户事件流,实现对正应用程序进行压力测试。

伪随机是个什么?是因为该随机事件可进行复现(定位可能出现的问题)。我们每次执行一组随机事件,系统都会给一个随机的ID,称之为seed。若我们想将该组随机事件再次执行一遍,则使用-s+seed+count即可。

那么monkey的使用场景是哪些呢?

monkey 测试是 Android 平台自动化测试的一种手段,通过 monkey 程序模拟用户触摸屏幕、滑动 Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久会发生异常。(当然也可以做自动化测试)开发人员结合 monkey 打印的日志 和系统打印的日志,修改测试中出现的问题 。

那什么时候进行压力测试呢?等产品稳定,没有太多的bug 的时候,一般会用 monkey 去测试待测应用的稳定性,健壮性(是否会发生闪退,崩溃,无响应)和整机测试

1、确保电脑已安装adb直接下载adb 安装包,把相关文件放到 c:/windows/system32 目录和 c:/windows/system 目录下,完成安装

使用 Monkey+python 做一个简单的自动化测试

2、jdk环境已配好(没配好自己配吧,自己配不好请移驾https://www.baidu.com/s?ie=utf-8&wd=jdk%E7%8E%AF%E5%A2%83%E6%90%AD%E9%85%8D)

使用 Monkey+python 做一个简单的自动化测试

为什么要配置jdk

1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;

2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;这样就可以通过在CMD窗口中执行:adb shell monkey {+命令参数}来进行Monkey测试了。

3、(安装模拟器/真机)手机已经打开开发者模式以及USB调试状态

4、 把手机锁屏设置为从不

重要的命令参数都有什么

1)参数: -p

参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定包之后,monkey将只允许系统启动指定的APP。如果不指定包,monkey将允许系统启动设备中的所有APP。

指定一个包:

adb shell monkey -p com.kaiyuan.developmentbusiness 100

说明:com.kaiyuan.developmentbusiness 为包名,100是事件计数(即让monkey程序模拟 100 次随机用户事件)。

指定多个包:

adb shell monkey -p com.qywlandroid –p com.kaiyuan.developmentbusiness 100

不指定包:

adb shell monkey 100

说明:monkey 随机启动APP并发送100个随机事件。

2) 参数: -v 日志详细程度

用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

日志级别 Level0

adb shellmonkey -p com.kaiyuan.developmentbusiness –v 100

说明缺省值,仅提供启动提示,测试完成和最终结果等少量信息

日志级别 Level 1

adb shellmonkey -p com.kaiyuan.developmentbusiness –v -v 100 说明提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2

adb shellmonkey -p com.kaiyuan.developmentbusiness –v -v –v 100 说明最详细的日志,包括了测试中选中/未选中的Activity信息

3)参数:-s

用于指定伪随机数生成器的 seed 值,如果 seed 相同,则两次 monkey 测试所产生的事件序列也相同的。

monkey 测试1:adb shell monkey -p com.kaiyuan.developmentbusiness –s 10 100

monkey 测试2:adb shell monkey -p com.kaiyuan.developmentbusiness –s 10 100

两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;

4) 参数:–throttle <毫秒>

用于指定用户操作(即事件)间的时延,单位是毫秒;

adb shell monkey -p com.qywlandroid –throttle 3000 100

5) 参数: –ignore-crashes

用于指定当应用程序崩溃时(Force& Close错误),monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

adb shellmonkey -p com.qywlandroid –ignore-crashes 1000

测试过程中即使Weather程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止;

adb shellmonkey -p com.qywlandroid 1000

测试过程中,如果Weather程序崩溃,Monkey将会停止运行。

我这里用的pycharmIDE,写完之后直接建个 .bat放里面就好了,比如

使用 Monkey+python 做一个简单的自动化测试

请看我的目录

使用 Monkey+python 做一个简单的自动化测试

里面的bugreport_book文件是最后生成的,他从哪里来的呢?

这个时候就该讲一哈我们伟大的插件ChkBugReportChkBugRepor t是一个开源工具,它可以把你得到的bugreprot.t解析成适合阅读的 html 文件。导出的html文件包含了根据 bugreport.txt 数据得出的图表和分析结论。

使用 Monkey+python 做一个简单的自动化测试

1、如果这个线程死锁,在报告的Errors将会出现。

2、***.logs 这部分是对system、main和kernel日志的分析,在这里你可以看到每个进程内存使用图、那个程序产生的log最多、Activity的启动耗时、数据库操作耗时统计、对象被锁定- – 时间、AIDL调用时间、Activity和Service的生命周期及其在内存中使用频率等等

3、Processes 操作app过程中产生的系统事件日志、内存使用信息等等

4、Battery statistics 电池使用统计

5、CPU Frequency statistics CPU频率统计

6、Raw data 一些原始数据

https://github.com/Chan-pipi/Chan-pipi

首先添加.config文件,添加内容为

使用 Monkey+python 做一个简单的自动化测试

然后创建runmonkey.py文件,主要函数为

1. 引用.config,不然你写它干啥用

使用 Monkey+python 做一个简单的自动化测试

不支持该协议取消重新上传

2. 安装安装包

使用 Monkey+python 做一个简单的自动化测试

3.执行monkey命令

使用 Monkey+python 做一个简单的自动化测试

4. 创建bugreport.txt报告,并生成html文件

使用 Monkey+python 做一个简单的自动化测试

5. 完成

使用 Monkey+python 做一个简单的自动化测试

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/48336.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信