Jmeter關聯方式使用
阿新 • • 發佈:2019-01-29
什麼是關聯
關聯是Jmeter工具中非常重要的一個技術。因為在測試過程過有些資料是經常發生變化的,要獲取並使用這些資料,就要使用關聯。
比如: 使用者登入後,session資訊都不同,有些操作要使用session,就需要將這個動態的資訊儲存下來。還有經常遇到的場景,第二個請求提交的引數要從第一個請求的返回資料中獲取。
使用方法
1.新建兩個方法,一個叫getCode,一個叫getMessage getCode永久返回1 然後根據返回的code請求getMessage方法,如果請求code為1返回true,反之返回false
2.新建一個簡單控制器,在簡單控制器中新增兩個http請求@Controller public class AliPayController { @RequestMapping("getCode") @ResponseBody public String getCode(){ return "{\"name\":\"李四\",\"code\":\"1\"}"; } @RequestMapping("getMessage") @ResponseBody public String getMessage(String code,HttpServletRequest request){ if("1".equals(code)&&"李四".equals(name)){ return "true"; }else{ return "false"; } } }
3.第一個Http請求操作
我們需要在第一個Http Requst 中也就是getCode中新建一個正則表示式,把Response的值提取到變數中,提供給別的Http Request 使用
引用名稱:其他地方引用時的變數名稱,引用方法:${引用名稱}
正則表示式:():括起來的部分就是要提取的。
.匹配任何字串。
*出現任意次數。
?不要太貪婪,在找到第一個匹配項後停止。
模板:
表示使用提取到的第幾個值:
$-1$:表示取所有值
$0$:表示取隨機值
$1$:表示取第一個值
$2$:表示取第二個值
依次類推:$n$:表示取第n個值,這裡不要對上面匹配的引數個數混淆,比如說正則匹配到兩個 "name":"張三","name":"李四" 使用$1$來獲取第一個name=張三,使用$2$來獲取第二個name=李四,而不是說$2$拿到的是code=1這個值。
匹配數字
預設值:如果正則表示式沒有搜找到值,則使用此預設值
給第一個http請求新增一個斷言器${code_g1}代表取正則表示式匹配的第一個引數 也就是name值,${code_g2}代表取正則表示式匹配的第二個引數,也就是code值
給第一個http請求新增斷言結果,檢視取值是否成功4.第二個http請求操作
只需要新增一個圖形結果和檢視結果樹就可以了,然後在引數的地方使用下面這種方式使用引數
5.測試
最後執行整個簡單控制器,檢視getMessage響應結果,證明有使用getCode函式的返回值