问题标签 [testng-dataprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1716 浏览

java - 如何限制用作工厂的 TestNG 数据提供程序方法的线程

我正在使用 selenium 来测试单页应用程序。我正在以一种@beforeClass方法加载页面。然后运行类中的所有测试。@afterClass然后在方法中拆掉驱动。

我已经将我的构造函数注释为@factory使用dataprovider来自基类的方法。dataprovider用于设置不同浏览器的集合。

我正在使用 crossbrowsertesting.com 来运行测试,我正在努力控制并行化。我需要能够控制任何时候运行的最大并发线程数(我们当前的计划只允许 2 个同时测试)。我想确保并行化发生在数据提供者级别。(即我希望每个浏览器有一个线程,最多 2 个线程)。

我正在使用 testng.xml 文件。

有一个基类 -

然后是一个带有测试的继承类。

如果我parallel="classes" thread-count="2"从 xml 的套件节点中删除属性,那么一切运行正常(只是不并行)。

如果我保留参数,那么我会收到以下错误 -

0 投票
0 回答
684 浏览

java - 通过 Jenkins 作业执行时 testNG 数据提供程序中的 Nullpointer 异常

我正在尝试执行我的 testng 测试,该测试具有通过 Jenkins Job 定义的数据提供者。我正面临以下空指针异常。但是,在我的本地机器上执行相同的测试用例没有任何错误(来自 Eclipse)


我的数据提供者是这样的:

其中,我试图根据参数从表中获取一些行。

0 投票
0 回答
118 浏览

testng-dataprovider - 修改surefire自定义报告控制台日志记录

在我们的组织中,我们遵循这种 DSL 模型领域特定语言和东西,用户可以在其中从电子表格编写测试,并且底层 Java 代码理解并执行这些指令。

现在问题来了。我们的类中有一个测试方法,它使用数据提供者,从文件中读取所有测试方法并执行指令。

自然,当surefire执行并打印结果时,它会说:测试运行:1,失败:0,错误:0,跳过:0

有没有办法操纵这个,TestNG这样当整个套件执行时,系统可以将来自 excel 的每个自定义测试方法作为合法的测试方法拾取。

我实际上让小组从 Junit 迁移到了 TestNG,他们质疑 DataProvider 功能是否可以处理这个问题,我对此没有回应:(

因此,本质上我们希望通过使用外部数据提供者来打破 java 方法之间的绑定,但同时保留执行的测试方法的数量,如 excel 电子表格中提供的那样。如果您能给我任何指导,那将对我最有帮助。在此处附上我的电子表格。

我的 java 文件只有 1 种测试方法:

0 投票
1 回答
802 浏览

testng - testng dataprovider 和 iretrylistener 数据问题

当我使用新的测试数据(不是来自 dataprovider 的原始数据)重试失败的测试时,我遇到了一个问题。如果我错过了适当的现有主题,请随时为我指明正确的方向。

我发现如果测试方法失败,也会重试 dataprovider 方法。我怎样才能只重新运行测试方法(使用原始测试数据)?

在此先感谢您的帮助。

以下是我的代码的一些部分:

测试类:

重试测试监听器:

IRetryAnalyzer:

0 投票
1 回答
410 浏览

java - TestNG 数据提供者优化

我们的数据提供程序旨在根据传入的某些键值从 Excel 文件中检索单行数据。这对于我们的测试套件非常有效,其中包含约 15 个测试,但在接下来的几个月中,测试将增长到几百个,因此我担心每次测试访问一次 excel 文件的影响(是的,每个测试的 excel 文件将有一行)。

从性能/资源的角度来看,这是一个有效的担忧吗?如果是这样,如何衡量它?(我在 Mac 上)。

使用@BeforeClass 方法,我可以轻松地将excel 文件中的所有数据加载到对象中,并让数据提供者从对象中检索数据。但同样,我不知道在内存中有这么多数据的开销会做什么。

这些数据有最佳实践吗?

0 投票
0 回答
942 浏览

testng - 与 Data Provider 并行执行 Testng 测试

我正在尝试与数据提供者并行执行 testng 测试。Data Provider 的每一个输入都会是一个新的测试。
对于并行执行,我已将属性并行添加到数据提供者和 threadPoolSize 以进行测试。我在 eclipse 运行配置中传递命令行参数 -parallel methods -dataproviderthreadcount 2
下面是到目前为止尝试的代码片段

输出:
id:10 n:1 s:a
id:14 n:5 s:e
id:17 n:8 s:h
id:13 n:4 s:d
id:11 n:2 s:b
id:15 n:6 s:f
id:12 n:3 s:c
id:19 n:10 s:j
id:18 n:9 s:i
id:16 n:7 s:g

为每个输入创建一个新线程,但我只想创建 2 个线程。

0 投票
2 回答
2205 浏览

java - Testng 不单独计算数据提供者测试

这是我的数据提供者

这是我的测试

当我执行此测试时,TestNG 输出将“getRetailer”列为唯一测试。我有 1295 条数据提供者返回的记录,我希望报告 1295 条测试。我错过了什么?

0 投票
2 回答
1370 浏览

java - Selenium Web Driver 并行执行测试用例的过时元素引用异常

这是我的类,其中包含我想并行执行的测试方法 f()。数据提供者为测试方法提供输入。

这是 testng.xml

我想在 2 个线程中并行执行测试 f()。对于 findElement 方法的一次迭代,我得到了 Stale Element Reference 异常。谁能告诉我要在这个片段中添加什么?

0 投票
1 回答
538 浏览

testng - 是否可以在 TestNG 中为相同的测试方法传递参数和数据提供者

0 投票
2 回答
7418 浏览

java - Selenium Web 驱动程序并行执行数据提供程序测试用例时找不到会话异常

这是我的测试类,我想在新浏览器中并行执行 Data Provider 的每个输入。我能够打开新的浏览器,但我得到 Session Not Found Exception 并且没有这样的元素异常

这是 testng.xml

谁能告诉我为什么我得到这个异常以及如何解决它?