12

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

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

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

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

6 回答 6

13

开始的好点是将您的初始订单值放入用户定义的变量中

给定开始顺序为“5247710017785924”,您需要创建一个“ordernumber”变量并将其值设置为 5247710017785924。

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

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

并将您的 HTTP 采样器路径中的 ordernumber 设置为

/my-service/v1/Customer/order/${ordernumber}
于 2013-10-31T14:23:33.133 回答
7

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

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

HTTP 请求

用户参数

于 2018-11-20T20:28:09.867 回答
4

使用 JMeter Counter组件来增加变量。

于 2013-10-31T05:56:18.990 回答
3

这个问题与路径参数有关,其中订单号的值在每个连续请求中递增 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

于 2017-11-07T14:10:44.300 回答
2

您可以使用 JMeter 计数器:

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

然后您可以使用导出的变量名称作为路径参数:/my-service/v1/Customer/order/${ordernumber}

于 2020-12-15T15:58:53.900 回答
1

我使用了一个BeanShell PreProcessor来生成一个 id

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

然后使用路径Http Request

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

答对了!!!

于 2020-07-17T04:16:36.407 回答