【问题标题】:Selenium Test Execution in "Parallel" using 'TestNG'使用“TestNG”在“并行”中执行 Selenium 测试
【发布时间】:2014-04-04 00:57:02
【问题描述】:

我在不同的浏览器中使用 TestNG 并行运行 Selenium Test cases。 (使用:Selenium-Grid) 我想在不同的浏览器中使用不同的(相同的变化)数据执行相同的测试用例。 例如。如果通过不同的浏览器“注册”,则不能使用相同的数据。就像会员在一个网站上注册过一样不能再注册。

Req:在 3 个浏览器 IE,FF,Chrome 中并行注册测试用例。我正在使用

@DataProvder(name="RegData",parallel=true) 
public Object[][] getRegData() { 
Object[][] data = {{"Max","Male","Italy"},{"James","Male","France"},{"Alex","Male","Spain"}}; 
return data; 
}

此数据用作测试数据。但是发生的情况是每个测试用例都执行了 3 次。每个“数据”实例的每个测试用例。所以 3 个测试用例 x 3 个“数据”条目 = 9 次执行。每个数据实例只能使用一次。总执行次数应该只有 3

【问题讨论】:

  • 您可以通过 DataProviders 和使用 TestNG 的并行选项进行尝试。据我所知......TestMethod 将被调用多次,因为它是并行的......它将使用不同的数据集执行......不确定它是否有帮助......
  • 尝试了“并行”数据提供程序以及测试,但没有太大帮助。请求:在 3 个浏览器 IE、FF、Chrome 中并行注册测试用例。我正在使用 @DataProvder(name="RegData",parallel=true) public Object[][] getRegData(){ Object[][] data = { {"Max","Male","Italy"},{"James","Male","France"},{"Alex","Male","Spain"}};返回数据; } 此数据用作测试数据。但是发生的情况是每个测试用例都执行了 3 次。每个“数据”实例的每个测试用例。所以 3 个测试用例 x 3 个“数据”条目 = 9 次执行。每个数据实例只能使用一次。总执行次数应该只有 3

标签: selenium testng


【解决方案1】:

dp 的目的就是要做到这一点。使用不同的数据运行一组步骤。 您正在 3 个浏览器和 3 个数据中运行测试用例。因此,每个浏览器都将使用 3 个数据中的每一个运行。这是意料之中的。

如果您希望将一个数据发送到一个浏览器,那么该浏览器也应该作为数据提供者的一部分传递。 因此 data1 与 browser1、data2 与 browser2 和 data3 与浏览器 3 - 这将确保每个浏览器运行一个数据。

在您的流程中,您似乎正在测试注册三次。无论您提到什么,设计似乎都不正确。

【讨论】:

  • 这就是我所说的 dataprovider 没有解决我的要求。我应该如何进行?我只想在每个浏览器中并行传递一个数据一次。是否可以通过 dataprovider 选项或它的替代方案? ——
  • 你是如何在不同的浏览器上触发的?
  • 我在 testng.xml 中添加了不同的浏览器功能作为参数。作为我正在测试的 3 个浏览器,我创建了 3 个 。但我不想通过这个 testng.xml 传递数据,它将来自一些数据提供者,如 excel。
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2019-03-18
  • 2017-07-22
  • 2016-04-25
  • 2020-05-21
  • 2021-10-22
  • 1970-01-01
相关资源
最近更新 更多