這兩天接了個測試需求,要對服務器進行併發測試。
爲了保證覆蓋度,請求中有幾個參數需要在一定的取值範圍內隨機(比如Excellent、good、bad三選一)。
簡單調研了一下,在jmeter中__RandomFromMultipleVars這個函數完全滿足需求,看看網上怎麼介紹的吧:
這樣子的:
或者是這樣子的:
看完攻略之後,心中一爽,So簡單,然後鍵盤輕輕一敲:
”key”:”${__RandomFromMultipleVars(Excellent|good|bad)}”
搞定→運行→查看結果→瞬間懵逼(結果如下圖),我key的值呢?讓誰給吃了?
爲了找到原因,嘗試做了很多事情,比如改個寫法、與__Random函數對比、將key從body改在url中等等,始終無法搞出這個值,一度準備放棄改用“CSV Data SetConfig”從文件獲取參數值的方式(後來沒用,是因爲這條路也沒走通)。
不過好在最後靈光一現,找到了一種解決方案。
具體的解決方法:
第一步:自定義一組變量,並對變量進行賦值,如下圖:
第二步:然後在使用__RandomFromMultipleVars函數時,用自定義的變量進行填充,如下圖:
最後:再次運行,搞定,一切正常了。
此處還有一個衍生的問題:
上述例子中我們是3個參數值,可以在“用戶定義的變量”手填,但是如果參數值是成千上萬怎麼辦?
小編嘗試過通過文件讀取等方式給對應的變量賦值,但都均告失敗,最後採用了一種笨辦法,還是能夠很大程度上緩解這個問題的。具體的操作如下:
首先,做個表:
第二步:將表中的所有內容複製到剪切板中(全選+複製)
第三步:在“用戶定義的變量”中選擇“Add frome Clipboard”
最終,結果一樣是挺酸爽的。(此處要注意變量名和變量的值中是否有空格