JMeter 记录 Cookie 保持登录状态

JMeter About 913 words

版本

基于Apache JMeter 5.4.1

原因

后端Java使用Session-Cookie身份认证,对接口进行鉴权校验。

方案

提取登录接口返回后HeadersSet-CookieJSESSIONID的值,并设置该值为全局变量,业务接口中使用取出全局变量添加到请求头中。

Regular Expression Extractor

正则表达式提取器

步骤

  • Name of created variable:填写一个临时变量,如:jsessionid
  • Regular Expression:提取Cookie的正则表达式,如:Set-Cookie: JSESSIONID=(.+?);
  • Template ($i$ whre is capturing group number, starts at 1):匹配组,从1开始,如:$1$
  • Match No. (0 for Random):匹配第几个,0为随机匹配。可以设置为1,取第一个匹配到的值

图示

添加Regular Expression Extractor

Regular Expression Extractor.png

设置参数

Regular Expression Extractor 2.png

BeanShell PostProcessor

BeanShell后置处理器

步骤

  • Parameters:填写会被赋值的全局变量的参数名,如:loginCookie
  • Script:编写脚本给loginCookie赋值正则提取的临时变量jsessionid的值,脚本:${__setProperty(loginCookie,${jsessionid})};

图示

添加BeanShell PostProcessor

BeanShell PostProcessor.png

设置参数

BeanShell PostProcessor 2.png

HTTP Cookie Manager

Cookie管理器

步骤

  • NameCookie的键,Java Session要求的键:JSESSIONID
  • ValueCookie的值,从全局变量loginCookie中取,${__property(loginCookie)}
  • DomainCookie作用的域
  • Path:根路径/,也可能是后端有设置的Context-Path,根据后端填写

图示

添加HTTP Cookie Manager

Http Cookie Manager.png

设置参数

Http Cookie Manager 2.png

Views: 3,163 · Posted: 2021-08-22

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓


Today On History
Browsing Refresh