【发布时间】:2020-12-27 04:06:17
【问题描述】:
您能否建议我的代码可能有什么问题,使用 dataprovider 我的测试方法 Test2 和 Test3 看起来像无法访问,您能否提供解决方案,告诉我如何在不将所有代码放入单个测试方法的情况下解决此问题
- 使用数据提供程序时,我只能访问 Test1 代码,这意味着在执行我的代码后,我的输出低于输出(见下面的输出)
输出
测试用例之前
打印测试1
我的预期输出应该在哪里(见下面的输出)
输出
测试用例之前
打印测试1
打印测试2
打印测试2
public class Test extends DriverConfig {
@DataProvider
public Iterator<String> getTestData() throws Exception {
driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);
ArrayList<String> getclientProduct = sftpCon.clientProduct("Client Type");
System.out.println("getclientProduct----------" + getclientProduct);
System.out.println("Before Test case");
return getclientProduct.iterator();
}
@Test(priority = 1, retryAnalyzer = com.brcc.tool.RetryFailedTestCases.RetryTestCases.class,dataProvider = "getTestData")
public void A1(String clientName,String clientAddress) throws Exception {
wait = new WebDriverWait(driver, 10);
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
System.out.println("Print Test1");
}
@Test(priority = 2, retryAnalyzer = com.brcc.tool.RetryFailedTestCases.RetryTestCases.class)
public void A2() throws Exception {
wait = new WebDriverWait(driver, 80);
System.out.println("Print Test2");
}
@Test(priority = 3, retryAnalyzer = com.brcc.tool.RetryFailedTestCases.RetryTestCases.class)
public void A3() throws Exception {
wait = new WebDriverWait(driver, 10);
System.out.println("Print Test3");
}
}
【问题讨论】:
-
您可以使用 BeforeClass 注解在所有测试方法之前执行代码。 driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);不得在 DataProvider 内。在测试中使用名称时,会自动从测试方法调用 DataProvider。
-
它不起作用,我有多个测试数据要测试,根据我的测试数据,我的代码流应该是多次,但我不知道问题出在哪里,我只能得到第一次测试数据的结果不是第二次和第三次......等
标签: selenium selenium-webdriver testing testng testng-dataprovider