如果在Jenkins上中止测试,Selenium驱动程序实例将持续存在
好的,所以我想知道如果通过jenkins中止测试,如何让我的驱动程序/浏览器会话正确退出。在本地,如果我运行测试并中止测试,浏览器将正常退出。然而,通过詹金斯,这并没有发生。如果我在selenium网格上运行测试的测试阶段中止作业,浏览器将保持打开状态,导致节点仍显示为正在使用,因为它没有检测到中止的作业本应终止其浏览器会话 我一直在胡闹黄瓜钩子,但我越想,我不确定我是否可以用钩子处理这个问题,因为在本地运行时,这种行为不会发生。我现在认为这需要在selenium网格或jenkins上设置 我最理想的解决方案是使用一个如下所示的钩子,它可以判断会话是否正在远程运行,并在会话中止/通过/失败时终止会话。但是如果通过jenkins或selenium网格设置有任何解决方案,那也太好了!谢谢大家!如果在Jenkins上中止测试,Selenium驱动程序实例将持续存在,selenium,jenkins,protractor,selenium-grid,cucumberjs,Selenium,Jenkins,Protractor,Selenium Grid,Cucumberjs,好的,所以我想知道如果通过jenkins中止测试,如何让我的驱动程序/浏览器会话正确退出。在本地,如果我运行测试并中止测试,浏览器将正常退出。然而,通过詹金斯,这并没有发生。如果我在selenium网格上运行测试的测试阶段中止作业,浏览器将保持打开状态,导致节点仍显示为正在使用,因为它没有检测到中止的作业本应终止其浏览器会话 我一直在胡闹黄瓜钩子,但我越想,我不确定我是否可以用钩子处理这个问题,因为在本地运行时,这种行为不会发生。我现在认为这需要在selenium网格或jenkins上设置 我最
this.registerHandler('After', function (event, done) {
// Some code to clear browser session
done();
});
这基本上与在本地中止执行之后想要做一些事情是一样的,jenkins对网格一无所知,它只构建代码
考虑根据前一个任务的执行结果执行单独的任务,在该任务中,您可以通过终止阻塞的进程并可能重新启动网格本身来清理您的环境。这基本上与您在本地中止执行后想要做些什么相同,jenkins对网格一无所知,它只生成代码
考虑使用单独的作业,该作业将根据前一个作业的执行结果来执行,在该作业中,您可以通过杀死阻塞的进程并可能重新启动网格本身来清理环境。我认为您不需要在客户端代码中做任何额外的工作 selenium网格有三个参数专门用于此类清理
秒数:运行WebDriver命令时允许浏览器会话挂起的秒数(例如:driver.get(url))。如果在WebDriver命令仍在处理时达到超时,则会话将退出。最小值为60。未指定、零或负值表示无限期等待-browserTimeout
默认值:0
以毫秒为单位:指定集线器轮询运行代理的超时(即挂起)线程的频率。还必须指定超时选项。-cleanUpCycle
(5秒)默认值:5000
,-timeout
秒数:指定服务器自动终止在过去X秒内没有任何活动的会话之前的超时时间。然后,测试槽将被释放以供另一个测试使用。这通常用于处理客户端崩溃。对于网格中心/节点角色,还必须设置cleanUpCycle-sessionTimeout
默认值:1800
希望有帮助 我认为您不需要在客户端代码中做任何额外的操作 selenium网格有三个参数专门用于此类清理
秒数:运行WebDriver命令时允许浏览器会话挂起的秒数(例如:driver.get(url))。如果在WebDriver命令仍在处理时达到超时,则会话将退出。最小值为60。未指定、零或负值表示无限期等待-browserTimeout
默认值:0
以毫秒为单位:指定集线器轮询运行代理的超时(即挂起)线程的频率。还必须指定超时选项。-cleanUpCycle
(5秒)默认值:5000
,-timeout
秒数:指定服务器自动终止在过去X秒内没有任何活动的会话之前的超时时间。然后,测试槽将被释放以供另一个测试使用。这通常用于处理客户端崩溃。对于网格中心/节点角色,还必须设置cleanUpCycle-sessionTimeout
默认值:1800
希望有帮助 这个解决方案的唯一问题是,我们有多个团队针对网格运行测试。我不想让另一项工作扼杀运行测试,重新启动网格可以做到这一点。这个解决方案的唯一问题是,我们有多个团队针对网格运行测试。我不想让另一项工作扼杀正在运行的测试,重新启动网格可以做到这一点。谢谢你的回复!所以在网格设置中,我们有一个browserTimeout:16000,cleanUpCycle:5000,timeout:19000。我们