我需要为下一个案例找到解决方案。docker中有selenoid,它在容器中运行浏览器,测试应该在一些浏览器中并行运行。为了这个目标,我在Jenkins中创建了管道。所有的测试在浏览器上都是并行运行的,但是它们使用的是同一个工作空间,我时不时地会出错。我如何设置Jenkins或管道配置,让每个浏览器分支都有自己的工作区或其他东西来避免冲突。pipeline { agent any tools { maven 'MAVEN_HOME' } stages { stage('setup parameters'){ steps { script { properties([ parameters([ choice(choices:['chrome',' firefox','all'],name:'browser')])])} } } stage('clone code '){ steps { echo 'git' git分支:'feature/selenoid-integration',credentialsId:'......',url:我们的团队致力于为客户提供最优质的产品和服务。我们的团队致力于为客户提供最优质的产品和服务。我们的团队致力于为客户提供最优质的产品和服务。我们的团队致力于为客户提供最优质的产品和服务。我们的团队致力于为客户提供最优质的产品和服务。我们的团队致力于为客户提供最优质的产品和服务。{ bat 'mvn clean -Dbrowser.type=chrome test' },firefox:{ bat 'mvn clean -Dbrowser.type=firefox test' })} }}} }
2条答案
按热度按时间x4shl7ld1#
最常见的方法是使用Selenium Grid。您可以为每个浏览器设置不同的节点。(https://www.selenium.dev/documentation/grid/)
kyxcudwk2#
任何使用容器的解决方案,包括Selenoid和Selenium Grid都可以做到这一点。这是因为如果在容器中启动浏览器会话,它们没有累积状态:缓存、cookie、临时文件。因此,测试比没有容器更可靠。