JMeter用于分布式测试的测试数据

时间:2014-05-14 11:24:34

标签: jmeter distributed-testing

这是我的JMeter设置:

  • 测试网络服务
  • 分布式测试,1个主人,20个奴隶(如果我们决定使用火焰计,可能为100个)
  • 包含testdata的文件,每行的整数参见[1]以获取示例
  • 包含20个用户的线程组(20x20 = 400个请求)
  • CSV数据集配置,\n为分隔符

[1] testdata文件示例,每行代表一个id,用作Web服务参数:

23
8677
10029
29957
1001

我的问题是:如何在从属设备中分配数据,以便每台机器将使用测试文件的不同部分并以随机方式选择测试数据项?一种方法是将测试文件拆分成分离部分,但是可以使它更具动态性吗?我正在考虑“机器x将读取0-20行,机器y 21-40等”。在this question的答案中,提到CSV是本地的,但是可以动态读取csv的不同行吗?

2 个答案:

答案 0 :(得分:1)

如果您使用BlazeMeter,它们具有内置功能,可以完成此操作。在高级选项中,有一个复选框,上面写着:

[]将任何CSV文件拆分为唯一文件,并在加载服务器之间分发。

答案 1 :(得分:0)

你看过split命令吗?

$ split --help
Usage: split [OPTION] [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'.  With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   use suffixes of length N (default 2)
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes  use numeric suffixes instead of alphabetic
  -l, --lines=NUMBER      put NUMBER lines per output file
      --verbose           print a diagnostic to standard error just
                            before each output file is opened
      --help     display this help and exit
      --version  output version information and exit

您可以执行以下操作:

split -l 20 filename