用于Jmeter中REST服务测试的可变路径参数

时间:2013-10-30 21:49:36

标签: java rest jmeter

我正在测试具有路径参数的RESt服务。

/my-service/v1/Customer/order/{ordernumber}

我想为每个请求将数字增加1。如何在Jmeter中实现这一目标?直到现在我已经传递了一个固定的路径参数,因此我们的测试结果只有一个输入参数。

/my-service/v1/Customer/order/5247710017785924

7 个答案:

答案 0 :(得分:10)

开始的好处是将您的初始订单值放入User Defined Variable

如果开始订单为“5247710017785924”,则需要创建“ordernumber”变量并将其值设置为5247710017785924.

在每个请求之后,您可以通过使用以下代码将BeanShell后处理器添加到HTTP Sampler来增加变量值:

long ordernumber = Long.parseLong(vars.get("ordernumber"));
ordernumber++;
vars.put("ordernumber",String.valueOf(ordernumber));

并将HTTP Sampler路径中的ordernumber设置为

/my-service/v1/Customer/order/${ordernumber}

答案 1 :(得分:2)

使用JMeter Counter组件增加变量。

答案 2 :(得分:2)

此问题与路径参数相关,其中订单号的值在每个连续请求中递增1。但我遇到了一个情况,我得到了一个订单号列表,我不得不请求这些订单号。所以,我将回答这个问题,这个解决方案可以应用于两个场景中。

我所做的是将所有参数路径放在CSV文件中,如下所示 -

/my-service/v1/Customer/order/5247710017785924
/my-service/v1/Customer/order/5247710017785976
/my-service/v1/Customer/order/5247710017785984
/my-service/v1/Customer/order/5247710017785991

然后我遍历CSHTTPle中的路径列表并向服务器发出http请求。要知道如何遍历CSV文件并在Jmeter中发出http请求,您可以查看以下链接:

https://stackoverflow.com/a/47159022/5892553

答案 3 :(得分:2)

没有一个解决方案对我有用。这是我所做的

  1. 如下所示定义HTTP请求,并将路径/api/v2/state/find/${id}添加到请求中
  2. 右键单击HTTP request --> Preprocessor -> User Parameters ->Add variable -> input id and it's value
  3. 启动HTTP请求,这应该可以工作

HTTP Request

User Parameters

答案 4 :(得分:1)

我使用了 BeanShell PreProcessor 来生成ID

vars.put("id", UUID.randomUUID().toString());

然后使用路径 Http Request

/api/v1/event/${id}/

宾果!!

答案 5 :(得分:0)

请参阅建议使用用户参数将客户或订单ID放入API的贡献者。这是可行的,但是除非有一种批量加载用户的方式,否则无法针对大量数据进行扩展。如果您只想输入几个(最多可能是十个),则很有用。

答案 6 :(得分:0)

您可以使用JMeter计数器:

  1. 右键单击您的线程组(在“测试计划”下)
  2. 选择添加–>配置元素–>计数器
  3. 设置起始值(0),增量(1),最大值,导出的变量名(“ ordernumber”)

然后可以将导出的变量名称用作路径参数: / my-service / v1 /客户/订单/ $ {ordernumber}