我正在测试具有路径参数的 REST 服务。
/my-service/v1/Customer/order/{ordernumber}
我想为每个请求将数字增加 1。如何在 Jmeter 中实现这一点?直到现在我一直在传递一个固定的路径参数,因此我们的测试结果只有一个输入参数。
/my-service/v1/Customer/order/5247710017785924
开始的好点是将您的初始订单值放入用户定义的变量中
给定开始顺序为“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}/
答对了!!!