JMeter實現唯一參數生成不重復時間戳


現象:

使用jmeter做接口壓測時,總會遇到壓測時,提示不允許重復id或提示訂單不允許重復現象,那么如何解決呢?

原料工具

  • jmeter4.0
  • 本地准備好接口服務

思路:

  • 單個接口,小批量接口,一般以時間戳或者是日期格式的數據作為接口測試參數,解決參數化問題;
  • 大批量接口壓測時,這上面的時間戳方式是不行的,秒級請求或者毫秒級別的請求不能滿足大批量接口壓測需求,這時候需要用比毫秒小的單位納秒再做字符串拼接

時間戳函數操作:

1、通過函數助手,生成一個_time 函數:

 

2、如果參數為時間戳,那公式為:

${__time(,)}  :  默認該公式精確到毫秒級別, 13位數

${__time(/1000,)}  : 該公式精確到秒級別, 10位數

 

3、 如果參數需要為當前日期,那公式為:

${__time(yyyy-MM-dd,)}

${__time(YMDHMS,)}

實例demo演示:

1、使用jmeter創建一個為 時間戳重復請求demo” http請求,並添加查看結果樹

采用時間戳(日期格式化)形式組成唯一參數形式:${__time(yyyyMMddHHmmssSS,)}

 

2、使用jmeter創建一個為 “時間戳不重復請求demo”  http請求,並添加查看結果樹

 采用時間戳(日期格式化+納秒函數)

添加前置處理器-->bean shell Preprocessor

 

beanshell部分:

long timeStamp = System.nanoTime();
vars.put("timeStamp",timeStamp+"");
log.info("---------------------------------------"+vars.get("timeStamp"));

3、運行結果:

第一個http請求(時間戳重復請求demo)結果:

顯然都是一樣的如下圖:

第二個http請求(時間戳不重復請求demo)結果:

 

本次練習jmeter工程下載鏈接:

https://download.csdn.net/download/wangqiang_cyou/10814770 

 

部分參考文章:https://www.cnblogs.com/kaibindirver/p/8964295.html


免責聲明!

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



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