Testing 同时运行多个Selenium测试
我想同时运行多个Selenium测试(在Jenkins服务器上) 它目前一次只运行一个测试,因为ChromeDriver似乎通过一个特殊的端口进行通信。因此,我想我必须通过Selenium向ChromeDriver传递一些端口设置,以启动多个测试 遗憾的是,Selenium网站对于该主题是空的: 从我的观点来看,如果测试在本地运行或在Jenkins上运行,则没有区别,问题是相同的。我们需要以某种方式配置ChromeDriver。问题是怎么做Testing 同时运行多个Selenium测试,testing,selenium,selenium-chromedriver,Testing,Selenium,Selenium Chromedriver,我想同时运行多个Selenium测试(在Jenkins服务器上) 它目前一次只运行一个测试,因为ChromeDriver似乎通过一个特殊的端口进行通信。因此,我想我必须通过Selenium向ChromeDriver传递一些端口设置,以启动多个测试 遗憾的是,Selenium网站对于该主题是空的: 从我的观点来看,如果测试在本地运行或在Jenkins上运行,则没有区别,问题是相同的。我们需要以某种方式配置ChromeDriver。问题是怎么做 任何人都有一些想法或建议,可以在哪里查看,需要哪些文
任何人都有一些想法或建议,可以在哪里查看,需要哪些文件才能完成这项工作?您需要的是 网格允许您:
- 通过在多台机器上分布测试进行扩展(并行执行)
- 从一个中心点管理多个环境,从而可以轻松地针对多种浏览器/操作系统组合运行测试
- 例如,通过允许您实现自定义挂钩以利用虚拟基础设施,最大限度地减少网格的维护时间
不过设置起来很容易;) 您可以非常轻松地在本地运行chromedriver的多个实例,只需实例化多个驱动程序对象,chromedriver就会将配置文件分开,并找到一个单独运行的端口 下面是一个链接,指向可以使用TestNG和Maven运行多个测试的示例: 只需克隆上述项目并在命令行中运行以下命令:
mvn verify -Pselenium-tests -Dbrowser=chrome -Dthreads=2
它利用了TestNG管理线程池的能力,并将在指定的情况下打开多个实例。您可以使用jUnit做同样的事情,但是您需要编写一个定制的测试运行程序来将测试启动到各个线程中
如果您决定使用gradle,它可以为您管理TestNG和jUnit的线程池,而且很多人更喜欢它而不是maven。这是一个老问题,但对于仍在阅读的人来说,在不使用网格的情况下并行运行多个Selenium WebDriver实例是非常有可能的。我已经使用Chrome、FireFox和PhantomJs(最多5个)成功地测试了这一点。每个WebDriver实例都使用一个独立的上下文,因此会话冲突不应该成为问题。不过,要注意服务器端冲突,这取决于您网站的要求 对于NUnit用户,NUnit 3.2.1现在有一个“TestContext.Current.WorkerId”属性,允许您为每个NUnit工作者隔离一个WebDriver实例
- 在同一台机器上运行多个浏览器通常会影响性能,因此请注意不要使用太多的浏览器实例,否则实际上可能会增加测试时间李>