PhantomJS:CI(Jenkins)服务器速度慢,但从开发者机器执行时速度更快(Windows)

时间:2015-03-03 06:29:36

标签: selenium jenkins phantomjs

我很难弄清楚为什么硒测试案例与phantomjs ghostdriver一起运行缓慢。当开发人员针对开发环境运行测试用例时,它运行得更快(需要1小时才能完成5个测试用例),但是当从jenkins运行时,需要4个小时。

我关闭了dev机器上的IPV6,也尝试切换到1.9.1版本,但是仍然没有改进所花费的时间。

Jenkins Machine

幻影:1.9.2 Jenkins服务器:RHEL 5.6 64位 JDK:1.7

开发者机器

操作系统:Windows 7 64位 JDK:1.7 幻影:1.9.2

有人可以帮忙吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

您是否在每个测试用例之后使用driver.quit()或phantom.exit(),因为phantomJS进程不会自动被杀死。如果不是那么它可能是减慢测试用例的原因。

答案 1 :(得分:0)

如果你的测试没有退出驱动程序,你的jenkins框会在一段时间内在内存中有很多打开的浏览器。

例如,每个开始的测试,然后在某处断言并死亡,留下一个未闭合的驱动程序。这些往往会在一段时间后累积起来。

根据您的测试框架......除了将每个测试包装在自己的try / catch块中之外,可能还有很好的解决方案。

py.test具有出色的夹具功能。您可以使用phantomjsdriver()fixture来为每个测试打开浏览器,然后在测试完成后(安全地或从False断言中止)它可以完成并关闭驱动程序。

psudocode示例:(py.test,python,selenium) @pytest.fixture def phantomdriver(request): driver = webdriver.phantomJS() def fin(): driver.close() request.addfinalizer(fin) 在这种情况下,每次使用此灯具的测试,无论它如何退出,最终都会调用finilizer fin()来关闭它。