性能测试技巧--总结

需求:性能测试优化点是什么?

需求获取方式可能是文档,我们可以通过对文档内容进行理解,但是文档内容于实际已经开发是否一致需要与对应开发进行确认。确认目前已经完成的性能测试优化点需求。

  1. 通过与开发交流,了解优化的实现方法,前端的具体表现是什么。
  2. 通过与开发交流,了解优化覆盖范围,或者在哪些特定场景上容易触发该优化方案。
  3. 通过与开发交流,了解开发对性能指标变化的预期,如FPS,内存消耗,网络消耗等性能指标变化预期。
  4. 通过与开发交流,了解开发自测方法。一般开发的自测方案基本上集中了优化点变化,可基于此在后续的分析和用例设计上进行补充。

分析:如何才能将优化点通过工具将性能指标获取到?

分析在性能测试过程中很重要,决定了测试策略和具体步骤,是否能够获得有效性能指标的关键。在着手测试前,需要结合经验和对需求的理解,制定测试策略和测试步骤。

  1. 结合需求分析,固定测试场景和路径,尽可能保证每次执行都是可重复,且独立的。
  2. 整体性和拆分性,优化需求可以从整体和拆分性维度进行设计。在实际的优化方案中,从整体的性能提高上存在较大瓶颈也很难做到一次性对整体性能的大幅提高。这个时候我们就需要对优化方案进行拆分,对于游戏某些节点或操作的关键帧进行测试分析。
  3. 整体性测试:整体性能差异,尽可能还原玩家角度和操作习惯。
  4. 拆分性测试:优化点测试,优化前后某几帧的性能变化。通过该数据可以有效说明优化是有效的。

操作:在测试过程中,如何避免无效数据收集?减少测试成本?

操作也是整个性能测试关键,如何控制变量?这里的变量是多维度的,硬件状态(如温度),程序状态(如不确定算法或场景随机性)都会导致每次执行的结果均有一定偏差。

  1. 硬件状态在有条件和时间的情况下,可以测试完一组数据后放置几分钟。
  2. 需要连续在同一台设备上采集实验组和对照组数据,不具备测试完放置一段时间的情况。这时候,我们可以通过ABA的方式进行数据采集,让设备状态和数据通过间隔执行的方式减小累积多次全A或全B导致的设备状态差异。
  3. 合理利用冷启动,减少app本身状态差异带来的影响。在使用GM指令构建测试环境后,即时游戏本身在GM生效过程中重启游戏,也需要在确保环境构建成功后对其冷起,尽可能减少变量。
  4. 数据可靠性,在采集数据时出现异常(非计划内路径或其他)这类数据是不可靠的,可以直接舍弃减少数据分析时带来的干扰。
  5. 数据采集符合预期,采集方式有效,如果采集的数据不符合预期,不要急于下结论,需要考虑是否是设备本身导致,需要替换设备验证。如果验证是设备问题,该台设备大概率存在兼容性问题。如果验证非设备问题,大概率是优化代码造成的非预期的逆化现象需要程序针对性定位修复。

数据分析:如何在采样数据中有效甄别有效数据?

数据分析是基于需求本身的性能优化点针对性分析,比如任务【无尽模式无阴影优化】主要优化手段是对拖拽处理逻辑。我们在设计好数据采样场景后(尽可能保持一致的操作路径,减少变量),采样需要只针对于拖拽场景。如下图分析时应该分为前后两端去验证数据,中间非拖拽导致的帧率变化需要排除。

从前半段为新手流程的拖拽可以看出,开启特性的形况下平均PFS明显高于关闭的时候:

从后半段为非新手流程的首次拖拽分析得出的结论依旧,开启特性的形况下平均PFS明显高于关闭的时候:

总结两次采样控制非常好,从图形上看走势基本保持一致。这样的情况从整体的平均数也能一定程度反应拖拽优化的性能优化,但说服性相对于只分析拖拽带来的变化更弱,且想在实际的操作中做到如此接近的场景所消耗的测试采样时间更久,更困难。因此,在数据采样和分析中学会有效分析和选取数据是提高效率的核心手段。该案例是在原来设计的测试用例下对已收集数据进行的数据有效性分析。可以适当增加对该优化方案更直接针对测试,设计只拖拽场景(不进行放置块),控制被拖拽的块一致,时间上可以适当增加如30s或60s。然后对期进行数据分析。另外,还可以结合特殊场景,合理利用冷启动的边界场景覆盖全面。测试点如下:

场景

测试方法

数据分析

1、冷启动,首次完成新手和非新手流程拖拽

每个块在盘面拖拽时间控制在30s左右,沿着盘面顺时针或逆时针画圈

拆分两次数据单独做分析

2、接上,冷启动,非首次拖动

先放置一个块,在放置后续块时拖拽块,沿着盘面顺时针或逆时针画圈,收集相关性能数据,时间控制在30s左右

3、接上,冷启动,整体性能影响,模拟玩家正常体验游戏

按照正常游戏进行块的放置,游戏时间可以控制在3分钟左右

接上,对照实验,再不开启该优化的情况下测试对应场景1,2,3的性能数据

重复上述场景对应的方法

对照组和实验组数据对比,观察优化前后的性能变化

其他:不同的测试需要需要不同的设置和关注点

性能测试指标不同,测试方法本身也会存在差异。

  1. 如针对能耗(电量)的测试,在使用测试工具时需要使用wifi链接状态。需要测试工具和待测试设备使用同一个网络。
  2. 无线连接,一开始需要物理连接,在物理连接状态下完成wifi连接,工具会提示断开物理连接。
  3. 如针对FPS的测试,就不能使用wifi链接状态,需要使用物理链接方式。不同的链接方式会导致指标存在非常大的差异。

补充知识:冷启动和GM命令生效重启的差异?

冷启动是游戏从关闭状态切换到活跃状态的过程,整个过程有资源加载,程序初始化,编译等。

GM重启,可能是针对性的activity或者进行的重启,重启过程中,会跳过冷启动的编译和部分程序初始化过程,存在数据残留风险。

维度

冷启动

GM指令生效后的重启

进程状态

完全终止并重新创建进程

可能保留部分进程或线程

资源加载

重新加载所有资源

可能仅加载部分资源或场景

数据初始化

全局变量、角色属性等重置

可能保留GM指令修改的数据

启动时间

较长(需要初始化所有组件)

较短(跳过部分流程)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值