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