如何实现从登录接口响应数据中提取JSESSIONID

时间:2023-12-25 13:38:37

  通过调用接口,对服务器产生压力,单接口测试,会遇到响应数据返回的是要求先登录。这是我们在调用这个接口时,根据业务逻辑,必须先登录才可以,比如:提交订单,那么就需要先获取用户登录的JSESSIONID,然后再把该JSESSIONID作为提交订单接口的请求头信息。

下面详细介绍下,在jmeter上如何实现提取登录JSESSIONID。有两种方法:

方法一、用正则表达式提取器从登录的响应数据中提取JSESSIONID,然后在需要携带JSESSIONID的请求下面添加http cookie管理器,把提取到的JSESSIONID参数化进来

1、首先在登录请求下添加后置处理器--正则表达式提取器,根据具体的响应数据,写正则表达式去提取。

如何实现从登录接口响应数据中提取JSESSIONID

提取到的结果是否正确,添加Debug PostProcessor,去调试。

正则表达式提取器页面解释:

引用名称,就是后面要实际引用到的名称,可以自己定义。

正则表达式的写法,其中

. 表示匹配任意字符串

* 表示匹配任意多次

? 表示找到匹配项就停止

模板,就是上面的正则表达式中想要提取哪个内容(可能会有多个正则表达式),$1$表示提取第一个括号里的内容。

匹配数字,就是匹配到的第几项,0代表随机,-1代表匹配到的全部项,1代表匹配到的第一项,2代表匹配到的第二项,以此类推

2、在具体需要携带JSESSIONID的请求下面添加“HTTP Cookie 管理器”,然后把从登录中获取到的JSESSIONID参数化进来。如图:

如何实现从登录接口响应数据中提取JSESSIONID

这样就可以成功的发送短信了,不会再出现先登录的情况了。

方法二、不用提取器提取JSESSIONID,直接在线程组下面添加 HTTP Cookie 管理器,但是需要在配置文件中把相关的那段代码取消注释,让其起作用。

1、首先在配置文件中,把下面这句代码的注释去掉,保存文件,重启jmeter.

如何实现从登录接口响应数据中提取JSESSIONID

2、在线程组下面,添加配置元件-http cookie管理器,就可实现。

如何实现从登录接口响应数据中提取JSESSIONID