【问题标题】:JMETER: how to create a group of N threads where N is the number of lines in a fileJMETER:如何创建一组 N 个线程,其中 N 是文件中的行数
【发布时间】:2016-04-06 16:27:42
【问题描述】:

我有以下测试计划:

我希望 csv 文件的每一行都有 1 个线程。

我怎样才能实现它?

【问题讨论】:

  • for(....) 循环听起来很熟悉?
  • 你能详细说明一下吗?在纯 Java 中,您只需 FIles.lines().parallel(),但您提到 jmeter...
  • @Xoce 웃 Пepeúpa 它应该并行执行
  • @fge 是的,我需要 jmeter 的解决方案
  • 您是在问如何创建一组 N 个线程,其中 N 是文件中的行数?

标签: java csv jmeter performance-testing threadgroup


【解决方案1】:

这是可能的,但您需要在 CSV 文件中 jmeter 启动之前计算行数,例如:

  1. 在 JMeter 中使用 __P() 函数定义“线程数”

    ${__P(threads,)}
    
  2. 您可以通过-J 命令行参数传递threads 属性值,例如

    jmeter -Jthreads=60 ....
    
  3. 您可以使用操作系统命令来计算 CSV 文件中的行数,例如:

    • 对于 MS Windows,使用 Xoce 웃 Пepeúpa 建议的“for”循环,例如创建 runtest.bat 文件,例如:

      setlocal EnableDelayedExpansion
      set "cmd=findstr /R /N "^^" PATH_TO_YOUR_FILE.CSV | find /C ":""
      
      for /f %%a in ('!cmd!') do set threads=%%a
      
      jmeter.bat -Jthreads=%threads% -n -t test.jmx ...
      
    • 对于 Linux/Unix,您可以使用 wcawk 命令组合并运行 JMeter,如下所示:

      ./jmeter -Jthreads="$(wc -l PATH_TO_YOUR_FILE.CSV | awk {'print $1'})" -n -t test.jmx
      

理论上Linux方式应该也适用于OS X。

有关 JMeter 属性和使用它们的方式的更多信息,请参阅 Apache JMeter Properties Customization Guide

【讨论】:

  • 在我看到的日志中:jmeter.engine.StandardJMeterEngine:启动线程组:1:线程组 jmeter.engine.StandardJMeterEngine:为组线程组启动 0 个线程。 jmeter.engine.StandardJMeterEngine:线程将继续出错 jmeter.threads.ThreadGroup:启动线程组编号 1 线程 0 加速 0 perThread NaN delayStart=false
猜你喜欢
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 2016-03-20
  • 2022-01-11
  • 2016-11-06
  • 2011-07-03
相关资源
最近更新 更多