【发布时间】:2020-02-07 23:32:31
【问题描述】:
我正在使用 JMeter 创建负载测试。我正在尝试发出 Post 请求以创建新资源,但它总是以 500 错误响应,即使我发送与浏览器相同的标头和参数,并且我也尝试使用邮递员并且它工作正常,它只是与JMeter 不工作。
脚本是使用 BlazeMeter Chrome 扩展程序录制的,并根据需要进行调整。
接下来的配置一般用于测试计划:
- HTTP 标头管理器,标头为“User-Agent”。
- 用户定义变量,只有一个变量“BASE_URL_1”。
- HTTP 请求默认值,选择了“检索所有嵌入式资源”和“并行下载”并将“数量”设置为 6。
- DNS 缓存管理器,选中“每次迭代清除缓存”和“使用系统 DNS 解析器”。
- HTTP 授权管理器,未选择任何内容。
- HTTP Cookie 管理器,带有“每次迭代都清除 cookie?”已选中。
- HTTP 缓存管理器,带有“每次迭代清除缓存?”已选中并将“缓存中的最大元素数”设置为 5000。
我在 "jmeter.properties" 中将 "CookieManager.save.cookies" 选项设置为 "true"。
这是“HTTP 请求”的样子:
在“HTTP 请求”中有一个“HTTP 标头管理器”,其中包含下一个标头:
在“HTTP 请求”内还有一个“统一随机计时器”,其中“随机延迟最大值”设置为 26344.0,“恒定延迟偏移”设置为 13172。
cookie 似乎与会话数据一起发送良好。在尝试执行发布请求之前,我确实登录了一个用户并获取了会话数据,而其他获取请求在同一会话下工作正常。我用 Postman 测试了相同的标题并且它有效。我不知道为什么这在 JMeter 中不起作用。我尝试对配置进行多次更改但没有成功。这是一个 .NET 服务。
API 不是以最好的方式构建的,但让我认为这个 500 错误可能来自 JMeter 而不是 API 的原因是我能够成功地从邮递员发出请求。
有人知道测试配置可能有什么问题吗?
编辑
以下是查看结果树中的一些图片:
响应正文是表示有错误的 HTML。
【问题讨论】:
-
您希望端口为 80?
-
尝试删除“内容类型”并检查多部分表单数据,如果您从视图结果树发布图像也会很好
-
你好@user7294900,我不太确定,我用 BlazeMeter 记录器创建了测试。
-
嗨@zeeshan 我尝试删除“Content-Type”并检查了 miltipart-form 数据,但我得到了同样的错误。此外,将使用结果树图像更新帖子。
标签: post cookies jmeter load-testing