2

这是我的 JMeter 设置:

  • 测试网络服务
  • 分布式测试,1 个 master,20 个 slave(如果我们决定使用 blazemeter,可能有 100 个)
  • 一个包含测试数据的文件,每行整数参见 [1] 示例
  • 一个有 20 个用户的线程组(20x20=400 个请求)
  • CSV 数据集配置,带\n分隔符

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

23
8677
10029
29957
1001

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

4

2 回答 2

1

如果您确实使用 BlazeMeter,它们有一个内置函数可以做到这一点。在高级选项中有一个复选框,上面写着:

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

于 2014-05-14T16:24:26.833 回答
0

你看过分割命令吗?

$ 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
于 2016-08-02T18:13:00.163 回答