繁体   English   中英

使用 JMeter 在 cookie 管理器中设置 JSession id

[英]Set JSession id in cookie manager with JMeter

简短的介绍:

  1. 我想在我的请求中设置一个 cookie。

测试用例:

  1. 使用 JMeter 开始录音。
  2. 打开浏览器并导航到登录页面(此时我已注销,因此可以看到登录页面)。
  3. 记录第一次请求(第一次打开页面时)。

应该做什么:

  1. 我使用 JMeter 录制了一个脚本。当我第一次打开登录页面时 - 似乎浏览器(我认为是浏览器)设置了某种 cookie (JSESSION_ID)。 在此处输入图像描述
  2. 当我尝试自己执行请求时 - 没有 cookie 数据(也没有 JSESSION_ID)。 在此处输入图像描述
  3. 我需要实现此信息,因为我需要在另一个请求中重用它(我知道如何使用 Regular Expression Extractor)。

问题:

  1. 如何将此 cookie 数据放入请求中?
  2. 我可以使用任何随机字符串(例如第一个屏幕截图中的 cookie)作为 JSESSION_ID 值吗?
  • 如果没有,有没有办法使用 JMeter 生成正确的 JSESSION_ID?

您可以在线程组中添加一个HTTP Cookie Manager cookie 管理器stores and sends cookies just like a web browser

如果这不起作用,您可能必须使用后处理器提取 JSESSION_ID 并将变量 ${JSESSION_ID} 与标头一起传递。

注意:确保删除所有记录的 JSESSION_ID 键/值或将 JSESSION_ID 值替换为 ${JSESSION_ID}

我找到了解决办法。 是的,我已经在使用 HTTP Cookie 管理器了。 我需要的是将数据添加到请求中的“Cookie 数据”中。

解决方案:我找到的解决方案是在请求的标头中声明“Cookie”值。 在此处输入图像描述 结果 - 我将数据添加到“Cookie 数据”请求中。 在此处输入图像描述

HTTP Cookie 管理器应该自动处理来自服务器的 cookies,即从Set-Cookie header 中提取它们,并通过创建相关的Cookie header 将它们添加到下一个请求中,但是可能有一些限制阻止 JMeter 发送 87939160 等

  1. Cookie 格式错误
  2. Cookie 已过期
  3. 当前域与 cookie 的域不匹配
  4. ETC。

您可能希望将下一行添加到log4j2.xml文件(位于 JMeter 安装的“bin”文件夹中)

<Logger name="org.apache.jmeter.protocol.http.control" level="debug" />

完成后,您将看到 cookies 到底发生了什么,如果它们在jmeter.log 文件中被存储、拒绝、添加等

如果您不关心不正确的 cookies 并且不想为您的应用程序提出问题,您可以通过选择像netscape这样限制较少的策略来使 JMeter 在涉及“坏”cookies 时更加“放松”

在此处输入图像描述

并将CookieManager.check.cookies=false行添加到user.properties文件。

更多信息: HTTP Cookie 管理器高级用法 - 指南

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM