Gauntlet自动化框架概述

用于在虚幻引擎中运行项目会话的框架,这些会话负责执行测试并验证结果。

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核心接口

gauntlet_overview_interfaces.png

核心类

TestExecutor

TestExecutor类处理一组测试的创建、排队和监控。如果TestNode支持并行执行多个测试,则可以并行执行多个测试。需要注意的一个示例是虚幻服务器的端口使用。对于第一个测试,可以使用默认端口,但当并行执行多个测试时,服务器和客户端都必须使用唯一的端口。

ITestNode

ITestNode是一个接口类,它描述了所有测试节点必须实现的API。

虚幻测试节点

虚幻测试节点主要通过配置一个UnrealSession对象并调用它的相关函数来实现ITestNode。

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback