我是JMeter的新手。我正在执行登录测试。我正在尝试提取 CSRF 令牌,但我没有得到它。我不知道如何解决它。
请求数据
正则表达式提取器
当我尝试将CSRF令牌 - "引用名称"放入HTTP请求 - "参数"时,我收到了错误。
HTTP 请求 - 参数
我被困在这里。我不知道如何放置CSRF令牌 - 没有"参数"的"引用名称"。请帮助我。
要使用 JSON 正文在 POST 请求中发送参数,您可以在 路径 字段中添加参数?签名,在您的情况下添加
?csrf=${token}
首先,您应该使用浏览器导航,分析流量并模仿它。
Chrome有一个工具可以做到这一点,或者你可以使用Fiddler。一般来说,CSRF 第一次从服务器返回为 cookie 时,然后必须同时作为 cookie 和标头返回。
有时,即使在同一个会话中,值也会发生变化。请注意这一点。
因此,您必须:
- 插入 Cookie 管理器(在项目的顶层(
- 从响应标头中提取值(每次更改时(
- 在以下所有请求中将其作为标头参数插入
将 cookie 提取到 JMeter 变量中的最简单方法是使用 HTTP Cookie 管理器
- 将 HTTP Cookie 管理器添加到测试计划
-
将下一行添加到user.properties文件(位于JMeter安装的"bin"文件夹中(
CookieManager.save.cookies=false
- 重新启动JMeter以拾取属性
当 cookie 来自服务器时,您将能够在需要时${COOKIE_csrftoken}
访问它。
详细信息:HTTP Cookie 管理器高级用法 - 指南