我制定了非常简单的测试计划。
- 登录:POST,返回会话cookie。
- 获取状态:GET,返回用户状态。
- 创建资源:POST,为资源提供 JSON 正文。
所以我的“测试计划”如下所示:
- Test Plan
- Thread Group
- HTTP 请求默认值
- HTTP Cookie 管理器
- 登录(HTTP 请求采样器:POST)
- 获取状态(HTTP 请求采样器:GET)
- 创建资源(HTTP 请求采样器:POST)
“登录”生成的 cookie 已正确添加到“获取状态”。
但“创建资源”没有 cookie。我改变了他们的顺序,但没有帮助。
我首先使用默认选项并更改了一些选项,但它也没有帮助。
这是JMeter的bug吗?或者只是POST http请求不能有cookie?
请给我任何建议。
[SOLVED]
我注意到它与路径有关,而不是方法。
您想要查看 cookie 的域以及路径。
我的意思是,cookie 的路径和域可以通过 Set-Cookie 标头在服务器端定义。
另一个解决方案是在 jmeter.properties 中设置 CookieManager.check.cookies=false,通常位于 bin 中 jmeter 启动脚本旁边。
由于某些原因,JMeter 认为如果您位于 http:/somesite/somethingelse 上,则无法在 cookie 中设置 path=/something。也就是说,该路径必须与您当前所在的路径相匹配。
我从未见过浏览器强制执行此限制(如果它确实存在)。我见过并编写了几个使用这种技术来设置安全 cookie 的网站,然后将某人说的内容转发到 /admin。
我希望这个选项至少在 GUI 中,这样我就不必更改属性文件。我认为 BlazeMeter 足够聪明,可以关闭对Flood.io 不进行检查的地方。如果由我决定,我会完全删除检查此内容的代码。为什么要让负载测试器变得比它需要的更难呢?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)