gpt4 book ai didi

java - testng.xml 中参数的多个值(不使用 dataProvider)

转载 作者:行者123 更新时间:2023-11-30 06:36:25 25 4
gpt4 key购买 nike

我想使用不同的参数值多次运行我的测试用例。是否可以使用 testng.xml 和 @Parameters 注释?

例如。

 <test name="Login Tests">
<parameter name="one" />
<parameter name="two" />
<classes>
<class name="test.java.Login"/>
</classes>
</test>

因此,这应该运行测试两次,一次使用值一,然后使用值二。

是否可以使用testng.xml和@Parameter?

第二季度。另外,是否可以仅为套件中的特定 @Test 添加参数

例如。我的 TestSuite 有 2 个测试用例和一个与其关联的 testng.xml。

是否可以在 testng.xml 中仅为一个 @Test 添加 @Parameters,因为我的两个测试都采用相同的参数。

最佳答案

下面的示例基本上应该可以帮助回答您的所有问题。

如何运行@Test根据 <parameters> 提供的值多次标签

如何将参数仅传递给特定的测试类

import org.testng.ITestContext;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class FirstTestClass {

@Test(dataProvider = "getData")
public void testMethod(String param) {
System.out.println("Name = " + param);
}

@DataProvider
public Object[][] getData(ITestContext context) {
String parameter = context.getCurrentXmlTest().getLocalParameters().get("names");
String[] names = parameter.split(",");
Object[][] returnValues = new Object[names.length][1];
int index = 0;
for (Object[] each : returnValues) {
each[0] = names[index++].trim();
}
return returnValues;
}
}

这里我们正在解析通过testng.xml传递的单个参数。通过使用 , 将文件拆分为多个值

这是第二个测试类的样子,它将接收测试类特定的参数。

public class SecondTestClass {
@Test
@Parameters({"age"})
public void testMethod(int age) {
System.out.println("Age = " + age );
}
}

最后,testng.xml 的方法如下:看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="45160355_Suite" parallel="false" verbose="2" >
<test name="45160355_test" verbose="2">
<parameter name="names" value="Cedric, Julien"/>
<classes>
<class name="com.rationaleemotions.stackoverflow.qn45160355.FirstTestClass">
</class>
<class name="com.rationaleemotions.stackoverflow.qn45160355.SecondTestClass">
<parameter name="age" value="15"/>
</class>
</classes>
</test>
</suite>

这是输出

... TestNG 6.11 by Cédric Beust (cedric@beust.com)
...
{names=Cedric, Julien}
Name = Cedric
Name = Julien
Age = 15

===============================================
45160355_Suite
Total tests run: 3, Failures: 0, Skips: 0
===============================================

关于java - testng.xml 中参数的多个值(不使用 dataProvider),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45160355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com