WebDriver datadriven(使用TestNG)脚本需要很长时间才能启动

时间:2015-09-17 15:38:41

标签: java selenium-webdriver testng testng-dataprovider

我使用Java WebDriver库和TestNG框架扩展了Selenium。运行测试脚本时,当测试从Excel文件中获取输入参数时(使用@DataProvider注释),我注意到测试开始执行的时间过长。

延迟可能达到大约10分钟,这使得运行和调试非常耗时。有这么大的延迟吗?

2 个答案:

答案 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配置文件解决了这个问题 - 它可能已经损坏了。

只需将此作为参考答案发布,以防任何人因此问题陷入困境。