八戒你干嘛 发表于 2017-6-30 11:21:12

Android monkey in Jenkins

前言

都说 monkey 是压力测试工具。但实际使用中我们好像只关心 monkey 是否跑出了 ANR, CRASH, 压力测试过程中的性能数据似乎没有那么重要。性能指标更多的是需要分析出来,而不是跑一次 monkey 可以得出的。

如何每次跑 monkey 的时候把性能指标也统计出来并方便每个人查看呢?

这里仅提供一个性能统计的思路 —— 执行 monkey 的时候统计性能指标 (cpu, mem, mem heap),并用 jenkins 展示出来。

启动 monkey 命令
执行统计
将统计结果写入HTML,用 jenkins html publisher plugin 展示结果
鉴于性能统计的方法testerhome上有很多,以下仅为 Jenkins 创建任务说明。

Jenkin JOB

** 构建一个自由风格的软件项目。**

在源码管理中配置 git 拉取源码
https://myersguo.github.io/public/images/jenkins_monkey_job.png
在构建中添加shell/bat(参数即 monkey 的执行参数,更改为你自己的参数即可):
cd adb
python tools/monkey.py-p com.example.android.testing.uiautomator.BasicSample --pct-syskeys 0 --pct-motion 0 --throttle 300 --bugreport 1000https://myersguo.github.io/public/images/jenkins_monkey_shell.png
构建后,public html report:
https://myersguo.github.io/public/images/jenkins_monkey_html.png
执行构建后,查看html report:

构建之后,jenkin html report这个插件会把指定的archive的所有html(这里是workspace/$jobname/adb/output)复制到jobs/$jobname/htmlreports文件夹下。
https://myersguo.github.io/public/images/jenkins_monkey_result.png
备注:如果构建中遇到了报错:
Blocked script execution in 'index.html' because the document's frame is sandboxed and the 'allow-scripts' permission is not set.需要把jenkins的安全限制放开(jenkins 启动文件config.xml中配置-Dhudson.model.DirectoryBrowserSupport.CSP=)

这样,结合 jenkins ,每日 monkey 跑性能的同时,也可以展示性能指标的趋势。

巴黎的灯光下 发表于 2017-6-30 16:41:31

若想监控monkey的性能数据,也可在app安装一个GT的监测工具,监测结束后,会以邮件excel的形式发送性能统计数据,如cpu,内存,电量,流量,温度等

悠悠小仙仙 发表于 2017-6-30 16:41:55

前段时间层主也试过通过monkey收集性能数据尝试,但最终发现还是不可行,最大的问题是行为不可控,导致数据无法与线上数据对标,这种情况,有办法解决?目前想到的就是通过自动化模拟线上用户操作习惯
页: [1]
查看完整版本: Android monkey in Jenkins