繁体   English   中英

Jenkins使用chromedriver运行Selenium UI测试无法按预期方式运行,driver.quit有时不起作用

[英]Jenkins run selenium UI tests using chromedriver not work as expected, driver.quit sometimes doesn't work

我正在使用selenium-java 2.39.0,chromedriver 2.22在cent os 7中运行一堆硒UI测试。

所有测试用例都可以在终端命令行下并行运行(在testNG xml中设置了parallel =“ tests”),而chrome / chromedriver可以在所有测试用例完成后顺利且成功地退出。

但是,当我使用完全相同的测试脚本在jenkins 2.7.2(也尝试过较低版本的Jenkins,例如1.644)下运行相同的tet案例时,总是有一些chrome浏览器无法在测试案例和驱动程序完成后成功退出。退出被称为,逐渐会有很多chrome浏览器挂在那里。 以下快照是chrome浏览器如何挂在那里的示例:

谷歌浏览器没有响应

我确信jenkins在运行UI测试时会使用相同的外壳,相同的chromedriver和相同的硒,只是想知道为什么在命令行中运行这些测试用例时不会出现chrome / chromedriver挂起的问题,但是在jenkins中运行时会随机挂起? 顺便说一句,在Windows平台下的jenkins中运行的所有UI测试用例也是可以的,它仅在Cent OS 7计算机上的jenkins中发生。

我们在测试工作中遇到了类似情况。 我们还想利用TestNG并行化和Selenium Web驱动程序。 不幸的是,在启用任何TestNG并行模式时,管理每个测试类中的Web驱动程序生命周期或尝试使用持有Web驱动程序的静态类都无效。 即。 parallel="tests|classes|methods" 与活动的TestNG线程和实例化的Web驱动程序匹配的被测类和方法在工作时根本难以操作。 我们花更多的时间弄清楚Web驱动程序的生命周期,而不是真正的Web应用程序测试。 我们找到了更好的方法。 我们有一个开源项目,该项目抽象了用于TestNG / Selenium测试的Web驱动程序生命周期管理。 它适当地支持每种TestNG并行模式,从而为每个被测类提供正确且有效的Web驱动程序。 它极大地帮助了我们的测试工作。 也许在您的情况下也可能有用。 或者,如果没有其他让您了解如何以不同的方式解决它的想法。 我们尚未与Jenkins集成,但这可能会有所帮助。 该项目在GitHub上的名称为Concurrent Selenium TestNG(COSENG) 亲切的问候。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM