【问题标题】:JMeter parallel running two threads not working with seleniumJMeter并行运行两个线程不使用硒
【发布时间】:2018-09-20 07:03:58
【问题描述】:

我有一个测试,我使用具有 2 个用户(线程数)的线程组和 1 秒的加速周期。尽管 2 个浏览器启动并加载网站(如预期的那样),但其中一个停止,一个继续工作。任何帮助表示赞赏。我正在使用带有 Selenium 2.53.1 和 JMeter 3.3 的 Firefox 43

这里是配置

【问题讨论】:

    标签: multithreading selenium jmeter selenium-firefoxdriver


    【解决方案1】:
    1. 很可能您的测试实现不是thread-safe,并且当 2 个线程尝试访问同一个 Selenium 会话时,JMeter 线程正在运行到 race condition

    2. Selenium WebDriver 本身 is not thread-safe 所以请确保每个 JMeter 线程都使用单独的专用 WebDriver 实例。

    3. 查看 jmeter.log 文件 - 在大多数情况下,它包含足够的信息来猜测 JMeter 测试故障的根本原因
    4. 您是否知道WebDriver Sampler 插件提供Selenium 与JMeter 的集成?您可以考虑切换到它或至少使用它的source code 作为参考

    【讨论】:

    • 1) 如果我没有在我的代码中明确使用线程,我不知道这怎么可能 2) 可能是这样,但这很奇怪,因为我不知道会是什么那么 jmeter 的作用,如果我的代码中有多个驱动程序,那么我可以从 eclipse 运行它/ 3)好吧,没什么可疑的 :( 4)我一定会看看
    【解决方案2】:

    添加一个同步计时器应该会有所帮助。 (看看文章 https://www.blazemeter.com/blog/using-jmeter-synchronizing-timer) 但是我只在您的图片中发现了一个我不太了解您所面临问题的请求。

    【讨论】:

    • 在图像中您可以看到定义了 2 个线程(用户),因此它应该同时运行两次相同的测试。我设法达到了这一点,(以便打开 2 个浏览器)但只有一个有效
    • 我认为您的设置不会使两个线程同时运行。当您将加速周期设置为 1 秒时,它只确保两个线程将启动1 秒但未同时启动请求。因此,同步定时器应该有助于解决这个问题。
    • 我不在乎它们是同时启动还是一个早一个晚(1 秒后)——我需要的是让它们保持并行运行。当我开始第一个测试并将启动周期设置为 1 秒时,我的第一个测试立即停止工作,只有第二个测试继续
    • 会不会是因为后面的代码像访问数据库一样,所以当其中一个使用资源时,另一个会停止?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    相关资源
    最近更新 更多