我遇到了类似于这篇文章中的问题: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}
在帖子正文中设置为 auth 令牌值。 - 我们知道 ${COOKIE_cookieName} 是正确的格式,因为这与 JMeter 存储的其他 cookie 一起使用。
- 使用其中一个或两个,JMeter
我已经阅读了许多线程,但没有一个处理过这个特定问题。几周前我刚开始学习如何使用 JMeter,所以我不确定在这里做什么,任何帮助将不胜感激。谢谢!