TestNG @DataProvider注释
testng.xml 中参数的多个值(不使用 dataProvider)
我想使用不同的参数值多次运行我的测试用例。是否可以使用 testng.xml 和 @Parameters 注释? 例如。 我想使用不同的参数值多次运行我的测试用例。是否可以使用 testng.xml 和 @Parameters 注释? 例如。 <test name="Login Tests"> <parameter name="one" /> <parameter name="two" /> <classes> <class name="test.java.Login"/> </classes> </test> 因此,这应该运行测试两次,一次使用值一,然后使用值二。 是否可以使用testng.xml和@Parameter? Q2。另外,是否可以仅为套件中的特定 @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 ([email protected]) ... {names=Cedric, Julien} Name = Cedric Name = Julien Age = 15 =============================================== 45160355_Suite Total tests run: 3, Failures: 0, Skips: 0 =============================================== 虽然 Krishnan 建议的答案工作得很好,但有一种方法可以仅使用 TestNG xml 文件和 @Parameter 注释来完成此操作,而根本不使用 DataProvider。 它可能很笨重,特别是对于较大的项目,但它完全符合arctic_monkey 的要求,也许有人会发现它很有用。 您可以创建多个具有不同参数值的测试标签,但在每个标签中执行相同的测试: <suite name="Parameterized tests"> <test name="Login Tests one"> <parameter name="one"/> <classes> <class name="test.java.Login"/> </classes> </test> <test name="Login Tests two"> <parameter name="two"/> <classes> <class name="test.java.Login"/> </classes> </test> </suite> 您还可以在每个类标记中指示特定方法,以便不要多次运行整个套件,而只运行参数化方法: <suite name="Parameterized tests"> <test name="Login Tests one"> <parameter name="one"/> <classes> <class name="test.java.Login"> <methods> <include name="loginTest"/> </methods> </class> </classes> </test> <test name="Login Tests two"> <parameter name="two"/> <classes> <class name="test.java.Login"> <methods> <include name="loginTest"/> </methods> </class> </classes> </test> </suite>
如何使用DataProvider在java中读取Excel文件
我无法阅读 Excel 文件中的信息来介绍和测试 selenium。但结果总是NullPoInterException。我尝试更改 Excel 文件中的链接。这是 2-p...
多线程测试中TestNG dataprovider的执行顺序如何设置
我将所有测试用例保存在许多Excel文件中。 Excel 文件中的每个工作表都是一个测试用例。 我从作为数据提供者的java类中读取了所有工作表。 我的测试中只定义了 1 个测试方法: ...
Dataprovider+TestNG - 线程“surefire-forkedjvm-command-thread”中出现异常 java.lang.OutOfMemoryError:Java 堆空间
我有一个基于 testng 和 dataprovider 的测试自动化框架。我在 jenkins job 的帮助下在服务器上运行我的代码。该作业使用 maven 命令行执行测试用例。这个工作是taki...
Dataprovider 与 xls 中每行的验证函数存在问题
我有以下课程 公共类 DataProiders { @DataProvider(名称=“数据”) 公共 String[][] getAllData() 抛出 IOException { // 使用 XLUtils 类,该类使用 XSSWorkbook 来获取...
努力寻找答案 引起原因:java.lang.NullPointerException:无法调用“io.cucumber.testng.TestNGCucumberRunner.provideScenarios()”,因为“this.testNGCucumberRunner&...
在 TestNG 中从逗号分隔的 jenkins 字符串参数开始并行运行
目前我正在使用这样的数据提供程序 静态对象[][] dataProvider() { 返回新对象[][]{ [A], [b], [C], } } 有测试NG
总共有5个测试班。它们中的每一个都使用 @Factory(dataprovider = "data") 进行初始化。我想要实现的是,每个测试类中的测试方法应该与
使用@DataProvider运行一段代码时,代码没有完成或失败,只是继续运行
我正在使用 TestNG 开发 Selenium-Java(Maven) 项目。 我正在使用 Excel 电子表格为我的 TestNG 框架提供数据来运行测试用例。如果我对输入进行硬编码,代码就可以正常工作
如何使用 TestNG + Selenium WebDriver 使用不同的数据集多次运行相同的测试用例
我有一个实用程序类 DataManager.java,其中我编写了一种从 Excel 工作表读取数据的方法。 公共静态 XSSFWorkbook xssfWorkbook; 公共静态 XSSFSheet xssfSheet; 公共静态
如何使用 testng 对列表中的所有数据运行相同的测试用例?
我正在使用数据提供程序和测试 ng 使用列表中的不同值多次运行相同的测试。但是,我有几个测试,我希望它们都一一运行,所以测试 1 -> 测试...
当我尝试运行测试时,在出现消息“org.testng.internal.reflect.MethodMatcherException:”后失败: [公共无效 api.test.DDTests.testPostUser(java.lang.String,java.lang.String,...
如何在 TestNg &java/ Kotlin 中为使用数据提供程序的测试方法设置执行期间的调用计数?
我确实参考了此链接并了解 IAnnotationTransformer。 我有一个场景,我使用数据提供程序对数据进行了参数化。需要使用
Java Selenium Testng 数据提供者中的定位器即将推出。为什么会这样?
我有一个静态的 ExcelUnits 类。我从 Excel 中得到一个列表,我想用这个列表进行测试。一切正常。定位器对于只有 1 个 html 标签来说太晚了。这需要 20 到 30 秒。这...
从其他一些 java 项目执行一个 testing.xml 文件
我有一个 swing jTable,其中有一列列出了所有测试方法,另一列具有 @test 方法所在的类名。 有什么办法可以计算...
使用来自 Excel 的 DataProvider 数据的 Selenium 测试被忽略
我正在开发一个 Java/Selenium/TestNG 项目,我有 3 个 Selenium 测试要使用 DataProviders 运行。我创建了一个文件阅读器类,将 Excel 数据流式传输到我的 DataProviders 的对象......
带有 testng 和 POI 的数据提供者读取 excel 表并对不匹配的发票行执行 7 个步骤,而匹配发票编号仅执行 2 个步骤
我有下面的测试读取一个 excel 发票文件,发票 ID 作为列之一。它是一个排序表,因此某些行可能具有相同的发票编号。我需要为每张不同的发票运行 7 个步骤
TestNG:在Eclipse的DataProvider中返回Iterator时出现ClassCastException。
在我的TestNG测试中,我使用了一个DataProvider来返回一个Iterator对象,但是当我运行测试时,我得到了一个错误。谁能解释一下为什么这是错误的,我应该怎么做才能解决...。
如果DataProvider没有提供测试用例,我可以让TestNG失败跳过吗?
如果我的TestNG DataProvider有一些逻辑,但结果是一个空的对象[][],我希望TestNG将其视为失败的测试。我希望不用把逻辑放在 ...
我在测试中使用了DataProviders。我想并行执行它们[@DataProvider(parallel = true)]。当我给parallel = methods时,Data-provider-thread-count = 1 , thread-count =2。总计...