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