问题标签 [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 投票
1 回答
1092 浏览

batch-file - 如何更改 TestNG dataProvider 顺序

我正在针对大型发布系统运行数百个测试,并希望使用 TestNG 并行化测试。但是,我找不到任何简单的方法来做到这一点。每个测试用例实例化此发布者的一个实例,发送一些消息,等待这些消息发布,然后转储发布队列的内容并与预期结果进行比较。通过如此多的测试来做到这一点(即使我使用线程并行化,仍然需要很长时间才能完成(1 天或更长时间))。

我们发现在测试这种系统时,最好启动一次系统,运行所有测试以发送它们的消息,等待发布完成它的事情,转储所有输出,并将输出与测试和验证匹配。例如,而不是以下内容:

我们想做如下的事情:

你有一个 dataProvider 运行所有测试,sendMode = true然后执行,然后dumpAllRules()再次运行所有测试sendMode = false。问题是,TestNG 两次调用相同的方法,一次sendMode = truesendMode = false. 无论如何在TestNG中完成这个?

谢谢!

0 投票
1 回答
256 浏览

testng - 如何根据数据提供者重新排序测试执行?

使用 TestNG @DataProvider 将按以下顺序触发测试:

假设 dataprovider 返回{ [0], [1], [2] },TestNG 运行:

有什么方法可以触发测试按此顺序运行?

千感谢您的帮助!

0 投票
2 回答
3275 浏览

testng - TestNG - 类级别测试通知的数据提供者

我将在这里尝试解释我的场景,以便清楚我想要什么。

我在一个类中有一组方法,它们执行一些测试,它们都是相互关联的,并且必须按顺序运行,所以它们DependsOnMethod@Test注释中。我还使用 a DataProvider,每个测试返回 7 个值(n 行和 7 列)。现在,当我将此数据提供程序置于方法级别时,它会读取所有行并使用每组可用数据执行方法 1,然后转到下一个方法。

我想改变这个顺序,我想让它运行方法 1(数据集 1)、方法 2(数据集 1)、方法 1(数据集 2)……我知道很多人都有这个问题。我再次发布这个问题的原因是因为我已经尝试了所有建议的想法。

使用 Factory 注释时,它使我的测试根本无法在 Eclipse 中启动,并给出一个NullPointerException. 如果我使用@BeforeClass工厂注解,我会使用永远不会运行的注解。我在类的构造函数上给出了这个工厂注释。

我已经尝试过group-by-instancetestng.xml 文件中的标志,但也失败了:它以相同的顺序运行测试。

请问有人可以按正确的顺序为我解释整个事情吗?如果可能的话,举个例子,因为我确信这可以实现,但我想我在某处遗漏了一些东西。

对此的任何帮助将不胜感激。

PS我对Java不是很好,过去2-3周我一直在使用TestNG。

谢谢,约翰

0 投票
0 回答
151 浏览

java - 为什么我的 TestNG 数据提供者网站被阻止?

我正在使用 TestNG、Selenium Grid 并使用@dataprovider注释从 Excel 工作表中读取我的测试用例值。我正在测试两个网站,它们使用相同的字段名称等提供相同的产品,但只是使用不同的品牌名称。

站点 A 处理过程没有任何问题,而站点 B 似乎知道在其上运行了一个自动化脚本并重定向到阻止我完成测试用例的联系屏幕。当我手动登录时,我可以毫无问题地继续。

我的问题是,是否有工具可以防止使用带有@dataprovider注释的数据注入,如果是这样,有什么办法可以绕过它们吗?

0 投票
1 回答
1367 浏览

testng - 使用 testNG 和 Data Providers 参数化数据和对象名称

我正在尝试创建一个混合框架,我将从 Excel 表中传递对象名称和相应的值。这是我想做的

  • 字段名称:包含用于标识对象的 Xpath 或 ID
  • 类型:包含类型,如文本框或列表框等,以便我可以使用 IF 循环相应地处理对象的每个 TYPE。
  • 值 1..3..:我想要运行测试(对象)的不同值。

我该如何使用数据提供程序来执行此操作,因为理想情况下,当我使用不同的数据值时,前 2 列需要保持不变。此外,数据提供者似乎正在逐行读取数组。抱歉,如果这是一个基本问题,我是 testNG 的新手,听说过一些很棒的事情,想去看看。

0 投票
1 回答
365 浏览

testing - TestNG - 是否可以将 AnnotationTransformer 与 dataProvider 一起使用?

我正在使用 TestNG 编写功能测试,并且我有几十个具有不同数据的类似测试。我想使用 DataProvider 来减少重复代码。

但其中一些测试通过,一些失败(由于已知缺陷)。我想禁用失败的测试,直到它们被修复,所以它们不会破坏测试运行的整个画面。

我看到 AnnotationTransformer 可以动态更改测试注释。AnnotationTransformer 可以仅对某些数据集禁用测试吗?或者它会禁用所有提供的数据的测试,最好不要改变任何东西?

提前致谢。

0 投票
1 回答
1620 浏览

java - 使用带条件的数据提供者

有没有办法根据特定条件从数据提供者那里获取数据?就像是..

或类似的东西..

0 投票
1 回答
1167 浏览

selenium-webdriver - 使用 Selenium 测试用例映射手动测试用例

我有用 Excel 文件编写的手动测试用例,每个测试用例都有一个唯一的 Id。我使用 Selenium Webdriver+TestNG 为这些测试用例编写了测试方法。

我需要以下帮助: 1.我应该如何将手动测试用例 ID 与自动化测试用例映射?2.我需要按照手动测试用例出现的顺序运行自动化测试用例。

提前致谢!

0 投票
4 回答
11642 浏览

eclipse - TestNG 中的 DataProvider 从 excel 传递数据

我开始使用 Eclipse 和 TestNG 学习 Selenium2 (WebDriver)。我有一个关于 DataProvider 的问题。例如,我有一个登录页面,其中包含用户、密码和登录按钮。我已经在 TestNG 中编写了一个测试。我已将 pageobject 用于 UI 对象(具有单独的类)并在另一个类中进行实际测试。

这里 glogin 是一个类,而 login 是完成查找元素和发送密钥的函数,这在另一个具有 TestNG 注释的类 gtest(这是主测试)中调用。

我在将取值的主脚本中访问该类。

我有以下excel表

当我使用 dataprovider 并从 excel 表中获取数据作为数组并在测试中使用它时,会显示以下错误:

非常感谢任何帮助。

这是使用 Dataprovider 注释的方法的代码和

当我执行测试时,我收到了来自 excel 的数据

作为输出

0 投票
1 回答
12339 浏览

excel - 如何使用 testNG dataprovider 遍历 excel 表以获取多组数据?

我已经与 TestNg 合作了一段时间,但我有一个我似乎无法弄清楚的新要求。

我有一个 excel 文件(sample.xls),工作表名称=数据集,它具有以下内容:

测试数据1 ex1 ex2 ex3 ex4

测试数据2 ex1 ex2 ex3 ex4

我的脚本与此类似:

我的问题是:我应该如何修改这个脚本,以便我的脚本通过 excel 表中的两组数据。现在脚本会遍历第一组数据(testdata1 中的单元格)。我也想通过testdata2。我正在寻找的结果是:

1 2 3 4

5 6 7 8

谢谢