【问题标题】:Using cookie values in HTTP request post body with JMeter使用 JMeter 在 HTTP 请求发布正文中使用 cookie 值
【发布时间】:2012-12-11 02:04:05
【问题描述】:

我遇到了与本文中的问题类似的问题:JMeter; session cookie,但从不同的角度解决。

相似之处在帖子的底部,OP 写道:

如何...我可以为每个用户设置和提交一个唯一的 cookie,其值是从第一个响应标头中提取的?

我们正在使用 JMeter 进行负载测试,并且需要让多个用户同时登录到我们的电子邮件客户端。我们网站(和测试计划)的工作方式是:

  • 输入用户名/密码,点击登录。
  • 点击电子邮件。
  • 在 cookie 中接收身份验证令牌(用于保持登录到电子邮件客户端)。
  • 在与电子邮件客户端交互时(打开文件夹、将电子邮件标记为已读等),在帖子正文中发送身份验证令牌。

问题是身份验证令牌没有以可以在 POST 请求中使用的方式存储为值(并且由于身份验证令牌不是作为 cookie 发送的,我们不能简单地存储它并使用 HTTP Cookie 管理器发送)。 cookie 最初是这样设置的:

AUTH_TOKEN=(long string of letters, numbers, and underscores); Domain=.ourdomain.net; Path=/

我们尝试了以下方法从 cookie 中提取身份验证令牌值:

  • 使用正则表达式提取器从“单击电子邮件”步骤的响应标头中提取值。我们尝试了两个正则表达式;两者都只是导致 JMeter 在运行测试时使用默认的身份验证令牌值:
    • AUTH_TOKEN\=(\w+)\;
    • AUTH_TOKEN=([^;]+);
  • 在 user.properties 中定义属性“CookieManager.save.cookies=true”(根据用户手册的建议)和“CookieManager.check.cookies=false”(根据本线程的建议),然后使用“${ COOKIE_AUTH_TOKEN}”在帖子正文中。
    • 设置其中一个或两个后,JMeter 将 ${COOKIE_AUTH_TOKEN} 设置为帖子正文中的身份验证令牌值。
    • 我们知道 ${COOKIE_cookieName} 是正确的格式,因为它已与 JMeter 存储的其他 cookie 一起使用。

我已经阅读了许多线程,但没有一个处理过这个特定问题。几周前我刚刚开始学习如何使用 JMeter,所以我不确定在这里做什么,任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 我正在尝试做同样的事情,你让它工作了吗?你试过 CookieManager.save.cookies=true 吗?
  • @marko 实际上我们最终重写了整个东西,现在它正在工作。 CookieManager.save.cookies=true 挽救了这一天,只需向服务器发送正确的请求以在响应中获取正确的 cookie。
  • 感谢您的跟进!很高兴知道!有时很难配置 JMeter...

标签: jmeter session-cookies


【解决方案1】:

问题实际上是由于向服务器发送了不正确的请求,然后向服务器发送了空白响应。一旦我们拆除并重写了整个测试计划(我们使用的实际上是另一个测试计划的修改版本)并且在 user.properties 中有 CookieManager.save.cookies=true,我们就能够使用 ${COOKIE_AUTH_TOKEN} 并获得正确的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 2022-06-12
    • 2020-11-13
    • 1970-01-01
    相关资源
    最近更新 更多