Android游戏自动化性能测试 - 王者荣耀测试实例

《王者荣耀》做为全民手游占领绝大多数用户的手机,之前看到一个非官方数据王者荣耀的用户达到3亿,因此各个手机厂家纷纷把王者荣耀的性能适配提高一个非常高的高度,几乎每个手机厂商发布新品必提《王者荣耀》性能优化,都是说自己适配的最好,性能表现最佳, 目前厂商一般都会开发自己的游戏性能是工具,评测结构和媒体没有能力开发的会用Gamebench,Gamebench是一套完整的性能评测和分析工具,但是不能定制化测试需求,可以通过写类似Gamebench这样的APK+Web展示的形式,也可以用自动化的测试方案:

首先,我们在测试王者荣耀性能时的测试点:帧率(平均帧率、最低帧率、连续低帧率)、CPU 使用、CPU占用、Memory占用、功耗和发热,另外还有2个非常重要的维度是触屏跟手性、触屏防误触和网络延时,这2个维度也非常重要,但本文就不详细介绍了。

1. 帧率(平均帧率、最低帧率、连续低帧率)

  • 平均帧率:可以正宏观角度衡量游戏流畅度
  • 最低帧率:识别偶发卡顿的方法之一
  • 连续低帧次数:一般连续丢6帧的次数,丢6帧(16.7ms一帧  * 6 帧 = 100ms )约100ms 用户会感觉到卡顿,下面是一款骁龙710平台的坚果Pro2s 的者荣耀帧率图示:   

    结果分析:平均帧率:59.64,最低帧率:56,连续低帧率次数:0

    如何获取游戏当前帧率?有2个方法,笨方法通过录屏把王者荣耀显示的帧率每秒记录下来,这个比较耗时耗力,

另外一个方法是通过adb shell dumpsys SurfaceFlinger --latency 的获取帧率,样例:    Android游戏自动化性能测试 - 王者荣耀测试实例_第1张图片

    上面的FPS是处理过的数据,处理方法详见:shell 脚本通过 dumpsys SurfaceFlinger --latency 数据计算 FPS 和评价流畅度https://testerhome.com/topics/4775

2. CPU使用

    游戏时手机很容易发热,CPU是主要的发热源,因此在获得最佳流畅性的同时要减少和合理的使用CPU,便可以更好的控制功耗和发热,测试CPU使用时主要关注:

  • 实时的CPU Freq:adb shell "cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq”
  • 实时的CPU Usage: adb shell dumpys cpuinfo 得到实时的CPU使用率,就可以分解出Average CPU Usage 和 Peak CPU Usage
  • 拿到实时CPU Freq和CPU Usage就可以通过调节CPU Freq及CPU 数量等来平衡性能及功耗和发热了

3. 内存占用率

    分析内存使用情况对游戏测试来说主要防止内存泄露及一起多吃多占的情况,获取内存的方法有好几种,这里就说一种

    adb shell meminfo

    Android游戏自动化性能测试 - 王者荣耀测试实例_第2张图片

4. 功耗及发热

    功耗测试最准确的是用PowerMonitor等专业的电量仪表先测试低电流然后测试具体的游戏、应用的功耗,自动化的方案里面     可以考虑用电池电流的方法,cat /sys/class/power_supply/battery/current_now

    手机发热最大的CPU,根据不同手机的散热情况不同手机表面温度一般是CPU温度减去2-5度,获取CPU温度的方法:

1)通过/sys/class/thermal/thermal_zone/tpye 获取类型是“cpu-silver-usr” 表示小核 和 “cpu--gold-usr ”表示大核

2)获取对应的CPU温度/sys/class/thermal/thermal_zone/temp 

有点绕,不同平台手机可能不同,下面是坚果Por2s(骁龙710)的截图:

    Android游戏自动化性能测试 - 王者荣耀测试实例_第3张图片

5. 截图

截图是为了获取遇到 卡顿或者流畅度低的游戏场景以便更好的分析,adb shell screencap -p /sdcard/1.pnp

 

  

 

你可能感兴趣的:(性能)