0

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

延迟可能长达 10 分钟左右,这使得运行和调试非常耗时。这种重大延误是否有原因?

4

2 回答 2

0

是的,可能是因为您从 excel(贪婪的数据提供程序)读取的方式,并且取决于您的 excel 文件有多大。有一种叫做惰性数据提供者的东西。在这里找到了一个例子。从链接发布代码。

为了更好地理解需要查看您的代码。

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");
        }
    }

}
于 2015-09-18T06:28:53.740 回答
0

出于某种原因,通过重建我的自定义 Firefox 配置文件解决了这个问题 - 它可能已经损坏。

只是将其发布为参考答案,以防任何人陷入此问题。

于 2015-09-29T20:48:22.703 回答