1. 概述
1.1 小游戏云测试是什么
小游戏云测试是微信小游戏团队为开发者提供的一套完整易用的在线测试服务,以帮助开发者更高
效、更全面地进行自动化游戏性能测试、兼容性测试,驱动产品质量提升和优化,为用户带来更佳的游戏体验。
欢迎参与内测:
https://developers.weixin.qq.com/community/minigame/doc/000846255205f8c92d5912fca5e401
小游戏云测试更新说明
https://developers.weixin.qq.com/community/develop/article/doc/0002c45be386e8d008992de0950013
https://developers.weixin.qq.com/community/develop/article/doc/0004423e6f82a06378b983ac35b413
https://developers.weixin.qq.com/community/develop/article/doc/0006e871754960de956ab1d1351413
1.2 为什么使用小游戏云测试?
版本更新后小游戏启动加载有没有变快?
小游戏会不会在一些机器设备上或者某些场景出现脚本错误、黑屏?
需要提前测试游戏在不同机型配置下的性能数据?
每个版本做性能测试和兼容性测试覆盖耗时耗力?
现在,这些问题开发者都可以使用小游戏云测试来解决。
云测试的特点:
- 高覆盖率的真机设备集群:涵盖主流品牌厂商设备,一次测试就能全覆盖
- 低成本接入门槛:标准测试无须任何门槛,点击即执行
- 持续集成性能、兼容性检测工具:云测试过程中集成内存、CPU、JS Error、黑屏检测等各种检测工具
2. 云测试的使用
2.1 使用入口
开发者通过登录微信公众平台https://mp.weixin.qq.com,在"开发"栏中找到"云测试服务"tab,提交测试
目前云测试只针对体验版提供服务,因此也可以通过版本管理->体验版入口跳转到云测试服务页面
2.2 任务类型介绍
云测试支持3种任务类型,包括标准化测试、录制回放测试与自定义脚本测试。
标准化测试类型:直接提交测试进入测试队列。
录制回放测试类型:微信开发者工具IDE中录制测试过程,提交录制内容进行真机回放。
https://developers.weixin.qq.com/community/develop/article/doc/0006e871754960de956ab1d1351413
https://developers.weixin.qq.com/minigame/dev/guide/best-practice/tool/record.html
自定义脚本测试:开发者根据自定义脚本框架编写测试脚本后并提交测
https://developers.weixin.qq.com/minigame/dev/guide/best-practice/tool/introduction.html
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
- Q:云测试目前收费吗?
A:目前此服务在内测阶段,功能使用完全免费, 每款游戏每天有2次的使用上限。 - Q:云测试是在虚拟机上运行的吗,能否真实模拟真实玩家设备?
A:云测试是使用真机设备,也即是和现实玩家使用的移动设备环境相同。 - Q:云测试会对现网用户造成影响吗?
A:云测试是针对"体验版"进行,您可以设置任何一个提交版本为"体验版"进行测试,测试过程是在独立的真机设备集群进行,对现网玩家没有任何影响。 - Q:小游戏需要使用SDK重编游戏吗?
A:云测试无须使用任何内嵌SDK,所有测试数据都是有测试环境自动采集,真正0门槛。
微信小游戏开发者在研发过程中有什么技术疑问或建议,欢迎与我们交流!