Language:
Page Info
Tags:
Engine Version:
Share

自动化系统概述

自动化系统是基于功能测试框架而构建的,其设计目的是执行一个或多个自动化测试来执行Gameplay关卡测试。编写的大多数测试 都是功能测试、低级核心或编辑器测试,这些都是使用自动化框架系统所必需的测试。编写的这些测试 可以根据用途或功能划分为以下类别:

测试类型

说明

单元

API级别验证测试。请参阅 TimespanTest.cppDateTimeTest.cpp 以了解相关示例。

功能

系统级别验证测试,如验证PIE是否工作,验证游戏中统计是否工作以及分辨率变化较大时是否有效。请参阅 EditorAutomationTests.cppEngineAutomationTests.cpp 以了解相关示例。

冒烟

冒烟测试只是实施者的速度承诺。它们旨在快速,因此可以在编辑器、游戏或commandlet_每次_启动时运行。它们也是UI 中选择的默认选项。

所有冒烟测试都应在1秒钟内完成。仅将单元测试或快速功能测试标记为冒烟测试。

内容压力

为了避免崩溃而对特定系统的更详尽测试,例如,加载所有贴图,或加载并编译所有蓝图。请参阅 EditorAutomationTests.cppEngineAutomationTests.cpp 以了解相关示例。

截屏比较

这允许执行QA测试,快速比较截屏以识别不同版本之间的潜在渲染问题。

自动化测试已移至插件

长期以来,自动化测试分布于引擎和编辑器的多个位置,意味着您在交付作品时也会包含这些测试。现在,这些测试已经移到自己的插件, 可以单独启用。这也表示,由于这些测试位于插件中,您可以在编译时选择将它们包含在封装版本中。插件还可以存储内容, 这样就不必保存在引擎内容文件夹中。

由于这一更改,所创建的测试类型将指示应存放在哪里。下表提供了各种测试类型以及它应该与哪个插件一起保存:

测试类型

用来存储的插件

单元

这些可以继续存储在与代码相同的模块中。

项目不确定性运行时测试

RuntimeTests插件

项目不确定性编辑器测试

EditorTests插件

功能测试

EngineTest游戏文件夹

部分测试仍在引擎中,尚未移到插件。这些测试将陆续移到 插件浏览器(Plugin Browser) 中相应的插件, 迁移后会列示在 测试(Testing) 部分中。

启用自动化测试插件

要为不同的可用测试启用插件,转至文件菜单,选择 窗口(Window) >插件(Plugins) 以打开“插件浏览器”(Plugin Browser)窗口。

EnablePlugins.png

在左面板中,选择 测试(Testing) 类别,启用想要使用的测试插件。

单击查看大图。

选择完成后,系统将提示重新启动编辑器。单击 立即重启(Restart Now) 按钮。

RestartTheEditor.png

测试设计准则

在测试游戏或项目时,请参考Epic在自动化测试时遵循的一些通用准则:

  • 不假设游戏或编辑器的状态。测试可以在各机器中无序或并行运行。

  • 让磁盘上的文件保持原状态,不要改动。如果测试生成了文件,则在测试完成时将它删除。(这一点在未来可能会改变,允许选择自动删除生成的这类文件)。

  • 假设上一次运行测试结束后,测试状态不佳。一种比较好的做法是先生成文件以尝试删除它们,然后再开始测试。

运行自动化测试

  1. 打开任意项目。

  2. 启用可用于测试的插件 并重新启动编辑器。

  3. 在编辑器中,转至 窗口(Window) >测试自动化(Test Automation)

    单击查看大图。

    为了显示该菜单中的选项,首先必须至少启用一个自动化测试插件

  4. 在“会话前端”(Sessions Frontend)“自动化”(Automation)选项卡的 测试名称(Test Name) 列中,启用以下各项:

    单击查看大图。

    • 编辑器(Editor)

    • 项目(Project)

    • 系统(System)

  5. 在“自动化”(Automation)选项卡工具栏中,单击 开始测试(Start Tests) 按钮。

    单击查看大图。

    测试完成过程中,您可以在“测试名称”(Test Name)窗口中关注进度。

    单击查看大图。

基础

自动化系统 提供了使用 虚幻消息总线 的功能执行单元测试、功能测试和内容压力测试的能力,以提高稳定性。