jmeter測試接口--解決參數化取唯一值的問題(用UUID)


一、用時間函數:

jmeter參數化,而且要取唯一值,可以考慮用時間函數加上其他函數一起:

{"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字節的字符串表示,示例如下:

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

 

 訂單ID多數是數字的,如果不需要“-”,可以去掉。

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

1.新建一個事務;

2.新建一個BeanShell Sampler;

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可以根據自己需要的參數,進行優化

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM