有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Selenium与Jbehave和Chromedriver挂起或崩溃

通过5个月的硒测试,我们遇到了一些主要的稳定性问题

有时,跑步看起来像冻结了一样。在故事超时之前,控制台和浏览器都不会说话。 故事超时后,没有其他事情发生,以下故事不会启动

其他时候,Chrome cashes会生成一个核心转储文件,故事结束,后续的故事继续

有了这两个问题,在我们正在发布的60个故事中,只有大约20个故事被报道,其他故事没有被执行(多亏了挂起)

我们还有另一个项目要做,故事更小、更少,而且使用的步骤也更有限。有时它运行得很好,但大多数时候,遇到了与我们的主项目相同的问题

经过几天的尝试和研究,我们没有发现任何结论,这就是为什么我来到这里,希望有人遇到同样的问题,并得到一些关于它的信息来分享

我们尝试在多个Docker上运行,以减少每个vm的费用,但我们遇到了相同的问题(60个故事中只有12个成功结束)

我们的大部分运行都是在centos虚拟机下的centos docker上进行的,但在windows 7和eclipse上也会发生同样的情况

我们目前正在使用Chromedriver 2.20、Selenium 2.48.0、Jbehave 4.0.5、Jbehave web Selenium 3.6-beta-2。 我们尝试了其他版本,但没有更好的

我们的测试是通过一个带有依赖项的jar启动的,我们添加了Ashot 1.5.2(https://github.com/yandex-qatools/ashot)和extent 2.40.2(http://relevantcodes.com/extentreports-for-selenium/

谢谢你的关注,我希望没有什么被遗忘


共 (1) 个答案

  1. # 1 楼答案

    我遇到了一个类似的问题,并追踪到了一个时间问题——当我调试时,问题没有发生。 设置gradle以调试运行测试的JVM。 构建的示例代码段。端口5099(而不是默认的5005)的gradle文件是:

    test {
        systemProperties 'jbehaveOutputDir': '../jbehave'
        systemProperties System.getProperties()
        jvmArgs=["-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5099"]
    }
    

    在报告/日志输出中检查问题发生的确切位置,然后在问题发生的部分添加断点

    显然,当事物相互依赖时,当您在steps类中不处理这种依赖时,JBehave不会抱怨

    在我的示例中,进行了一个API调用来创建一个对象,然后直接执行下面的步骤,假设该对象在那里,而没有进行检查,这在docker实例中显然不是这样,在本地设置中是这样的

    我希望这对任何人都有帮助