【发布时间】:2013-09-10 19:41:50
【问题描述】:
我正在测试一个创建用户的 REST API。此 API 使用 POST 方法并需要 json 有效负载。我正在为我的请求使用 HTTP 请求采样器,它接受请求有效负载的文件。我遇到的问题是该请求为除第一个线程之外的所有命中返回 409 Conflict,因为在执行第一个线程后,用户已经存在。有没有办法告诉 JMeter 在每个请求之前选择不同的有效负载?为此,我如何组织我的请求负载?
【问题讨论】:
我正在测试一个创建用户的 REST API。此 API 使用 POST 方法并需要 json 有效负载。我正在为我的请求使用 HTTP 请求采样器,它接受请求有效负载的文件。我遇到的问题是该请求为除第一个线程之外的所有命中返回 409 Conflict,因为在执行第一个线程后,用户已经存在。有没有办法告诉 JMeter 在每个请求之前选择不同的有效负载?为此,我如何组织我的请求负载?
【问题讨论】:
在您的有效负载文件中,您可以将您的用户名与 jMeter 函数连接起来,使其独一无二:
"username": "user ${__time()}"
您可以使用 __UUID 甚至 __counter 函数来代替时间函数。 您还可以将这些功能组合在一起。 看看这里:
https://www.blazemeter.com/blog/apache-jmeter-functions-introduction
【讨论】:
您必须参数化您的测试计划并使用 CSV 数据集配置来使用 csv 文件中的数据。我创建了一个 beginners screen cast to explain how to use csv data set config 。
正如您所提到的,您不能重复使用相同的数据,您将不得不创建一个足够大的 csv 来匹配您的并发用户需求,或者只使用一次控制器以不再重播这些请求,这将创建重复的用户。
【讨论】: