当Selenium测试必须执行底层RESTAPI时,我如何避免并行运行Selenium测试的冲突?

当Selenium测试必须执行底层RESTAPI时,我如何避免并行运行Selenium测试的冲突?,selenium,jenkins,selenium-grid,jbehave,thucydides,Selenium,Jenkins,Selenium Grid,Jbehave,Thucydides,我有一个web应用程序,需要在多个环境中的多个浏览器中进行测试(例如,Windows和Linux*中的Chrome、Firefox和Internet Explorer*(*Internet Explorer除外)) 测试是使用JBehave、Selenium和SerenityBDD(Thucydides))用Java编写的。这些测试使用底层RESTAPI,测试是否可以使用UI成功创建和删除对象 我正在使用Selenium网格,并希望在并行节点上运行测试;然而,令人担忧的是,当测试运行底层REST

我有一个web应用程序,需要在多个环境中的多个浏览器中进行测试(例如,Windows和Linux*中的Chrome、Firefox和Internet Explorer*(*Internet Explorer除外))

测试是使用JBehave、Selenium和SerenityBDD(Thucydides))用Java编写的。这些测试使用底层RESTAPI,测试是否可以使用UI成功创建和删除对象

我正在使用Selenium网格,并希望在并行节点上运行测试;然而,令人担忧的是,当测试运行底层RESTAPI时,可能会发生冲突

是否可以将参数作为运行测试的Jenkins作业配置中的参数传递给测试,从而使测试中的参数与执行测试的节点略有不同?(例如,在CHROME上创建了一个名为“MYOBJECT-CHROME”的对象,而在FIREFOX上创建了一个名为“MYOBJECT-FIREFOX”的对象,这意味着可以避免任何REST API冲突?

如果被测软件(SUT)允许多线程REST API请求,则无需担心

意味着任何冲突都可以避免

测试并发请求应该设置为fixture,这意味着每个原子测试都应该设置/删除所需的it测试数据,或者返回处于测试(SUT)状态的软件。这里一个好的候选人是一个好的候选人。它将允许您在Jenkins中添加它作为一个步骤,并且可以减少创建所有这些测试对象的开销

如果您仍然需要,您可以使用BDD中的suite@tags来定义将执行哪一组测试