我在不同浏览器中使用 TestNG 并行运行 Selenium 测试 个案。 (用途:Selenium-Grid) 我想在不同的浏览器中使用不同(相同的变体)数据执行相同的测试用例。 例如。在不同浏览器上“注册”的情况下,不能使用相同的数据。一旦会员在网站上注册,就无法再次注册。
需求: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
答案 0 :(得分:0)
dp的目的就是做到这一点。使用不同的数据运行一组步骤。 您在3个浏览器中运行测试用例并使用3个数据。因此,每个浏览器将与3个数据中的每一个一起运行。这是预料之中的。
如果您希望一个数据应该转到一个浏览器,那么浏览器也应该作为数据提供者的一部分传递。 因此,data1与browser1,data2与browser2和data3与浏览器3 - 这将确保每个浏览器运行一个数据。
在您的流程中,您似乎正在测试注册三次。无论你提到什么,设计似乎都是错误的。