【发布时间】:2020-12-26 21:42:56
【问题描述】:
传递的动态 cookie 参数(token_id、access_id、state)值未显示在任何响应中,这使得在进一步请求时难以捕获和传递它。有人可以帮我解决这个问题吗?
【问题讨论】:
标签: javascript session jmeter token
传递的动态 cookie 参数(token_id、access_id、state)值未显示在任何响应中,这使得在进一步请求时难以捕获和传递它。有人可以帮我解决这个问题吗?
【问题讨论】:
标签: javascript session jmeter token
您是否尝试过开箱即用的Cookie Manager。它像网络浏览器一样存储和发送 cookie。如果您有一个 HTTP 请求并且响应包含一个 cookie,则 Cookie 管理器会自动存储该 cookie 并将其用于该特定网站的所有未来请求。每个 JMeter 线程都有自己的“cookie 存储区”。
如果您想使用 JSR223 处理 cookie,则必须使用后处理器。 Pre-processors 在发送请求之前执行。因此,您无法访问预处理器中的响应值。
API Documentation 如果您真的想操作 cookie,将会很有用。
【讨论】:
最简单的选择是HTTP Cookie Manager
将其添加到您的测试计划中
将下一行添加到 user.properties 文件(位于 JMeter 安装的“bin”文件夹中):
CookieManager.save.cookies=true
重启 JMeter 以获取更改
就是这样,您应该能够在需要时以${COOKIE_token_id}、${COOKIE_access_id} 等身份访问您的 cookie
如果您仍想使用 JSR223 PreProcessor,您可以使用 prev.getResponseHeaders() 函数从 previous 请求中提取 cookie,但是您需要执行一些额外的编码才能:
Set-Cookie header值【讨论】: