一款ARPG游戏是如何搭建云真机系统的

news2024/11/19 16:47:19

随着业内对“工业化”认知的不断提升,越来越多的UWA用户通过UWA Pipeline的各项功能,为项目研发提供了极大的助力。其中的自动化测试与GOT Online性能测评的结合,帮助项目组在每个“测试-反馈”周期内,在大批量真机设备上实现项目的自动化运行和性能测试,极大地提高了测试任务的执行效率。而这些目标仅需要一套内网环境的云真机系统就能实现!

不久前,在UWA远程协助下,苏州天魂的《古魂-魂之刃2》项目组自主完成了云真机设备集群的搭建,并通过UWA Pipeline实现了批量设备上的自动化测试。今天我们就抛砖引玉,一起来复盘一下这套系统的搭建过程。

我们先来了解一下什么是“UWA Pipeline云真机系统”?简单来讲,就是在内网环境下,以UWA Pipeline为平台,构建一套多测试设备管理系统,接入批量移动测试设备,在PC上实时显示各设备的使用状态和参数信息,并能随时进行调用和调试,实现多设备的手动或自动化测试。(详见《UWA Pipeline 2.0 功能详解|私有云真机远程调试》)

这就是《古魂-魂之刃2》项目在云真机系统上运行的效果。下面我们来了解一下这套系统是如何搭建并运行的。

云真机系统的搭建

1.设备清单
1)手机放置架和散热风扇
准备好手机放置架和散热风扇。手机放置架主要用于统一收纳手机,便于集中管理和查看运行状态;散热风扇的作用则是真机设备在长时间的测试任务时,降低设备温度,避免设备因过热而导致的各种软硬件问题。一般来说,在进行功能测试时,UWA建议将风扇开启,而在进行性能测试时,可以将风扇关闭,从而更能体现性能测试中设备温度的真实性。

2)真机测试设备
根据项目的目标用户定位,尽可能选择不同档位、不同品牌、不同系统、不同分辨率等参数的测试设备。例如:

  • 考虑不同的手机品牌分布
  • 覆盖项目不同的性能分级和内存要求
  • 涵盖主流的Android/iOS系统版本
  • 出海项目还要综合考虑海外市场的设备分布和内存情况,有条件时可以购入海外机型

3)节点机
从性价比的角度考量,UWA建议采用专用的工控机作为节点来连接真机测试设备,不必占用大型的台式机。一般来说,我们可以通过多台工控机就能同时串联大量测试设备,组建成测试集群。

至此,UWA Pipeline云真机系统的硬件搭建就完成了。当然例如供电的插排、多接口的USB HUB集线器、网线和数据线等,大家可根据实际情况行配置即可。

《古魂-魂之刃2》项目的搭建展示

2.设备调试
硬件搭建完成后,接下来就要确保各类设备正常接入UWA Pipeline。

1)节点机的配置
节点机按照UWA Pipeline的节点配置进行操作:在Pipeline的节点管理中新建节点,按照给出的提示和链接,依次完成节点机上Python、Node、Java环境和节点启动程序Provider的下载、安装与配置。

再根据节点表单中的提示,配置其余信息。保存完设置后,运行节点启动程序Provider,此时节点机就正常接入到UWA Pipeline中了。

2)真机测试设备的调试
在节点开启Provider(需要保持开启状态)并接入到UWA Pipeline后,大家就可以把真机测试设备连接到节点上进行调试(需要在手机上选择文件传输模式,接着在开发者选项中打开USB调试)。

如果设备的数据线连接和数据传输都正常,那么真机设备上会开始自动安装必要的几个应用。一般而言,当真机设备出现如下界面时,说明调试成功,此时可以到UWA Pipeline的“设备管理”中去选取相应设备,在网页端对真机设备进行滑动、安装等操作。如果希望将iOS设备接入UWA Pipeline的云真机系统,需要大家另外准备一台Mac设备作为“节点机”去配置节点,然后接入iOS设备进行调试。

3)UWA Pipeline网页访问设置
由于UWA Pipeline搭建在办公环境的局域网内,所以大家只要在同一局域网下,就可以通过浏览器直接访问和操作云真机系统中的每一个设备。


测试任务的执行

1.自动化测试
UWA为项目组编写了相关的自动化测试脚本,例如:频繁进出指定关卡,并在场景内,释放角色所有技能。

《古魂-魂之刃2》项目组选定了一批测试手机,实现了“每小时运行一次完整测试用例”的高强度、高频率自动化测试任务,从而成功定位到了“关卡加载过程中偶现的Loading卡死”的问题。

在以往的项目测试过程中,针对偶发的不明问题,项目组往往要花费大量的时间人工进行测试并尝试复现,耗费了大量时间和人力。而通过UWA Pipeline云真机系统,就可以像《古魂-魂之刃2》项目组一样,通过特定的自动化用例的运行,以少量的精力投入,及时排查可能存在的问题,大幅提高效率。同时,针对ARPG类型的游戏,UWA也建议测试用例可以覆盖多个副本自动战斗、自动播放所有技能/特效、UI遍历(例如背包、英雄遍历)等。

2.多设备调试
通过UWA Pipeline的多设备调试功能,项目组还实现了更为自由的针对大批量设备的各项操作。

例如测试人员可以选定一台设备作为“领头羊”,就可以在不使用自动化脚本的情况下,操控整个设备集群,实现一拖N同步测试的效果(如视频展示:测试人员在操作左上角的设备屏幕,而其操作动作会无缝同步到其他设备中,从而实现同时操作N台设备的效果,大幅提升测试人员的测试效率)。

通过UWA Pipeline,同一时间,各个节点机可以分别执行各自流水线上设定好的任务,用于不同的测试用例、需求、设备等组合,互相之间也不会干扰。


以上,就是《古魂-魂之刃2》团队云真机系统的搭建过程,以及测试任务运行方面的经验和细节。未来,UWA也希望可以和更多团队深入合作与交流,分享更多UWA Pipeline的使用心得和成功案例,一起学习,一起进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/159627.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux——信号知识归纳(下)

目录 一.进程状态 二.信号捕捉时机与流程 三.sigaction函数 四.SIGCHLD信号 一.进程状态 linux将进程的状态分为用户态(user mode)和内核态(kernel mode)。 内核态时CPU执行代码不受任何限制,而用户态会做代码安…

MRP的库存供应天数(StckDS)和收货供应天数(RDS)

我们在MD07里面,可以看到三个天数: 1、库存可供应天数(StckDS) 2、第一次日供应量收货(RDS 1) 3、第二接货日期的收货(RDS 2) 而且信号灯的显示就是按照这三个天数来进行设置的 我们以15000047这个物料为例,来看下这三个数是怎么计算的 …

Java集合全解【完整版】

文章目录01 初识集合> 集合是什么?为什么要用集合?> 集合的框架体系02 Collection接口> Collection接口常用方法> Collection接口遍历元素:使用Iterator(迭代器)> Collection接口遍历元素:增…

那个叫郭不戳的博主去哪了--回归篇

文章目录那个叫郭不戳的博主去哪了--回归篇所以你究竟去哪了?有没有好的面试经验啊工作方面怎么样啊卷不卷总结那个叫郭不戳的博主去哪了–回归篇 消失了三个月,今天开始正式回归。一大早打开CSDN看到好多消息,首先谢谢大家对我的认可。接下来…

基于微信小程序云开发的医院体检预约小程序源码,医院体检预约小程序源码,实现体检预约管理、体检预约凭证、预约数据查看导出 版权申诉

功能介绍 对于医院体检科室和体检机构而言,每天的体检人数分布也不太均衡,若很多人集中在 某些天体检,会出现「医生强度大、体检人排队久」的问题。采用体检预约小程序进行体检预约数管理,体检人可预约到更广的日期范围、更精准的…

Apache Spark 机器学习 管道 3

Apache Spark的机器学习管道提供一个统一的、高级的APIs集合,该APIs集合是以数据框架(Datagrams)为基础,帮助开发人员创建或者优化一个用于实际环境的机器学习的管道。 管道(Pipeline)的基本概念 Spark机…

测试之Bug与用例【创建Bug、Bug级别、Bug生命周期、测试用例的万能公式、设计测试用例具体方法】

文章目录1. 如何创建Bug2. Bug的级别3. Bug的生命周期4. 面试题:跟开发产生争执怎么办5. 设计测试用例的万能公式使用万能公式对水杯设计测试用例6. 设计测试用例的具体方法6.1 等价类6.2 边界类6.3 判定表6.4 正交法(allparis)6.5 场景设计法1. 如何创建Bug 提 Bu…

关于USB的事儿

FTDI公司的产品值得研究,包含很多USB转接芯片【串口、SPI、IIC、JTAG】。USB通信芯片本身也是需要编程的,上位机和USB芯片通信是需要驱动的,才能实现对应的识别。上位机(VB、C#、C等一系列面向对象程序)调用dll文件,里面很多API函…

集群安全Security

一、多节点 1、配置文件中配置 xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.client_authentication: required xpack.security.transport.ssl.ke…

Java中最常用的循环--for循环

文章目录0 写在前面1 格式2 举例说明三种循环之间的区别写在最后0 写在前面 Java for循环用于多次迭代程序的一部分,或者多次执行同一个代码块。如果迭代次数是固定的,建议使用for循环。 说实在的,for循环就是while循环的变种。只不过限定条…

初识网络原理

网络的迅速发展普及了计算的使用,网路由一开始的独立模式(计算机之间相互独立)到局域网(局域网内的主机之间能方便的进行网络通信)再到现在的广域网(通过路由器将多个局域网连接起来,在物理上组…

Java多线程进阶

目录1.常见锁策略1.1 乐观锁和悲观锁1.2 读写锁和普通互斥锁1.3 重量级锁和轻量级锁1.4 挂起等待锁和自旋锁1.5 公平锁和非公平锁1.6 重入锁和非重入锁1.7 synchronized锁的特点2.CAS2.1 CAS实现原子类2.2 实现自旋锁2.3 CAS的ABA问题2.4 解决ABA问题3.synchronized的锁优化机制…

“华为杯”研究生数学建模竞赛2004年-【华为杯】B题:有交货时间限制的大规模实用下料问题(附优秀论文)

赛题描述 “下料问题(cutting stock problem)”是把相同形状的一些原材料分割加工成若干个不同规格大小的零件的问题,此类问题在工程技术和工业生产中有着重要和广泛的应用. 这里的“实用下料问题”则是在某企业的实际条件限制下的单一材料的下料问题。 一个好的下料方案首先…

axios踩坑,不同版本默认Content-Type不同

文章目录1、请求封装2、问题axios 0.21源码axios 1.2源码总结1、请求封装 封装代码: /**axios封装* 请求拦截、相应拦截、错误统一处理*/ import axios from axios import QS from qs; import { Message } from element-ui// 环境的切换 if (process.env.NODE_ENV…

大数据必学Java基础(一百二十):Maven工程的介绍与创建

文章目录 Maven工程的介绍与创建 一、Maven工程类型 1、POM工程 2、JAR工程 3、WAR工程

Cookie、Session、Token、JWT详解

Cookie、Session、Token、JWT 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹…

盖子的c++小课堂——第九讲:文件输入输出

前言 作者:哈咯大家好,我是盖…… 粉丝:更新更新!再不更新我来偷你家马桶盖!快更快更~~ 作者:子的盖…… 粉丝:再不更我真来偷你家马桶盖了昂~~ 作者:……啊!&#…

实用!ArcGIS更改字段名称、类型、顺序的技巧

01需求说明 常规来说。ArcGIS属性表中的字段一旦建立,他的顺序、字段名称、字段的类型是没有办法更改的。 我们在属性表中拖动字段,也只是改变了字段的临时显示顺序。一旦数据重新加载就会显示会原来的顺序。 那么有什么技巧来解决这样的问题&#xff0c…

python爬虫的简单复习1【使用etree进行XPath解析】

一、相关知识1.1 etree的使用1.1.1 编码流程将HTML文本加载到etree对象中调用etree的xpath()函数完成标签定位对标签为所欲为(此时获得的标签其实是xpath()函数返回的对象)1.1.2 环境安装pip install lxml1.1.3 实例化etree对象# 首先导入模块 from lxml…

优思学院|如何更有效地进行5why分析(五问法)?

所谓5-why(五个为什么或五问法),意思是要问五次 "为什么",直到你找到问题的根本原因。具体的过程是:首先确定问题,然后回答"为什么",并记录答案。第二次回答"为什么&q…