问题标签 [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.
java - 如何使用 TestNG DataProvider 传递 > 10 个参数?
我需要将 10 多个参数传递给 TestNG Dataprovider,并且代码看起来像这样......
谁能告诉我如果我们需要传递超过 10 个参数,我们应该采用什么方法@DataProvider
?有没有其他方法来声明测试方法的参数?
java - 依赖方法和@Factory
我难住了。我已经阅读了许多在线主题,似乎无法找到我正在寻找的解决方案。
我想要的是在一个循环中并行运行测试,这样一个测试生成数据,另一个测试使用数据。
我发现传入的 ITestContext 对于在测试之间存储测试数据很有用。但是,当使用 dependsOnMethod 时,所有数据生成测试都会在第一个依赖方法运行之前运行。
有没有办法指定 @Factory 和 @DataProvider 的组合来实现我想要的?
测试输出:
DataDependencyTest1 构造函数
字符串:默认测试名称
DataDependencyTest1 构造函数
字符串:字符串 1
DataDependencyTest1 构造函数
字符串:字符串 2
测试名称:Test_DependencyInjection_GenerateTestData
创建创建测试数据
字符串:字符串 1
将数据添加到当前测试上下文
测试名称:Test_DependencyInjection_GenerateTestData
创建创建测试数据
字符串:字符串 2
将数据添加到当前测试上下文
测试名称:Test_DependencyInjection_ExtractData
从测试上下文中提取数据
字符串:字符串 2
测试名称:Test_DependencyInjection_ExtractData
从测试上下文中提取数据
字符串:字符串 2
现在问题来了……
_ExtractData()
每次运行_GenerateTestData()
测试方法时,测试都会运行。但是,依赖性测试似乎只在循环的最后一次迭代中运行。
我如何制作这样的测试序列:
Test_DependencyInjection_GenerateTestData——使用“String1”
Test_DependencyInjection_ExtractData——使用“String1”
Test_DependencyInjection_GenerateTestData——使用“String2”
Test_DependencyInjection_ExtractData——使用“String2”
java - 在 TestNG 中为 DataProvider 的每个值运行多个方法
我有一堆使用 DataProvider 作为参数运行的 TestNG 测试。
我的跑步者看起来像这样:
因此,假设我有来自 Dataprovider 的两个参数(param1 和 param2),则测试按以下顺序执行:
有没有办法让它运行每个参数的所有测试用例。即,执行应该如下:
test1 和 param1 test2 with param1 test1 with param2 test2 with param2
java - 在 testng 中延迟加载数据提供者
我正在尝试为我的测试实现数据提供程序的延迟加载,但它不起作用。下面是我的工厂注释方法的代码片段:
实际输出:
通过 1 个迭代器实例 TF 实例创建:1 通过 2 个迭代器实例 TF 实例创建:2 通过 3 个迭代器实例 TF 实例创建:3 通过 4 个迭代器实例 TF 实例创建:4 [TestNG] 运行:命令行套件
通过 1 作为 DP 测试方法执行:DP1 拆除:1 通过 1 作为 DP 测试方法执行:DP1 通过 2 作为 DP 测试方法执行:DP2 拆除:2 通过 1 作为 DP 测试方法执行:DP1 通过 2 作为 DP 测试方法执行:DP2通过3作为DP测试方法执行:DP3拆解:3通过1作为DP测试方法执行:DP1通过2作为DP测试方法执行:DP2通过3作为DP测试方法执行:DP3通过4作为DP测试方法执行: DP4 拆解: 4
================================================= 命令行套件
总测试运行:10,失败:0,跳过:0
预期产出
通过 1 个迭代器实例 TF 实例创建:1 通过 1 作为 DP 测试方法执行:DP1 拆除:1 通过 2 个迭代器实例 TF 实例创建:2 通过 1 作为 DP 测试方法执行:DP1 通过 2 作为 DP 测试方法执行:DP2 撕裂Down:2通过3迭代器实例TF实例创建:3通过1作为DP测试方法执行:DP1通过2作为DP测试方法执行:DP2通过3作为DP测试方法执行:DP3 Tear Down:3通过4迭代器实例TF实例创建:4通过1作为DP测试方法执行:DP1通过2作为DP测试方法执行:DP2通过3作为DP测试方法执行:DP3通过4作为DP测试方法执行:DP4拆解:4 [TestNG]运行:命令行套件
================================================= 命令行套件
总测试运行:10,失败:0,跳过:0
这是 TestNG 实现中的错误还是 Factory 不支持延迟加载.. TIA
excel - 如何在 Selenium WebDriver 中使用 Java 和 TestNG 中的 DataProvider 读取 excel 表中的多组值
我对 Selenium WebDriver 相当陌生。我编写了代码来使用数据提供程序从 excel 表中读取登录凭据和值。它贯穿第一个设置数据(登录功能),完美地给了我绿色状态栏。
在我的应用程序中,登录后,我想通过从同一个 Excel 表中发送索引和选择(在管理方法中)来选择值,但我未能读取值。对于硬编码值,它工作正常。
谁能给我一个想法如何写它。用过的 Excel 表:
下面是我的代码:
}
testng - 如何保留数据提供者中的数据顺序?
情况:我有两个测试 a() 和 b()。使用“dependsOnMethods”参数使 b() 依赖于 a()。我对这两个测试都有不同的数据集。有没有办法确保在执行测试时保留数据的顺序?
例子:
我希望结果始终是 Google、Apple、Microsoft、Yahoo。或微软、雅虎、谷歌、苹果
但不是 Google、Yahoo、Microsoft、Apple 或 Google、Microsoft、Apple、Yahoo。
这意味着如果 test1 使用来自其数据提供者的第一组参数运行,则 test2 也应该使用来自其数据提供者的第一组参数运行。test1 的 dataprovider 中的第二组参数是否在第一组之前运行并不重要,只要第二个测试在运行第一组之前也使用其 dataprovider 中的第二组参数运行即可。有没有办法做到这一点?
刚刚意识到这可以通过使用 group-by-instances 参数来解决。(我在我的 testng xml 中找到了一个选项,因为我使用的是旧版本。)。我将尝试升级我的 testNg 并发布更新。
testng - 获取测试输入以测试服务层 CRUD 操作
我有一个服务层,其中包含将数据插入数据库、更新数据和从数据库删除数据的方法,这些方法调用 DAO 层来定义这些方法。在客户端包中,我有一个测试类,用于获取调用服务层的操作的用户输入。
我的服务类如下所示:
和测试类如下所示:
现在我想编写一个测试类来使用 TestNG 测试我的方法。我不知道如何使用@DataProvider
为插入操作提供输入以使用更多输入调用它一次。
java - 如何验证 dataprovider 是否为空?
我们如何验证我们得到的 dataprovider (dataProvider="DataSet_Sheet1") 是否为空。因此,我们将跳过该行并继续下一行。
因为如果我们编写了任何程序来从 Excel 表中获取数据并且它没有任何记录,那么运行完整的函数就没有意义了吗?
selenium-webdriver - @Configuration on 方法之前需要参数“browserType”,但尚未在 src\test\resources\testng.xml 中定义
在运行 Selenium 案例时,我希望 firefox 和 chrome 在同一个版本中。我的 testng.xml :
还有我的测试用例:
但我得到一个错误:
运行的时候,browserType=firefox,就通过了。但是当 browserType=chrome 时,它失败了。我不能同时使用@Parameters 和 DataProvider 吗?当我将案例更改为:
它通过了!为什么?谢谢。
java - 如何从csv文件将参数传递给testng中的数据提供者
我正在从 csv 文件中读取数据,我已经测试了该数据将作为输入。我希望它作为每组值的 tescase 运行。因为我正在使用数据提供程序问题是,它只使用最后一组数据,请帮助我调试代码
它只取最后一行 name3 id3 text3 并且只运行一次测试而不是三次。