Choose your operating system:
Windows
macOS
Linux
Gauntlet是运行操作并验证结果的框架。它是专门为在各种平台上运行虚幻 会话 而设计的,但不仅限于此。虚幻 会话 是虚幻引擎中执行游戏所需的所有进程。例如,多人游戏可能需要四个客户端和一个服务器。
Gauntlet不需要任何特定的游戏端自动化代码或测试框架——您的游戏如何执行测试完全取决于您自己。不过,Gauntlet插件提供了一个有用的
TestController
类来帮助操纵和监控游戏实例。它非常适合需要执行多个步骤的冒烟测试,但它完全是可选的。
Gauntlet提供以下功能
-
实现与平台无关的编译、设备和测试,它们作为底层单元,提供配置和组合所需的功能操作。
-
为游戏提供可以启动复杂配置(例如5v5客户端和服务器)的高级类。
-
提供效用函数来解析来自设备的日志文件、崩溃以及访问/保存的数据。
Gauntlet具有以下特点
-
无需特定的虚幻端代码。其目的是,在虚幻中,操作执行使用任何最合理的内容。可以是各种内容,例如虚幻自动化框架,或者仅仅是游戏解释的一些命令行参数。
-
不会创建编译。您需要为Gauntlet提供网络或本地转化的编译。
架构
Gauntlet提供了三级功能。较早的层级可以(而且确实是)被单独用于编写设备交互、非虚幻单元测试等的脚本,而较晚的层级抽象化用户可配置的简单选项背后的大量复杂性。
第1级
-
接口(设备、编译、应用程序),它们抽象化设备、编译、安装和进程的概念。
-
ITargetDevice
-
IBuildSource
-
IBuild
-
IAppInstall
-
IAppInstance
-
-
框架,支持连续、并行和基于依赖性执行用户创建的测试。
-
TestExecutor
-
ITestNode
-
第2级
-
设备和应用实例实现,它们适用于虚幻支持的所有平台(PC、Mac、PS4、Xbox One、Switch、iOS、Android)。
-
TargetDeviceWindows
-
TargetDeviceMac
-
TargetDevicePS4
-
TargetDeviceXboxOne
-
TargetDeviceSwitch
-
TargetDeviceIOS
-
TargetDeviceAndroid
-
-
多个类,它们支持在虚幻会话中配置和启动一个或多个存在的"角色"(例如,四个客户端,一个服务器)
-
UnrealAppConfig
-
UnrealSessionRole
-
UnrealSession
-
UnrealSessionInstance
-
第3级
-
多个类,它们在虚幻会话上下文中实现ITestNode和IBuildSource
-
UnrealBuildSource
-
UnrealTestConfiguration
-
UnrealTestContext
-
UnrealTestNode
-
-
RunUnreal - 一个继承自UAT的BuildCommand类,它在构建测试列表并执行这些列表之前配置一些参数。
Gauntlet核心接口
核心类
TestExecutor
TestExecutor类处理一组测试的创建、排队和监控。如果TestNode支持并行执行多个测试,则可以并行执行多个测试。需要注意的一个示例是虚幻服务器的端口使用。对于第一个测试,可以使用默认端口,但当并行执行多个测试时,服务器和客户端都必须使用唯一的端口。
ITestNode
ITestNode是一个接口类,它描述了所有测试节点必须实现的API。
虚幻测试节点
虚幻测试节点主要通过配置一个UnrealSession对象并调用它的相关函数来实现ITestNode。