手把手带你,用Python写一个Monkey自动化测试脚本!!!
一、手把手带为什么需要一个测试脚本?动化
之前讲解了 Android Monkey 命令的使用方式,今天趁着还热乎就手把手用 Monkey 写一个压力测试的测试脚本。还不了解什么是脚本 Monkey 的,可以看看之前的手把手带文章,《关于 Monkey ,动化你所需要知道的测试,都在这里!!脚本!手把手带》。动化
Monkey说到底其实就是测试一段命令,只能在有限的脚本范围内做一些随机事件的压力测试。可以很明显看到它的手把手带一些缺点:
前期准备工作太多,需要把设备准备好、动化安装好待测Apk。测试 无法做到无干预的循环。类似没人看着去测试一夜的情况。 对一些在测试情况下,各项状态的监控并不好。那么,这些问题,云南idc服务商其实都可以使用一个脚本来解决问题。
Monkey 命令其实就是在命令行中执行的命令,所以脚本语言基本上都可以完成这个任务,这里选择主流的 Python 来完成。
二、如何设计压测脚本
既然是一个完整的脚本,那么当然需要满足一些最基本的需求。
包括:
可以自动安装待测试 apk。 可以循环执行脚本,并且每次都退出 App 重新执行。 在执行完成之后,可以输出测试报告。 变动的参数,可以让测试人员自行配置。一个简单的测试脚本,包括这些基本上就足够了。
三、动手写脚本
编写完成之后,Python 的项目结构大概是这样子的。

项目的结构大概如下:
apk 目录:用于存放待测试的 Apk。高防服务器 bugreport_out 目录:用于存放测试完成输出的报告。 .config:压力测试的配置信息文件。 chkbugreport.jar:输出测试报告的工具。 runmonkey.py:真正需要执行的 Python 脚本。 start.bat:为测试准备一个点击就可以执行的 bat 脚本。了解了项目的结构之后,就可以开始编写 Python 脚本了。
1、编写配置文件和读取配置文件
首先看看 .config 配置文件。

在配置文件里,主要配置待测试的设备 ID、循环执行次数,和每次循环的时候点击的次数。
这样设计,基本上可以通过 execcount 和 monkeyclickcount 两个参数,配置所需要执行多久的一个压测方案。
接下来就需要一个方法去读配置文件。

2、安装待测试apk
一般测试都是会测试同一个apk产品,所以这里写死apk的文件名。直接通过os.popen()这个 Python 的亿华云计算方法执行 adb 脚本。

3、杀掉待测app
为了让每次循环都是新的一个测试任务,保持测试环境的赶紧,需要一个方法在每次循环之前,杀掉之前正在运行的待测 App。

4、生成测试报告
生成测试报告主要依赖 chkbugreport.jar 这个工具,它会根据 bugreport 获得的文件内容,生成测试报告。
bugrepor t的用法:
adb shell bugreport > .\bugreport.txt而 chkbugreport.jar 是一个 java 编写的工具,直接通过java -jar 执行即可
完整的代码如下:

5、开始执行Monkey脚本
做完准备工作,就需要一个方法来执行我们配置好的 Monkey 脚本。

各项参数的配置,不明白的看看昨天的文章吧。
6、开始调用准备好的方法
准备工作已经完成,接下来将这些准备好的方法,组合起来,用一个 for 循环完成脚本的执行。

四、为测试人员准备一个bat
做完这些,基本上就算是把主要功能完成了。执行下面的命令,就可以跑起来了。
python runmonkey.py但是终归这个脚本是要给测试用的,***还是提供一个点击可用的bat脚本。
新建一个 start.bat 文件,把上面的命令保存进去就行。
下面看看执行起来的样子。

这里配置了循环三次,所以最终从 Log 中可以看到,确实执行三次之后,生成测试报告,并且退出测试。
五、生成的测试报告
chkbugreport.jar 可以通过生成的 bugreport 的内容,生成我们需要的测试报告。
从上面的截图可以看到,其实它会是一个网页,输出的内容非常的齐全。

六、多说两句
其实这个 Monkey 的压力测试脚本,已经满足测试的基本要求。但是实际上,生成的测试报告,不太好查看。通常封装成成熟的产品的App,都会集成第三方Bug监控的服务,例如:Bugly、友盟什么的。所以可以不依赖 bugreport 生成的测试报告,直接在打测试包的时候,生成一个测试渠道的 apk ,用它来测试,这样在第三方服务提供的网站上,可以清晰看到测试的报告。
七、完整的Demo
完整的 Demo 请关注 承香墨影 的公众号,回复关键词:“monkey脚本”获得。

【本文为专栏作者“张旸”的原创稿件,转载请通过微信公众号联系作者获取授权】
戳这里,看该作者更多好文
相关文章
- 摘要:当我们使用电脑的过程中,可能会遇到电脑提示发生内存错误的情况。内存错误是指在计算机运行时,因为软件或硬件问题导致内存出现异常,从而引发系统错误或程序崩溃等情况。本文将从不同角度为大...2025-11-04
 - 摘要:在现代社会中,电脑已经成为人们日常生活中必不可少的工具。而要让电脑运行良好,一个稳定可靠的主板是必不可少的。对于大部分人来说,电脑装主板可能会是一项较为复杂的任务,但只要按照正确的...2025-11-04
 AMD四核处理器的性能与优势(一起来探索AMD四核处理器的卓越表现及其关键特性)
摘要:如今,电脑已经成为我们生活中不可或缺的一部分。在不同的应用场景中,高性能的处理器扮演着至关重要的角色。作为市场上备受瞩目的处理器厂商之一,AMD的四核处理器以其出色的性能和出色的价...2025-11-04- 摘要:随着科技的不断发展,显示器已经成为我们日常生活中不可或缺的一部分。在众多显示器中,HYE2201H凭借其卓越的性能和出色的特点引起了广大消费者的关注。本文将详细介绍HYE2201H...2025-11-04
 电脑关机提示端口错误的原因及解决方法(探究电脑关机时显示端口错误的常见原因和解决办法)
摘要:在使用电脑的过程中,有时候我们会遇到关机时出现端口错误的提示。这种情况让很多用户感到困惑,不知道该如何解决。本文将从常见原因和解决方法两个方面,为大家详细介绍电脑关机提示端口错误的...2025-11-04打击反欺诈,共建公平社会(解读反欺诈机制与手段,构筑法治防线)
摘要:欺诈行为在现代社会中屡见不鲜,给个人和社会带来了巨大的损失。为了维护公平正义和保护消费者的合法权益,反欺诈成为了一项至关重要的任务。本文旨在探讨反欺诈的重要性,分析反欺诈机制与手段...2025-11-04

最新评论