monkey:+python 压测脚本(二)

待解决问题:    monkey---自动化:error: device 'None' not found,先用bat脚本代替

一、为什么需要一个测试脚本?

Monkey说到底其实就是一段命令,只能在有限的范围内做一些随机事件的压力测试。可以很明显看到它的一些缺点:

前期准备工作太多,需要把设备准备好、安装好待测Apk。

无法做到无干预的循环。类似没人看着去测试一夜的情况。

对一些在测试情况下,各项状态的监控并不好。

那么,这些问题,其实都可以使用一个脚本来解决问题。

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获得的文件内容,生成测试报告。

bugreport的用法:

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

 点击查看源码源码下载 (https://download.csdn.net/download/plokmju88/9804931?web=web)

导入后显示乱码,修改该工程编码格式:指定的项目文件上右键 -> 选择 Properties -> Resource -> Text file encoding,选择这个文件需要的编码格式,单击 OK,之后,项目其他文件依然保持原有格式,如下图:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,870评论 25 707
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,704评论 2 59
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,074评论 1 19
  • monkey 介绍 Monkey是Google提供的一个用于稳定性与压力测试的命令行工具。可以运行在模拟器或者实际...
    望月成三人阅读 14,536评论 2 12
  • 我愿意用文字表达自己。 我始终相信文字的力量。 此生短暂也漫长、薄情也浩荡,我真希望我们的柴米油盐酱醋茶会因为另一...
    美添阅读 220评论 0 0