我正在测试具有路径参数的RESt服务。
/my-service/v1/Customer/order/{ordernumber}
我想为每个请求将数字增加1。如何在Jmeter中实现这一目标?直到现在我已经传递了一个固定的路径参数,因此我们的测试结果只有一个输入参数。
/my-service/v1/Customer/order/5247710017785924
答案 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请求,您可以查看以下链接:
答案 3 :(得分:2)
没有一个解决方案对我有用。这是我所做的
/api/v2/state/find/${id}
添加到请求中HTTP request --> Preprocessor -> User Parameters ->Add variable -> input id and it's value
答案 4 :(得分:1)
我使用了 BeanShell PreProcessor 来生成ID
vars.put("id", UUID.randomUUID().toString());
然后使用路径 Http Request
/api/v1/event/${id}/
宾果!!
答案 5 :(得分:0)
请参阅建议使用用户参数将客户或订单ID放入API的贡献者。这是可行的,但是除非有一种批量加载用户的方式,否则无法针对大量数据进行扩展。如果您只想输入几个(最多可能是十个),则很有用。
答案 6 :(得分:0)
您可以使用JMeter计数器:
然后可以将导出的变量名称用作路径参数: / my-service / v1 /客户/订单/ $ {ordernumber}