JMeter實現唯一引數生成不重複時間戳
阿新 • • 發佈:2018-11-28
現象:
使用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