Jmeter解决唯一标识的问题-UUID

本文介绍如何在JMeter中实现参数化,特别是针对订单ID这类需要唯一性的场景。通过使用时间函数结合计数器或是UUID生成唯一标识符,确保每个请求的参数值都是唯一的,从而避免重复提交的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、用时间函数:

jmeter参数化,而且要取唯一值,可以考虑用时间函数加上其他函数一起:

1
{"merchant_id":"615051940310129","biz_code":"1001","order_id":"${__time(,)}${__counter(,)}","order_amt":"100","bg_url":"www.baidu.com","sign":"22A356FF1010B22670417E2107DB4229"}

 但是如果接口的处理能力很快,这个参数还是会存在重复的id;

 

二、用UUID:

解决上面的问题,还可以用UUID来作为参数,UUID通常以36字节的字符串表示,示例如下:

1
3F2504E0-4F89-11D3-9A0C-0305E82C3301

 

 订单ID多数是数字的,如果不需要“-”,可以去掉。

如下是分析在jmeter中如何使用:

1.新建一个事务;

2.新建一个BeanShell Sampler;

3.新建一个http请求;

如下图:

 

4.在BeanShell Sampler编写UUID的代码:

1
2
3
4
5
6
7
8
9
10
import java.util.UUID;
 
UUID uuid1 = UUID.randomUUID();    //获取UID的值
 
vars.put("order_id",(uuid1.toString()).toUpperCase().replaceAll("-",""));  
 
 //去掉UUID的“-”,再赋值给order_id  运行获取的参数就是:3F2504E04F8911D39A0C0305E82C3301
 
//vars.put("order_id",(uuid1.toString()).toUpperCase()); 
 //这个就是不用去掉UUID的“-”    运行获取到的参数就是:3F2504E0-4F89-11D3-9A0C-0305E82C3301

 

5.在http请求如下:

在BeanShell Sampler获取到UUID的参数后,可以在http请求页面,直接用:     "order_id":"${order_id}"      获取。运行后,该参数值几乎不出现重复的问题。

UUID可以根据自己需要的参数,进行优化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值