【发布时间】:2013-11-10 17:54:27
【问题描述】:
我正在测试具有路径参数的 REST 服务。
/my-service/v1/Customer/order/{ordernumber}
我想为每个请求将数字增加 1。如何在 Jmeter 中实现这一点?到目前为止,我一直在传递一个固定的路径参数,因此我们的测试结果只有一个输入参数。
/my-service/v1/Customer/order/5247710017785924
【问题讨论】:
我正在测试具有路径参数的 REST 服务。
/my-service/v1/Customer/order/{ordernumber}
我想为每个请求将数字增加 1。如何在 Jmeter 中实现这一点?到目前为止,我一直在传递一个固定的路径参数,因此我们的测试结果只有一个输入参数。
/my-service/v1/Customer/order/5247710017785924
【问题讨论】:
最好的开始是将您的初始订单价值放入User Defined Variable
假设起始订单为“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}
【讨论】:
使用 JMeter Counter 组件来增加变量。
【讨论】:
这个问题是路径参数相关的,其中订单号的值在每个连续的请求中增加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 请求,您可以查看此链接:
【讨论】:
您可以使用 JMeter 计数器:
然后您可以使用导出的变量名称作为路径参数: /my-service/v1/Customer/order/${ordernumber}
【讨论】:
我使用了一个BeanShell PreProcessor来生成一个id
vars.put("id", UUID.randomUUID().toString());
然后使用路径Http Request
/api/v1/event/${id}/
宾果游戏!!!
【讨论】: