章节目录:

前言

TestNG Executor 工具能够结合使用 SOAtest 运行的各种其他类型的测试来执行 TestNG 测试。这使您能够设计和执行单一的测试场景,将 TestNG 测试编排为更广泛的事件序列的一部分,如 Set-Up 测试环境或测试数据,通过该工具运行单元测试,然后执行移动测试。

要求

  • 支持 TestNG 6.9.3.10
  • 该工具需要 SOAtest 9.9.0 或更高版本

安装

可以通过 UI 或命令行安装该工具。

UI 安装

  1. 从主菜单中选择 Parasoft> 首选项
  2. 选择 系统属性选项卡并点击添加 JARs
  3. 找到 testngexecutor.jar 文件,然后点击应用
  4. 重启 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 文档:

http://testng.org/doc/documentation-main.html#test-groups

可选
套件XML 文件

指定要运行的套件 XML 文件。套件 XML 文件(默认情况下也称为 testng.xml 文件)用于指定包含或排除哪些包、类、套件和测试,定义新分组,指定依赖关系,提供数据参数等。更多信息,请参阅 TestNG 文档:

http://testng.org/doc/documentation-main.html#testng-xml

可选
参数

为想要传递给参数化测试方法的参数指定以分号分隔的键/值对。这是在套件 XML 文件中配置参数的另一种方法。更多信息,请参阅 TestNG 文档:

http://testng.org/doc/documentation-main.html#parameters

如果您的测试包含下面的代码段,您可以按如下方式指定 first-namelast-name 这两个参数:

first-name=John;last-name=Doe 

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 数据的工具:

  1. 右键点击 TestNG Executor,然后选择添加输出
  2. 选择接收输出的工具,然后点击完成

示例

在本例中,我们将在 XML 数据库中存储 multiplyResultsumResult TestNG 操作的值,以便在后续测试中使用这些值。将执行以下程序:

  1. TestNG 测试构建了一个包含这些值的映射
  2. 将映射放入应用程序上下文中。
  3. 映射中的值将被转换成 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 关联的工具。在本例中添加了一个值断言工具。

第三方内容

此插件包括来自第三方的资源项,如下所示。

更多许可证详情可在该插件的 licenses 文件夹中获得。


  • No labels