為了完成一個用例中的業務邏輯,時常需要通過在上一個請求的響應報文中抽取相關的數據,從而將其應用在下一個或以后的請求中,從而實現一系列完整的流程。
1.使用JSON Path Assertion
添加一個JSON Path Assertion:右鍵一個sampler→添加→斷言→JSON Path Assertion
例如,請求注冊的相應報文為:
Destination Variable Name中填入后續引用該響應報文中的參數值的參數名,JSONPath Expression中填入想要抽取的JSON格式的響應報文中的對應參數名,Default Value中填入當抽取失敗時候的響應值。
2.使用BeanShell Post Processor
添加一個BeanShell Post Processor:添加→后置處理器→BeanShell Post Processor
通過getJSONobject獲取響應報文的數據,通過getJSONArray獲取列表中key=email的值,再通過內置對象vars.put將其賦給emailName參數。
從下一個請求的請求結果可以測出emailName的值是否傳成功
3.利用正則表達式提取器
添加正則表達式提取器:添加→后置處理器→正則表達式處理器
引用名稱為后續引用該響應報文中的參數值的參數名;正則表達式為提取內容的正則表達式;模板:用$$引用起來,如果在正則表達式中有多個提取表達式,則可以是$1$,$2$等等,表示解析到的第幾個值給emailName,正則表達式的提取模式,值從1開始,值0對應的是整個匹配的表達式;匹配數字(0代表隨機):0代表隨機,-1代表所有;缺省值:抽取數據失敗時候的響應值。
4.使用JSON Content Extractor?
添加一個JSON Content Extractor:添加→后置處理器→JSON Content Extractor
產生的變量名稱:后續引用該響應報文中的參數值的參數名;JSON數組路徑描述:$.email表示在JSON數組中的的key=email的變量;目標值key為需要提取的數據名稱;其他匹配值需要輸入響應報文中其他的數據;變量默認值為當變量沒有獲取到時返回的值。