【问题标题】:Jmeter master-slave's issuesJmeter主从的问题
【发布时间】:2017-08-14 11:59:01
【问题描述】:

我在主从模式下遇到一个问题,我们有一个自己的jar来测试后创建一些文件,但是当我们在主从模式下运行测试时,每个从站都会创建一个文件,但我们只需要一个master 中的摘要文件。

有没有办法可以代替主从模式,让我们用一台jmeter服务器测试2000~5000个线程?或更改某些设置以使文件仅在 master 中创建?

【问题讨论】:

  • 既然所有的slave都和master在同一个网络上(或者至少master可以访问所有的em),为什么不创建一个所有slave都可以​​访问的共享文件,并从不同的slave中追加数据呢? slaves 以及时间戳和机器名等唯一信息(如果您想确定数据的来源和时间,这只是为了您的方便)?或者,如果您觉得在这种情况下会出现死锁,您总是可以在测试结束时将所有文件组合在一起,使用 JSR223 或 Beanshell 将所有文件合并到主机中的一个公共文件中
  • 既然您在测试后使用自己的 jar 来创建文件,为什么不让 jar 在测试后写入相同的公共位置呢?它会比 JSR223 或 Beanshell 更容易
  • 是的,你是对的,现在我正在尝试更改基本代码!
  • 太棒了..如果有帮助请接受答案..

标签: jmeter master-slave


【解决方案1】:

JMeter 只是在所有从属设备中执行相同的测试。因此,如果测试旨在执行此操作,所有从属设备都将尝试按照您所描述的那样创建文件。

您可以为特定机器使用If Controller 来执行此操作。

If Controller ["master"=="${__machineName}"]
     logic to create the file

【讨论】:

  • 感谢您的专业解答和建议,有点迷茫,我同意我们可以使用if控制器创建文件,但似乎这种方式只收集本服务器中的数据,例如,一个插件-in 用来记录正在运行的线程数,所以插件只会记录本机线程,不会记录所有线程吧?
【解决方案2】:

我在主从模式下遇到问题,我们有一个自己的 jar 测试后创建一些文件,但是当我们在主从中运行测试时 mode,每个slave会创建一个文件,但是我们只需要一个summary文件 在主人。

由于所有从机都可以访问主机,您可以创建一个公共共享文件,在该共享文件中,从机可以根据收到的数据进行条目。这可以通过两种方式完成:

  1. 您可以使用 JSR223 采样器或 Beanshell 采样器将文件写入公共位置,从而只有一个文件的主副本
  2. 您可以修改您现在正在使用的 JAR 来完成相同的工作

有没有办法可以代替主从模式,让我们用一个jmeter 服务器测试2000~5000个线程?或更改一些设置以使 文件只在master中创建?

没有。这目前不是一个可行的选项,因为已上传的 JAR 将适用于所有从机,因此将创建文件的多个副本。

此外,如果您的主机可以生成 2000-5000 个线程,我认为您一开始就不会进行分布式负载测试。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 2021-07-28
    相关资源
    最近更新 更多