我很难弄清楚为什么硒测试案例与phantomjs ghostdriver一起运行缓慢。当开发人员针对开发环境运行测试用例时,它运行得更快(需要1小时才能完成5个测试用例),但是当从jenkins运行时,需要4个小时。
我关闭了dev机器上的IPV6,也尝试切换到1.9.1版本,但是仍然没有改进所花费的时间。
操作系统:Windows 7 64位 JDK:1.7 幻影:1.9.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()
来关闭它。