如何在jmeter中为每个线程发送唯一数据

bag*_*gui 5 java multithreading jmeter load-testing

我正在使用jmeter测试我的REST API为10000点击,其中每个http命中将在DB中存储一些数据.我遵循了以下测试计划

在此输入图像描述

我正在并行运行10个线程,每个加速时间为20秒,并且循环1000以实现相同的效果.

在此输入图像描述

但这里的问题是我的线程没有采取独特的数据集.而我的后端HTTP URL期望每个http匹配的唯一字符串.

现在我尝试了以下方法.

  1. 单个CSV数据集配置具有10000个唯一值,并且线程组中的所有线程都在读取相同的数据.

  2. 为每个线程设置不同的CSV数据,并使用文件名$ {__ threadNum} .csv为线程分配csv文件

  3. 使用jmeter _RandomString方法在运行时为每个http命中生成随机字符串,在http post body中我正在传递

{"tenantName":"$ { __ RandandString(15,abcdefghijklmnofqrst1234567#@#%^&*,)}"}

  1. 使用BeanShell预处理器调用java方法并始终生成唯一模式获取HTTP请求采样器.

现在上述方法都不适合我.在一段时间后运行测试计划时,2个线程正在尝试使用相同的数据并点击我的HTTP URL.我从http响应中收到冲突错误.我的错误计数不断增加.

现在我真的不明白这两个人试图用同样的数据打击http怎么样?

有人可以解释一下这个问题并帮我设置正确的测试计划配置.

编辑:

所有线程的CSV数据集配置:

在此输入图像描述

HTTP请求:

在此输入图像描述


使用CSV数据集添加测试计划:

在此输入图像描述

UBI*_*ACK 1

CSV 方法是好的,但是你如何配置 csv 数据集并将其放入计划中?

确保将“EOF 时回收”设置为 false 以确保不重复使用任何数据。

你能展示一下这个吗?

还可以显示 HTTP 请求内容吗?

2015 年 9 月 1 日编辑:

  • 您的csv配置未声明应包含tenantName的variableNames

另外 ib fileName 路径字段将 \ 替换为 \ 或 /