我是 TestNG 框架的新手。我打算使用 DataProvider 传递 Excel 工作表中的表单值列表。
假设从 Excel 工作表的列表中添加产品。当我使用数据提供程序时,@test
方法将针对 Excel 工作表中的每一行运行?
当其中一行处理失败时会发生什么?失败后它是否运行其余行? selenium webdriver 和 login 方法失败时是否必须重新启动?我不想为每次失败重新启动 webdriver..
即使浏览器关闭,我当前的应用程序也会保留 session 。
最佳答案
问题:当我使用数据提供程序时,@test
方法将针对 Excel 工作表中的每一行运行?
Ans :是的,它会针对每组数据运行。这取决于您如何从 excel 文件中读取数据。
以此为例:
@DataProvider(name = "test1")
public Object[][] createData1() {
return new Object[][] {
{ "Cedric", new Integer(36) },
{ "Anne", new Integer(37)},
};
@Test(dataProvider = "test1")
public void verifyData1(String n1, Integer n2) {
System.out.println(n1 + " " + n2);
}
verifyData1 方法将运行两次 次,与任何一组数据无关,也与第一个是否失败无关。
问:当其中一行处理失败时会发生什么?
答案:测试用例对于该特定行将失败,并且将通过从 excel 读取下一组数据来继续执行。
问。这次失败后它会运行其余的行吗?
回答:理想情况下应该如此,现在又取决于您是否使用了@AfterMethod
。
问。 selenium webdriver 和登录方法失败时是否必须重新启动?
Ans : 不。最好在 @BeforeMethod
中初始化驱动程序,因为 before 方法将在数据提供者生成的每组数据之前运行。
希望这会有所帮助。
关于java - 在@test 方法中处理其中一行失败时数据提供者的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51605636/