开发语言:Java
应用平台:Android

框架:

  1. 为什么选择 jenkins jenkins 的优点太多,这里就不一一列举,我的性能测试只是把我的工具集成到 jenkins,定时去起,定时发报告的功能
  2. 为什么选择 monkeyrunner Android 平台选择 monkeyrunner 可能是大家第一会想到的,可惜的是 monkeyrunner 是那么的不给力,但是勉强可以用用,monkeyrunner 主要坑爹的地方是抓取控件不准,目前这个问题还是没法解决,最终决定以后找个好的替代,为什么没选择 appium,首先 appium 的定位也不是很稳定,比 monkeyrunner 好点,但是不适合再封装,其实可以集成到 jenkins,性能测试只作为一个 appium 的测试用例也可,这种方式后续研究。
  3. 为什么选择 jfreechart Android 的图片绘制就是用的是 jfreechart,大家可以在 SDK tools 里面可以看到 jfreechart 的 jar 包,可以直接引用,对于 java 的开源图片绘制库目前就只知道这个。

实现:
性能测试主要是模拟用户操作记录性能测试数据,OK,那我需要做的无非就是 3 个事情:

  1. 模拟用户操作 当然你可以手动去点击,那网易的开源工具 Emmagee 和腾讯的 GT,都可以作为手动性能测试的选择,我觉得是开发的一个很好选择,那要自动化就让他随机取操作,随机点击很简单,根据屏幕分辨率设置随机坐标去点击,随机滑动同样的道理。
  2. 记录性能测试数据 记录前需要获取,之前有篇很好的性能测试帖子:http://testerhome.com/topics/470 很感谢 kasi 这位大侠,主要是通过 adb shll dumpsys 这个命令去获取,后面跟的参数我就不一一多讲,这里推荐一篇博客:http://blog.csdn.net/nei504293736/article/details/9249863。 还要做的是就是你间隔多长时间去获取一次,这可以通过配置文件去配置,把命令输出的需要抓取的数据拿出,存放到一个 csv 文件,为什么选择 csv,因为它可以直接用 excel 打开,用 excel 可以直接手动去绘制一个折线图,方法可以看这里:http://jingyan.baidu.com/article/3ea51489107a8852e61bba97.html 需要抓取的数据:CPU 占用,内存占用,功耗,流量。当然要取什么数据根据自己的测试需求去定,这里只是给出一个基础。 最后把获取的数据存储在一个 arraylist 里面。
  3. 生成测试报告 测试报告是在 jenkins 做的事情,代码里面主要是绘制折线图(绘制什么图可自己根据自己需求去做,jfreechart 支持大部分的图的绘制),绘图无非就是把拿到的数据传给 jfreechart,然后配置 jenkins,获取图片后生成报告自动发送到你的邮箱里面

TODOs
目前只实现了基本功能,需要做的还有很多,我把封装的业务去除后会把代码放到 github 上,希望有兴趣 android app 性能自动化测试的同学可以参与进来,咱们交流下,一起进步,或者有大神带着我进步也可,需要解决的问题会在 md 文件的 TODOs 里面写明,还需要做的事情很多,希望坛子里面大神多多指教,汇聚开源的力量,寻找 android app 性能自动化测试的解决方案。

BTW,马刺打的真好!


↙↙↙阅读原文可查看相关链接,并与作者交流