java - 在 @test 方法中处理其中一行失败时数据提供者的行为
问题描述
我是 TestNG 框架的新手。我打算使用 DataProvider 从 excel 表中传递表单值列表。
假设从 excel 工作表的列表中添加产品。当我使用数据提供者时,该@test
方法将针对 Excel 工作表中的每一行运行吗?
当其中一行处理失败时会发生什么?失败后它会运行其余的行吗?失败时是否必须重新启动 selenium webdriver 和登录方法?我不想为每次失败重新启动 webdriver ..
即使浏览器关闭,我当前的应用程序也会保留会话。
解决方案
问题:@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方法将运行两次,无论任何数据集如何,无论第一个是否失败 。
问:当其中一行处理失败时会发生什么?
Ans :该特定行的测试用例将失败,并且将通过从 excel 读取下一组数据继续执行。
问:它是否会在此失败后运行其余行?
Ans :理想情况下它应该,现在又取决于你是否随身@AfterMethod
携带。
问 :当 selenium webdriver 和 login 方法失败时,我是否必须重新启动它?
Ans :不。最好在 中初始化驱动程序@BeforeMethod
,因为 before 方法将在 dataprovider 生成的每组数据之前运行。
希望这会有所帮助。
推荐阅读
- list - haskell 中的元组列表
- flutter - 通过堆栈中两个小部件之间的所有手势
- pandas - Pandas groupby 按列聚合 sum() 仅使用 lambda 提供计数
- c# - 检查或捕获警告未能在频道上发布通知
- python - Python 正则表达式问题与不匹配 \.\s
- javascript - Vue计算不重新计算
- python - TypeError:字符串索引必须是整数。当尝试访问 json 变量时
- java - 处理数组列表的数组列表,每个数组都有不同的对象
- java - startForeground 使应用程序崩溃(AndroidStudio)
- python - 从子目录导入到子目录