作者:高苡新
团队:腾讯移动品质中心TMQ
背景
Canvas/webgl测试的是浏览器内核的渲染能力。通常会选取一些业界常用的测试页面作为测试用例,例如:
图1webgl测试页面截图
Canvas/webgl测试从列入TBS(腾讯浏览服务)上线前性能测试以来,就一直存在测试数据不稳定问题。初期采用购置小风扇、增加冷却时间、编写重测页面等方法解决问题,效果并不理想。时不时还是会出现测试结果发现性能落后,但开发跟进分析后发现是测试数据波动导致的误报的情况。这种情况对测试和开发同学的工作效率都造成影响。
问题定位
TBS(腾讯浏览服务英文缩写)3.3的上线前性能测试再次测得webgl落后。webglspacerocks用例落后上一版本(TBS3.2)2.59帧。但经过开发定位问题,发现依然是数据波动导致的误报。
图2webgl性能测试结果
这次,开发同学和测试同学决定刨根问底找到影响数据波动的根本原因。
通过perfMon性能监控工具,我们发现发热导致的cpu降频和cpu关闭是影响测试结果的主要原因。
图3开发定位问题邮件内容
解决办法
为此,测试组专门购置了性能优越的笔记本散热风扇来给测试手机降温。
图4笔记本散热风扇
初步验证发现效果良好(下面一段文字为邮件内容节选):
“本周blink3.0 canvas/webgl性能日常监控结果:
数据基本稳定。在增加了散热器与小风扇辅助散热之后,三部手机的测试结果均接近3、4月份结果且多多少少有所提升,无重测项。”
优化效果
日常监控历史记录可以看到优化前后的效果:
1、6个用例的波动范围都不同程度缩小。其中GUIMark3 GM3_JS_Compute的波动从9帧缩小为0.2帧。
图5优化前后数据波动范围对比
2、之前经常要重测的用例,如今不再需要重测。目前重测概率为0。
图6优化前后重测记录
注:当监控数据和上一次相差2帧或以上时需要重测。
规范“有效落后”门限值
注:达到该门限值才认为是有效落后,开发跟进分析。
6个用例当中,GUIMark3 GM3_JS_Compute的波动最大。所以我们对GUIMark3 GM3_JS_Compute进行了4次测试(每次10组测试值)验证数据波动范围:
图7优化后数据波动情况
图8优化后数据波动情况
结论:
1、单次测试10组数据的最大最小值偏差月1帧;
2、多次测试10组数据的平均值波动在0.5帧左右;
3、多次测试所有数据的最大最小值偏差1.95帧。
基于以上测试结果,制定不同用例的“有效落后”门限值如下:
图9根据数据波动验证结果制定“有效落后”门限值
搜索微信公众号:腾讯移动品质中心TMQ,获取更多测试干货!