我使用Java WebDriver库和TestNG框架扩展了Selenium。运行测试脚本时,当测试从Excel文件中获取输入参数时(使用@DataProvider
注释),我注意到测试开始执行的时间过长。
延迟可能达到大约10分钟,这使得运行和调试非常耗时。有这么大的延迟吗?
答案 0 :(得分:0)
是的,可能是因为您从excel(贪婪的数据提供者)读取的方式,并取决于您的Excel文件有多大。有一种叫做懒惰数据提供者的东西。找到一个here的示例。发布链接中的代码。
为了更好地理解需要查看代码。
public class LazyDataProviderExample {
@Test(dataProvider = "data-source")
public void myTestMethod(String info) {
Reporter.log("Data provided was :" + info, true);
}
@DataProvider(name = "data-source")
public Iterator<Object[]> dataOneByOne() {
return new MyData();
}
private static class MyData implements Iterator<Object[]> {
private String[] data = new String[] { "Java", "TestNG", "JUnit" };
private int index = 0;
@Override
public boolean hasNext() {
return (index <= (data.length - 1));
}
@Override
public Object[] next() {
return new Object[] { data[index++] };
}
@Override
public void remove() {
throw new UnsupportedOperationException("Removal of items is not supported");
}
}
}
答案 1 :(得分:0)
出于某种原因,通过重建我的自定义Firefox配置文件解决了这个问题 - 它可能已经损坏了。
只需将此作为参考答案发布,以防任何人因此问题陷入困境。