1. 程式人生 > >Jmeter關聯方式使用

Jmeter關聯方式使用

什麼是關聯

關聯是Jmeter工具中非常重要的一個技術。因為在測試過程過有些資料是經常發生變化的,要獲取並使用這些資料,就要使用關聯。 

比如: 使用者登入後,session資訊都不同,有些操作要使用session,就需要將這個動態的資訊儲存下來。 

還有經常遇到的場景,第二個請求提交的引數要從第一個請求的返回資料中獲取。

使用方法

1.新建兩個方法,一個叫getCode,一個叫getMessage getCode永久返回1 然後根據返回的code請求getMessage方法,如果請求code為1返回true,反之返回false

@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";
		}
	}	
}
2.新建一個簡單控制器,在簡單控制器中新增兩個http請求

3.第一個Http請求操作

我們需要在第一個Http Requst 中也就是getCode中新建一個正則表示式,把Response的值提取到變數中,提供給別的Http Request 使用


引用名稱:其他地方引用時的變數名稱,引用方法:${引用名稱}

正則表示式
                  ():括起來的部分就是要提取的。
                  .匹配任何字串。
                  *出現任意次數。
                  ?不要太貪婪,在找到第一個匹配項後停止。
模板
                  表示使用提取到的第幾個值:
                  $-1$:表示取所有值
                  $0$:表示取隨機值
                  $1$:表示取第一個值
                  $2$:表示取第二個值
依次類推:$n$:表示取第n個值,這裡不要對上面匹配的引數個數混淆,比如說正則匹配到兩個 "name":"張三","name":"李四"  使用$1$來獲取第一個name=張三,使用$2$來獲取第二個name=李四,而不是說$2$拿到的是code=1這個值。
匹配數字
:匹配數字:0 代表隨機取值,1 代表全部取值

預設值:如果正則表示式沒有搜找到值,則使用此預設值

給第一個http請求新增一個斷言器


${code_g1}代表取正則表示式匹配的第一個引數 也就是name值,${code_g2}代表取正則表示式匹配的第二個引數,也就是code值

給第一個http請求新增斷言結果,檢視取值是否成功

4.第二個http請求操作

只需要新增一個圖形結果和檢視結果樹就可以了,然後在引數的地方使用下面這種方式使用引數


5.測試
最後執行整個簡單控制器,檢視getMessage響應結果,證明有使用getCode函式的返回值