jmeter测试接口--解决参数化取惟一值的问题(用UUID)

1、用时间函数:java

jmeter参数化,并且要取惟一值,能够考虑用时间函数加上其余函数一块儿:dom

{"merchant_id":"615051940310129","biz_code":"1001","order_id":"${__time(,)}${__counter(,)}",

"order_amt":"100","bg_url":"www.baidu.com","sign":"22A356FF1010B22670417E2107DB4229"}

 可是若是接口的处理能力很快,这个参数仍是会存在重复的id;函数

 

2、用UUID:优化

解决上面的问题,还能够用UUID来做为参数,UUID一般以36字节的字符串表示,示例以下:

ui

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

 

 订单ID多数是数字的,若是不须要“-”,能够去掉。url

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

1.新建一个事务;code

2.新建一个BeanShell Sampler;blog

3.新建一个http请求;接口

以下图:

 

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

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能够根据本身须要的参数,进行优化

相关文章
相关标签/搜索