1. 程式人生 > >jmeter之__RandomFromMultipleVars函式使用詳解

jmeter之__RandomFromMultipleVars函式使用詳解

  這兩天接了個測試需求,要對伺服器進行併發測試。
為了保證覆蓋度,請求中有幾個引數需要在一定的取值範圍內隨機(比如Excellent、good、bad三選一)。
簡單調研了一下,在jmeter中__RandomFromMultipleVars這個函式完全滿足需求,看看網上怎麼介紹的吧:
這樣子的:

__RandomFromMultipleVars介紹
或者是這樣子的:

__RandomFromMultipleVars介紹
看完攻略之後,心中一爽,So簡單,然後鍵盤輕輕一敲:
”key”:”${__RandomFromMultipleVars(Excellent|good|bad)}”

__RandomFromMultipleVars
搞定→執行→檢視結果→瞬間懵逼(結果如下圖),我key的值呢?讓誰給吃了?

__RandomFromMultipleVars
為了找到原因,嘗試做了很多事情,比如改個寫法、與__Random函式對比、將key從body改在url中等等,始終無法搞出這個值,一度準備放棄改用“CSV Data SetConfig”從檔案獲取引數值的方式(後來沒用,是因為這條路也沒走通)。
不過好在最後靈光一現,找到了一種解決方案。
具體的解決方法:
第一步:自定義一組變數,並對變數進行賦值,如下圖:

__RandomFromMultipleVars
第二步:然後在使用__RandomFromMultipleVars函式時,用自定義的變數進行填充,如下圖:

__RandomFromMultipleVars
最後:再次執行,搞定,一切正常了。

__RandomFromMultipleVars

__RandomFromMultipleVars
此處還有一個衍生的問題:
上述例子中我們是3個引數值,可以在“使用者定義的變數”手填,但是如果引數值是成千上萬怎麼辦?
小編嘗試過通過檔案讀取等方式給對應的變數賦值,但都均告失敗,最後採用了一種笨辦法,還是能夠很大程度上緩解這個問題的。具體的操作如下:
首先,做個表:

__RandomFromMultipleVars
第二步:將表中的所有內容複製到剪下板中(全選+複製)
第三步:在“使用者定義的變數”中選擇“Add frome Clipboard”

__RandomFromMultipleVars
最終,結果一樣是挺酸爽的。(此處要注意變數名和變數的值中是否有空格

__RandomFromMultipleVars