章节目录:
前言
TestNG Executor 工具能够结合使用 SOAtest 运行的各种其他类型的测试来执行 TestNG 测试。这使您能够设计和执行单一的测试场景,将 TestNG 测试编排为更广泛的事件序列的一部分,如 Set-Up 测试环境或测试数据,通过该工具运行单元测试,然后执行移动测试。
要求
- 支持 TestNG 6.9.3.10
- 该工具需要 SOAtest 9.9.0 或更高版本
安装
可以通过 UI 或命令行安装该工具。
UI 安装
- 从主菜单中选择 Parasoft> 首选项。
- 选择 系统属性选项卡并点击添加 JARs。
- 找到 testngexecutor.jar 文件,然后点击应用。
- 重启 SOAtest。
命令行安装
将 testngexecutor.jar 文件添加到 settings.properties 文件中的 system.properties.classpath
属性。例如:
system.properties.classpath=<path to jar>/testngexecutor.jar
使用说明
您可以使用向导将 TestNG Executor 作为独立工具添加。
测试的类文件夹或 .jar 文件必须包含您希望执行的 TestNG。其他依赖项可以包含在 jar/folder 中,添加到系统属性中,或者两者都包含。该工具首先检查 jar/folder,然后在必要时检查系统属性。
配置
您可以配置以下工具字段:
字段 | 说明 | 必须 |
---|---|---|
Jar or Class Folder | 指定测试的类文件夹或 jar 文件。如果您提供的 jar/folder 没有指定类或方法,TestNG 将首先查找默认名称为(testng.xml)的套件 XML 文件,并尝试使用该文件配置要运行的测试。如果没有该套件 XML 文件,也没有指定类或方法,那么该工具将运行 jar/folder 中的所有测试。 | 必须 |
Class | 指定要运行给定 jar 或类文件夹中的哪个 TestNG 类。 | 可选 |
方法 | 指定要运行的 TestNG 方法。如果要运行指定类中的所有测试方法,请将此项留空。 | 可选 |
Groups | 指定要运行的测试组。TestNG 支持用组注释测试方法,从而将测试方法划分为不同的逻辑分组。例如,TestNG 单元测试可分为“单元”和“集成”测试,或“冒烟“和“功能”测试。该字段可填入单个分组或以逗号分隔的多个分组。更多信息,请参阅 TestNG 文档: | 可选 |
套件XML 文件 | 指定要运行的套件 XML 文件。套件 XML 文件(默认情况下也称为 testng.xml 文件)用于指定包含或排除哪些包、类、套件和测试,定义新分组,指定依赖关系,提供数据参数等。更多信息,请参阅 TestNG 文档: | 可选 |
参数 | 为想要传递给参数化测试方法的参数指定以分号分隔的键/值对。这是在套件 XML 文件中配置参数的另一种方法。更多信息,请参阅 TestNG 文档: http://testng.org/doc/documentation-main.html#parameters 如果您的测试包含下面的代码段,您可以按如下方式指定
import static org.testng.AssertJUnit.*; import org.testng.annotations.*; public class DataTest { @Parameters({ "first-name", "last-name" }) @Test public void testData(String firstName, String lastName) { assertEquals("John", firstName); assertEquals("Doe", lastName); } } | 可选 |
命令行参数 | 指定 TestNG 命令行选项以及其他您想要应用的 TestNG 选项的参数。采用您在 TestNG 命令行上提供的格式提供命令行参数。更多信息,请参阅 TestNG 文档: http://testng.org/doc/documentation-main.html#running-testng | 可选 |
示例
以下示例演示了如何在不同场景下配置该工具
运行特定测试方法
运行类中所有测试方法
运行特定分组中所有测试
运行套件 XML 文件
指定命令行参数
查看结果
执行细节和结果将在控制台视图中报告。此外,任何检测到的测试失败都将在质量任务视图中报告:
从 TestNG 测试向控制台报告消息
在项目中导入 com.parasoft.api 包以访问 Application Context,这样 SOAtest 就能向控制台报告 TestNG 测试执行的信息:
Application.showMessage("this displays in the console");
在 Java 项目的 classpath 中添加 <SOATEST_INSTALL>/plugins/com.parasoft.ptest.libs.web_<version>/root/com.parasoft.api.jar 以导入资源。
从 TestNG 测试中检索数据
您可以将 SOAtest 输出与 TestNG Executor 关联,这样就能从 TestNG 测试输出中获取数据,以便在其他测试中使用。您需要配置 TestNG 以指示希望存储哪些值,并将合适的工具与该执行器工具的 TestNG Output 关联。数据将以 XML 格式传递到附加的工具。例如,可以将数据发送给比较工具、XML 断言器或 XML 数据库工具。
配置 TestNG Output
您的 TestNG 必须访问应用程序上下文,并将所需值存储在 custom_tool_TestNG_output
键下的标准 Java Map 中。TestNG Executor 工具将检查应用程序上下文中存储的映射,将其转换为传递给该工具“TestNG Output”输出的 XML。映射的键和值必须是字符串。
根据Reporting Messages from TestNG Test to Console的说明,将 com.parasoft.api 包导入 TestNG 以访问 Application Context。
将数据发送到另一个工具
将 TestNG 测试的输出数据发送给处理 XML 数据的工具:
- 右键点击 TestNG Executor,然后选择添加输出。
- 选择接收输出的工具,然后点击完成。
示例
在本例中,我们将在 XML 数据库中存储 multiplyResult
和 sumResult
TestNG 操作的值,以便在后续测试中使用这些值。将执行以下程序:
- TestNG 测试构建了一个包含这些值的映射
- 将映射放入应用程序上下文中。
- 映射中的值将被转换成 XML 文档,传递给任何与 TestNG Output 关联的工具
@Test public void testExample() throws Exception { int multiplyResult = 8 * 8; int sumResult = 8 + 8; // Create map representing name-value pairs for XML Map<String, String> map = new HashMap<String, String>(); map.put("multiplyResult", String.valueOf(multiplyResult)); map.put("sumResult", String.valueOf(sumResult)); // Get the Parasoft Scripting Context ScriptingContext context = Application.getContext(); // Place the map in the context with the custom_tool_TestNG_output context.put("custom_tool_TestNG_output", map); }
添加一个配置为用于运行此测试的 TestNG Executor 工具,并在 TestNG Output 中添加一个 XML 数据库工具。
指定提取并在其他工具中使用的值。映射的内容显示在 XML 文档中 <root>
元素下,该文档会传递给 TestNG Output 关联的工具。在本例中添加了一个值断言工具。
第三方内容
此插件包括来自第三方的资源项,如下所示。
- TestNG (Apache Version 2.0 License)
更多许可证详情可在该插件的 licenses 文件夹中获得。