我们所做的项目需要登陆之后才可以进行后续操作,使用jmeter后置处理器中的正则表达式提取token,然后用BeanShell设置成全局变量。
1、在登录请求中添加→后置处理器→正则表达式提取器,提取token
2、说明
(1)引用名称:下一个请求要引用的参数名称,如填写token,则可用${token}引用它。
(2)正则表达式:
():括起来的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:在找到第一个匹配项后停止。
(3) 模板:用$1$引用,如果正则中有多个表达式,则$1$$2$,表示解析的第几个值,如:$1$表示解析到的第1个值
(4)匹配数字(0代表随机):0代表随机取值,-1表示全部,0随机,1第一个,2第二个,一般情况默认0
(5)缺省值:缺省值如果参数没有取得到值,那默认给一个值让它取。可填可不填。看项目场景
3、验证是否获取到token
4、将token设置为全局变量:使用jmeter内置函数${__setProperty(参数名,${参数值},默认值)};
${__setProperty(newtoken,${token},)}
5、将测试的HTTP请求的 HTTP信息头管理器中使用上面获取的token,${__P(newtoken}; //调用全局变量或者${__property(newtoken)}; //也可以这样调用全局变量,和上面的写法是等价的
6、正则表达式获取Set-cookie
7、验证Set-Cookie是否取值成功