如何实现从登录接口响应数据中提取JSESSIONID
通过调用接口,对服务器产生压力,单接口测试,会遇到响应数据返回的是要求先登录。这是我们在调用这个接口时,根据业务逻辑,必须先登录才可以,比如:提交订单,那么就需要先获取用户登录的JSESSIONID,然后再把该JSESSIONID作为提交订单接口的请求头信息。
下面详细介绍下,在jmeter上如何实现提取登录JSESSIONID。有两种方法:
方法一、用正则表达式提取器从登录的响应数据中提取JSESSIONID,然后在需要携带JSESSIONID的请求下面添加http cookie管理器,把提取到的JSESSIONID参数化进来。
1、首先在登录请求下添加后置处理器--正则表达式提取器,根据具体的响应数据,写正则表达式去提取。
提取到的结果是否正确,添加Debug PostProcessor,去调试。
正则表达式提取器页面解释:
引用名称,就是后面要实际引用到的名称,可以自己定义。
正则表达式的写法,其中
. 表示匹配任意字符串
* 表示匹配任意多次
? 表示找到匹配项就停止
模板,就是上面的正则表达式中想要提取哪个内容(可能会有多个正则表达式),$1$表示提取第一个括号里的内容。
匹配数字,就是匹配到的第几项,0代表随机,-1代表匹配到的全部项,1代表匹配到的第一项,2代表匹配到的第二项,以此类推
2、在具体需要携带JSESSIONID的请求下面添加“HTTP Cookie 管理器”,然后把从登录中获取到的JSESSIONID参数化进来。如图:
这样就可以成功的发送短信了,不会再出现先登录的情况了。
方法二、不用提取器提取JSESSIONID,直接在线程组下面添加 HTTP Cookie 管理器,但是需要在配置文件中把相关的那段代码取消注释,让其起作用。
1、首先在配置文件中(jmeter.properties),把下面这句代码的注释去掉,保存文件,重启jmeter.(注:jmeter的配置文件在jmeter安装路径下的bin文件夹下)
2、在线程组下面,添加配置元件-http cookie管理器,就可实现。