TestNG - 参数化测试
-
简述
TestNG 中另一个有趣的功能是 参数化测试. 在大多数情况下,您会遇到业务逻辑需要大量不同测试的场景。参数化测试 允许开发人员使用不同的值一遍又一遍地运行相同的测试。TestNG 允许您以两种不同的方式将参数直接传递给您的测试方法 -- 使用 testng.xml
- 与数据提供者
-
使用testng.xml传递参数
使用这种技术,您可以在testng.xml文件中定义简单参数,然后在源文件中引用这些参数。让我们用一个例子来演示如何使用这种技术来传递参数。创建测试用例类
-
创建一个 java 测试类,比如 ParameterizedTest1.java。
-
将测试方法 parameterTest() 添加到您的测试类。此方法将字符串作为输入参数。
-
向该方法添加注解@Parameters("myName")。该参数将从 testng.xml 中传递一个值,我们将在下一步中看到该值。
创建一个名为的java类文件 ParameterizedTest1.java 在 /work/testng/src.创建 testng.xml
在中创建 testng.xml /work/testng/src 执行测试用例。我们还可以在 <suite> 级别定义参数。假设我们在 <suite> 和 <test> 级别都定义了myName。在这种情况下,常规范围规则适用。这意味着 <test> 标签内的任何类都将看到 <test> 中定义的参数值,而 testng.xml 文件其余部分中的类将看到 <suite> 中定义的值。使用 javac 编译测试用例类。现在,运行 testng.xml,它将运行parameterTest方法。TestNG 将首先尝试在 <test> 标签中找到名为myName的参数,然后,如果找不到,它会在包含它的 <suit> 标签中搜索。验证输出。TestNG 将自动尝试将 testng.xml 中指定的值转换为您的参数类型。以下是支持的类型 -- String
- int/Integer
- boolean/Boolean
- byte/Byte
- char/Character
- double/Double
- float/Float
- long/Long
- short/Short
-
-
使用数据提供者传递参数
当需要传递复杂参数或需要从Java创建的参数(复杂对象、从属性文件或数据库中读取的对象等)时,可以使用Dataproviders来传递参数。数据提供者是一种用注释的方法 @DataProvider. 这个注解只有一个字符串属性:它的名字。如果未提供名称,数据提供者的名称将自动默认为方法的名称。数据提供者返回一个对象数组。以下示例演示了如何使用数据提供程序。第一个例子是关于@DataProvider 使用Vector、String 或Integer 作为参数,第二个例子是关于@DataProvider 使用对象作为参数。示例 1
在这里,@DataProvider 传递 Integer 和 Boolean 作为参数。Create Java class创建一个名为 PrimeNumberChecker.java 的 java 类。此类检查数字是否为素数。创建这个类/work/testng/src.创建测试用例类-
创建一个 java 测试类,比如说, ParamTestWithDataProvider1.java 在 /work/testng/src.
-
定义 primeNumbers() 方法,该方法使用注释定义为数据提供者。此方法返回一个对象数组。
-
将测试方法 testPrimeNumberChecker() 添加到您的测试类。此方法采用整数和布尔值作为输入参数。此方法验证传递的参数是否为素数。
-
向该方法添加注解@Test(dataProvider = "test1")。属性 dataProvider 映射到“test1”。
以下是内容 ParamTestWithDataProvider1.java.Create testng.xml创建一个 testng.xml /work/testng/src 执行测试用例。使用 javac 编译测试用例类。现在,运行 testng.xml。验证输出。示例 2
在这里,@DataProvider 将 Object 作为参数传递。Create Java class创建一个java类Bean.java,它是一个带有get/set方法的简单对象,在 /work/testng/src.Create Test Case Class-
创建一个 java 测试类,比如 ParamTestWithDataProvider2.java。
-
定义 primeNumbers() 方法,该方法被定义为使用注解的数据提供者。此方法返回一个对象数组。
-
将测试方法 testMethod() 添加到您的测试类。此方法将对象 bean 作为参数。
-
向该方法添加注解@Test(dataProvider = "test1")。属性 dataProvider 映射到“test1”。
在其中创建一个名为 ParamTestWithDataProvider2.java 的 java 类文件 /work/testng/src.Create testng.xml在中创建 testng.xml /work/testng/src 执行测试用例。使用 javac 编译测试用例类。现在,运行 testng.xml。验证输出。 -