PerfDog 助力自动化性能测试探索
时间: 2020-08-21来源:V2EX
前景提要
背景: 游戏项目采用敏捷开发,版本开发迭代很快,基本 1-2 周一个版本
性能测试必要性 性能问题在整个项目的阶段数量 https://imgchr.com/i/aHgRzT 性能问题不是一开始就有的,也不是某一天突然出现的,而是随着我们的开发进度不断累积产生的; 到后来我们希望用几天的时间去解决几个月甚至几年的问题,而实际上结果往往不会尽如人意。而且相同的问题,相同的人,在不同的时间去处理所花费的经历与时间完全不同。 所以说性能问题看上去是研发团队的技术问题,但本质上其实是研发团队的开发流程问题
如果我们可以规范流程,做到每一个版本皆有一份数据展示,一旦发现问题,及时处理,那么可以大大减少以后的优化时间;而人力每个版本做性能又比较鸡肋,所以完全可以采用自动化的方式处理,那么自动化的操作究竟会不会对我们得到的性能数据产生影响,下面我们来探索下;
自动化对应用性能数据的影响 第一组测试对比 测试背景: 1.打开 Perfdog,记录手动跑功能和自动化跑功能的性能数据 2.本次所使用自动化功能为 Airtest
测试用例: 1.未开启 Airtest IDE 连接,手动跑功能 2.开启 Airtest IDE 连接,手动跑功能 3.开启 Airtest IDE 连接,使用自动化脚本跑功能 4.断开 Airtest IDE 连接 5.关闭 Airtest IDE 进程
自动化脚本: 只会运行一个战斗小功能,很短的时间 https://imgchr.com/i/aHgHF1 下面测试用例的断开连接是指: https://imgchr.com/i/aH2E6S
先来看看 FPS
https://imgchr.com/i/aH2ifP 很明显我们发现是否采用自动化的方式跑游戏功能对比 FPS 的影响几乎没有
再来看看内存
https://imgchr.com/i/aH2kSf 发现自动化对内存也没有影响,开不开自动化对于内存几乎都一样
再来看看 CPU https://imgchr.com/i/aH2Al8 我们发现在开启 airtest 的 IDE 连接时,Total cpu 的使用率显著上升,在跑自动化脚本时 Total cpu 的使用率也在上升。而 app 的 cpu 使用率几乎是没有影响的。 这是因为在开启 airtest ide 的连接时,ide 要使用 minicap 服务获取手机的屏幕截图,所以会对 cpu 的整体使用率有影响,而在运行脚本时 airtest 要进行图像搜索匹配,所以也要占用 cpu 。但是对于 app 的使用率则不会有影响。
第二组测试对比 本次测试不适用自动化脚本,单独对比 ide 的影响
测试用例: 1.静止页面不连接 airtest ide 2.静止页面连接 airtest ide 3.静止页面断开 airtest ide 连接不退出 ide 4.静止页面断开 airtest ide 连接退出 ide
FPS 数据 https://imgchr.com/i/aH2Qf0 是否开启 IDE 对应用的 fps 丝毫不影响
内存 https://imgchr.com/i/aH23lT 内存也没什么影响
CPU 使用率 https://imgchr.com/i/aH286U
和第一组的结论一样,也是开启 ide 会对 total cpu 使用率造成影响,需要注意的是断开 IDE 与手机的连接后性能消耗还在,因为 mincap 服务实际没有被中断,要退出关闭 IDE cpu 才会恢复正常。
第三组数据 所选则是手机 APP,非游戏
FPS https://imgchr.com/i/aH2GXF 内存 https://imgchr.com/i/aH2Ym4 CPU https://imgchr.com/i/aH2t0J 我们发现结论和上面相同
推荐使用规范化 CPU 利用率 为什么推荐这个值作为 CPU 使用率的衡量标准呢,因为发现还是规范化比较适合自动化,更为准确一些,关于规范化利用率的文档: 规范化利用率介绍 https://imgchr.com/i/aH2N79 https://imgchr.com/i/aH2nTs
结论 完全可以使用自动化的方式获取应用的性能数据啦,这是因为我们所获取的数据都是针对单个应用,所以自动化的操作不会算法该应用之内,不过接入自动化 sdk 的就要另外考虑了,SDK 所消耗的资源会被算在应用头上。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行