评论

微信小游戏云测试最佳实践

小游戏云测试在实际游戏项目中的使用介绍、案例与开发者开发者常见问题。

1. 概述

1.1 小游戏云测试是什么

小游戏云测试是微信小游戏团队为开发者提供的一套完整易用的在线测试服务,以帮助开发者更高
效、更全面地进行自动化游戏性能测试、兼容性测试,驱动产品质量提升和优化,为用户带来更佳的游戏体验。
欢迎参与内测:https://developers.weixin.qq.com/community/minigame/doc/000846255205f8c92d5912fca5e401

1.2 为什么使用小游戏云测试?

版本更新后小游戏启动加载有没有变快?
小游戏会不会在一些机器设备上或者某些场景出现脚本错误、黑屏?
需要提前测试游戏在不同机型配置下的性能数据?
每个版本做性能测试和兼容性测试覆盖耗时耗力?
现在,这些问题开发者都可以使用小游戏云测试来解决。
云测试的特点:

  1. 高覆盖率的真机设备集群:涵盖主流品牌厂商设备,一次测试就能全覆盖
  2. 低成本接入门槛:标准测试无须任何门槛,点击即执行
  3. 持续集成性能、兼容性检测工具:云测试过程中集成内存、CPU、JS Error、黑屏检测等各种检测工具

2. 云测试的使用

2.1 使用入口

开发者通过登录微信公众平台https://mp.weixin.qq.com,在"开发"栏中找到"云测试服务"tab,提交测试

目前云测试只针对体验版提供服务,因此也可以通过版本管理->体验版入口跳转到云测试服务页面

2.2 任务类型介绍

云测试支持两种任务类型,包括标准化测试和自定义测试。

标准化测试类型可以直接提交测试进入测试队列。自定义测试则需要配置测试脚本后才能提交,若已经配置过测试脚本,可以不用重复提交直接开始测试

2.3 测试报告

测试完成后可以在开发->云测试服务->测试管理->测试记录中,查看测试报告。


测试报告主要由三个部分组成:

  1. 任务列表: 所有的任务列表,包括已完成、执行中、等待中的任务数据
  2. 设备列表:单次任务运行的真机设备列表与执行结果
  3. 设备详情:单台设备的执行详情,包括性能与兼容性详细数据

3. 使用云测试检测运行性能

3.1 游戏流畅度

fps能直观反映游戏是否卡顿,与玩家的体验效果挂钩。通过云测试我们能发现小游戏在整个过程中帧率抖动次数过多,这样会导致玩家在体验游戏的过程中产生卡顿感。

对应技能:通过在关键帧信息中对应的时间点的截图找到对应的游戏场景,以及此时的drawcall次数、顶点数和三角形面数,通过优化该场景的代码减少该场景掉帧情况的发生。

3.2 内存检测

云测试会在整个过程间隔一段时间记录小游戏的内存情况,通过图中可以看到存在某些游戏在运行过程中游戏持续增长。

对应技能:关注内存的增长趋势,如果存在持续过度的增长游戏就有可能存在内存泄露的情况。一方面可以通过后续平台提供的内存镜像分析来定位增长的具体类;另一方面可以通过运行的截图定位具体哪个场景疑似存在着内存泄露。
小游戏内存Profile:https://developers.weixin.qq.com/minigame/dev/guide/best-practice/memory.html

3.3 CPU检测

云测试过程中会持续记录小游戏的cpu占用情况,某些游戏可能在运行过程中cpu占用率都处在相对较高的水平。

对应技能:一方面可以通过平台后续提供的cpuprofile分析找到具体耗时过长的函数,并进行优化;另一方面可以通过截图查看整个cpu占用峰值所在场景,通过优化处理逻辑减少cpu占用。

3.4 渲染指标检测

渲染指标一般会结合fps指标使用。我们能发现小游戏在某个设备中出现帧率的波动情况,同时根据渲染指标可以发现在这个时候三角形面数和顶点数都在增加,而且drawcall次数明显有增多的趋势。

对应技能:开发者可以通过帧率骤降所在时间点的截图,找到代码中对应的场景,通过优化代码,避免绘制不显示的节点,减少不必要绘制达到帧率稳定绘制稳定

4.使用云测试检测网络性能

4.1 网络超时与异常检测

云测试会在测试过程持续关注每一个request、每一个download请求,统计过程中消耗的流量与时间。有某些游戏在测试过程中可能会存在request耗时大于1s的情况,如果出现在loading界面会大大增加玩家的等待时间。

对应技能:通过减少通讯数据量,把数据量大的request拆分为几个小的request并采用异步操作,减少玩家的等待时间。

4.2 网络流量包体

众所周知,网络包体大小是影响请求延迟的主要因素,常见地,我们可以对文本网络内容进行gzip压缩,云测试会检测出对这类未进行压缩的资源。

对应技能:网络请求应注意包体大小,对于较大的文本资源应当进行压缩再传输,减少玩家因为下载资源而消耗过多的流量。

5.使用云测试检测游戏兼容性

云测试覆盖iOS/Android主流真机移动设备,支持不同品牌/档次机型,能高效的帮助开发者发现小游戏在不同的设备上的兼容性问题。

5.1 黑屏检测

从测试设备列表中可以选择兼容性测试状况为异
常的设备,比如某游戏仅在HUAWEI EVA-AL10上出现黑屏,其他都正常。通过点击详细报告,在兼容性tab可以看到游戏对应的黑屏截图。

对应技能: 在启动测试时选择导出console log,可以在设备兼容性测试tab页面下载console log来排查黑屏原因

5.2 JS Error检测

如果测试结果提示“脚本出现JS Error”,可以在兼容性测试tab中查看JS Error的详情,是否会影响游戏的启动或者正常体验。比如某游戏发现一个JS Error影响游戏正常体验,造成启动黑屏。

对应技能: 开发者在发现JS错误后,尽可能修复JS错误,减少游戏黑屏或逻辑错误等风险

六、Q&A

  1. Q:云测试目前收费吗?
    A:目前此服务在内测阶段,功能使用完全免费, 每款游戏每天有2次的使用上限。
  2. Q:云测试是在虚拟机上运行的吗,能否真实模拟真实玩家设备?
    A:云测试是使用真机设备,也即是和现实玩家使用的移动设备环境相同。
  3. Q:云测试会对现网用户造成影响吗?
    A:云测试是针对"体验版"进行,您可以设置任何一个提交版本为"体验版"进行测试,测试过程是在独立的真机设备集群进行,对现网玩家没有任何影响。
  4. Q:小游戏需要使用SDK重编游戏吗?
    A:云测试无须使用任何内嵌SDK,所有测试数据都是有测试环境自动采集,真正0门槛。

微信小游戏开发者在研发过程中有什么技术疑问或建议,欢迎与我们交流!

最后一次编辑于  2019-12-06  
点赞 4
收藏
评论
登录 后发表内容