參考鏈接:
https://www.cnblogs.com/Testing1105/p/12743475.html
jmeter 使用random函數多線程運行時數據不會隨機變化?_jmeter 線程組循環執行時 變量不變-CSDN博客
1、如下圖所示,需要對請求參數 autor 和phone進行隨機參數化
2、目前有三種方式可以解決,第一種就是通過如下圖所示,添加用戶定義的變量組件;
3、再點擊Tools-函數助手對話框,來給參數添加隨機函數,
4、點擊函數助手對話框 顯示如下彈窗,輸入最大值、最小值,點擊生成按鈕,復制函數字符串${__Random(1,999,)};
5、步驟4中的函數字符串復制到 用戶定義的變量 參數對應的值中。
6、接口的該請求參數則需要使用${author}來代替,如下圖。該方法有個缺陷就是無論是通過多線程還是循環控制器,該隨機變量都只獲取一次,因此還需要通過另外兩種方式來解決這個問題。
7、如果需要每次請求接口,該參數的值都隨機變化就需要直接將步驟4生成的函數字符串復制到該接口的參數中,如圖所示。這樣無論是多線程還是循環控制器每次該接口都會隨機生成參數
8、除了將函數字符串直接添加到參數中外還有一種方式就是添加隨機變量,添加過程如圖所示。
9、在隨機變量組件中輸入變量名稱、最小值、最大值、沒線程(用戶)?:選擇True
每線程(用戶)(Per Thread(User)?):如果設置為False,那么所有線程共享同一個隨機數生成器,如果設置為True,那么每個線程獨享各自的隨機數生成器。
?
隨機變量組件用法如下圖所示
變量名稱(Variable Name):用于控制在其它元素中引用該值,形式:$(variable_name}輸出格式(Output Format):可選格式,比如000,格式化為001,002,Minimum Value,Maximum Value都設置為1,Number format設置為000,那么格式化后,第一個參數值為001,第二個為002,……,以此類推,假設format設置為user_000,那么格式化后,第一個參數值為user_001,第二個參數值為user_002,...,以此類推。默認格式為Long.toString()最大值(Minimum Value):生成的最小隨機數最小值(Maximum Value):生成的最大隨機數隨機種子(Seed for Random function) :供隨機數生成器使用的seed.如果為空,則使用默認的Random構造器每線程(用戶)(Per Thread(User)?):如果設置為False,那么所有線程共享同一個隨機數生成器,如果設置為True,那么每個線程獨享各自的隨機數生成器運行后該數據在1-1000000之間隨機生成
10、接下來就跟步驟6類似,接口的該請求參數則需要使用${author}來代替。該方法也可以做到每次請求接口都會生成一個隨機值。