3

如何通过多终端自动化测试实现高效的质量反馈机制

 2 years ago
source link: https://blog.uwa4d.com/archives/UWA_PipelineBuild5.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何通过多终端自动化测试实现高效的质量反馈机制

当下,已经有越来越多的团队在日常开发中引入CI/CD工具,以完善开发流程并提高人效。在诸如UWA Pipeline这类工具的加持下,“开发-测试-反馈”的迭代节奏大大加快,团队成员可持续向流水线输入和更新项目内容。在大幅缩短项目周期的同时,开发过程中的各种问题也得到了及时的发现与解决。

但是,高频率的版本更新意味着更多的部署与测试工作,对测试数据分析与问题反馈的迫切需求,也使得负责项目测试和问题反馈的一线人员承受了极大的压力。很多情况下,测试团队不得不压缩测试内容和工时,以赶上原定的计划进度。

  • 如何在有限的时间人力分配下,精准快速地完成各种专项测试?
  • 如何将发现的Bug、闪退等问题在第一时间反馈给团队?
  • 如何在海量的测试数据中高效定位性能瓶颈?

是时候来了解UWA的“多设备自动化测试”功能了:作为UWA Pipeline内极富特色的功能之一,项目团队在借助CI/CD工具完成快速发版的同时,可以用极低的人力时间投入来完成发版后的大量测试和反馈工作,使得每一次的版本迭代都能得到及时而高效的验证与数据支持。

功能使用前提

1. 脚本语言

在使用上,“多设备自动化测试”功能是基于Python的。同时,建议用户使用AirtestIDE进行脚本编写,来更好地应用Airtest和Poco这类自动化测试框架,降低脚本编写难度。

没有脚本编写基础?编写的时间成本较大?没关系,UWA提供了相应的脚本编写服务,UWA工程师会和项目团队深度探讨并确认脚本要求。

2. 项目类型

一般情况下,“多设备自动化测试”功能可支持所有类型的项目和特定模块测试。当然,功能越复杂的项目,相关脚本编写的门槛自然越高。因此,我们推荐大家用脚本实现较为稳定的测试需求,譬如:

1)新手引导的流程测试,一般为固定的强制引导或者操作步骤要求;
2)主线和支线任务的流程测试,一般为点击指定任务后,能够进行自动寻路或者操作引导;
3)战斗、技能和场景挂机测试,一般要求固定范围内做定点、定时的刷怪,可以自动寻获目标,可以自动战斗或者技能操作;
4)大地图多定点跑动的场景测试,一般要求支持点到点的自动寻路,或者支持基于坐标系的相关移动、GM操作;
5)UI和功能测试,一般用于对指定的单个或多个UI进行反复点击、关闭,以及对指定功能模块进行多次操作,比如购买、锻造、使用道具,对指定地图或者场景的反复进入、退出等。

当然,“多设备自动化测试”功能的实际适用范围不局限于此,在使用过程中可结合项目的实际测试需求来制定可执行的测试用例。

用户工程设置

UWA的各项产品与服务,在集成和使用上具有高度的统一性和便捷性。以“多设备自动化测试+UWA性能优化服务”为例,只需三步,用户就可以完成项目中的相关设置。

1. 集成UWA SDK

登录UWA官网,在指定页面下载UWA SDK;然后将解压后的package文件集成到工程内。

1.png

2. 勾选Poco选项

把unitypackgae文件导入到工程中后,需要将“工程相关目录 - UWA - Prefab”下的UWA_Launcher拖入项目首场景且确保不被强制Destroy;之后,在UWA_Launcher内勾选Poco测试选项。这样在后续的测试中接入GOT Online服务时,就可以由Poco脚本控制相关功能的开启与关闭。

2.png

3. 集成Poco SDK

为了更好地脚本编写,项目内一般还需要集成Poco SDK。在UWA Pipeline的服务中心,我们提供了“多设备自动化测试”的相关说明和组件下载。按照文档内容,用户可以方便地找到Poco-SDK的下载链接。

3.png

下载相关文件后,用户需要根据项目实际的UI控件使用情况,选择并集成对应的控件文件。

4.png

至此,只需三步,用户就完成了项目内的设置,从而在后续测试中可以深度结合UWA的各项优化产品与服务。

测试脚本编写

使用AirtestIDE,用户可以依据项目的实际需求来编写相关的测试脚本。没有相关语言基础的用户,借由Airtest的图像识别,也能快速地学会编写相关脚本;如果有一定Python基础的用户,则可以更深度地结合Poco对UI控件进行更精准的脚本设计。

5.png

同时,在“UWA Pipeline服务中心-多设备自动化测试”的下载组件内,我们还提供了脚本范例以及可作为依赖模块的UWA.py文件,内含较为稳定的apk安装方法、调用GOT Online各个模式时用到的相关接口信息等,进一步降低用户编写和使用脚本的难度,可以更方便地接入和使用UWA的各项性能优化服务。

6.png

功能节点设置

UWA会负责相关的服务搭建和流水线设置,用户只需“拎包入住”、根据项目的实际情况配置相关节点即可。我们在《UWA Pipeline功能揭秘——多设备自动化测试》一文中对节点的相关设置有较为详细的说明,在此不再赘述。

硬件设施准备

1.一台作为节点的电脑;
2.一个多USB接口的插排(10~15个USB接口);
3.相关的测试设备,尽量涵盖各个性能层次、机型品牌、CPU类型;

用户只需确保每台连接在节点电脑上的真机都连接正常、能进行相关的调试即可。应用的安装以及测试进程的启动与停止等,都可以由脚本进行控制,正常情况下无需用户干预。

出于用电安全以及对可能的数据线脱落、USB接口故障等进行及时处置的考虑,团队只需安排个别人员在多设备自动化测试运行时进行值守,就可以确保整个测试过程的顺利进行。以后也只需安排少数成员负责脚本相关的内容更新与维护,就能保证测试内容与版本迭代的同步。

测试结果反馈

在多设备自动化测试功能的实际运行中,各真机设备将依据相关的设置,执行对应的脚本。大量例如固定流程遍历、UI点击、功能使用等相对简单的重复性测试任务可以彻底从原本的工作流程中剥离出来,相关的人力资源和时间就能分配到更为复杂和更急切的测试需求中,真正做到“好钢用到刀刃上”。

7.gif

8.gif

9.gif

在测试过程中遇到的诸如闪退、崩溃等现象,都会被详细记录在每台机型上单独生成的运行报告中,报告内会提供相关的记录和测试时的实机截图,项目团队可以快速对故障和异常进行查找和定位,大幅缩减时间和人力投入。

10.png

11.jpg

“多设备自动化测试”还可以和UWA的GOT Online服务深度结合,在自动化运行脚本的同时,按照需求运行GOT Online的各项测试模式即可。

测试完成后,用户可将各机型上的GOT Online数据上传至UWA服务器,即可马上获取相关的性能分析报告,从而发现和精准定位测试过程中遇到的性能问题,并通过报告内提供的分析建议来快速修改问题,快速测试、快速验证修改后的优化效果。

12.gif

用户更可以将测试后的性能数据进行批量测试分析,帮助项目团队从大量的测试数据中发现共性问题,从宏观角度对项目进行针对性的快速性能瓶颈分析和定位,避免了“沙里淘金”式的人力和时间投入,确保测试人员在发版的第一时间发现和反馈问题,依据数据提供精准的问题解决方案。(“批量测试分析”功能的详情可见《GOT Online 已支持批量测试分析》

13.gif

以上,通过UWA Pipeline的“多设备自动化测试”和UWA的其他产品服务结合使用,项目团队可以把“开发-测试-反馈”的迭代节奏提升到一个全新的高度,让研发过程中的每一次改动都能得到充分的测试和验证,及时发现并解决各种发热、卡顿、崩溃等性能问题,做到“运筹于项目全程,决胜于正式上线”。

了解更多:
《如何通过UWA Pipeline来搭建工业级的研发流水线》
《工业级研发流水线的战斗力展现》
《UWA Pipeline,为你的团队创造时间复利》
《UWA Pipeline功能揭秘——多设备自动化测试》


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK