“我在不同的BZM到达线程组中合并了多个依赖于以前API的API请求。但是,在执行这些并发线程时,会遇到大量的400错误。有趣的是,当使用相同的API执行各个线程时,始终收到200响应代码。请分享解决方案
xmd2e60i1#
HTTP Status 400表示您的请求无效考虑到对前一个响应的依赖性,我的预期是你的后处理器无法从前一个响应中提取数据,因为服务器过载并返回错误而不是预期的响应。下一个请求使用JMeter变量占位符,如${this one},而不是真实的值,因此请求失败。我建议暂时启用saving response data并重新运行测试。完成后,使用View Results Tree侦听器打开.jtl结果文件,并检查响应中的错误。
${this one}
nlejzf6q2#
400错误请求(无效请求)这里有一个可以考虑的可能性:1.依赖于以前的API响应:如果您的一些API请求依赖于之前请求的响应,那么确保请求的正确同步和排序至关重要。如果并发线程没有得到适当的协调,则有可能在之前的请求中所需的数据可用之前发出后续请求。这可能导致请求损坏或不完整,从而导致400错误。在继续处理依赖请求之前,请确保正确处理依赖项并等待必要的响应。
fslejnso3#
由于您收到的是单个请求的200响应,但使用Arrivals Thread Group请求的400服务器错误数量很高,因此有几个问题可能是罪魁祸首,建议执行如下故障排除顺序:
200
400
3条答案
按热度按时间xmd2e60i1#
HTTP Status 400表示您的请求无效
考虑到对前一个响应的依赖性,我的预期是你的后处理器无法从前一个响应中提取数据,因为服务器过载并返回错误而不是预期的响应。
下一个请求使用JMeter变量占位符,如
${this one}
,而不是真实的值,因此请求失败。我建议暂时启用saving response data并重新运行测试。完成后,使用View Results Tree侦听器打开.jtl结果文件,并检查响应中的错误。
nlejzf6q2#
400错误请求(无效请求)
这里有一个可以考虑的可能性:
1.依赖于以前的API响应:如果您的一些API请求依赖于之前请求的响应,那么确保请求的正确同步和排序至关重要。如果并发线程没有得到适当的协调,则有可能在之前的请求中所需的数据可用之前发出后续请求。
这可能导致请求损坏或不完整,从而导致400错误。在继续处理依赖请求之前,请确保正确处理依赖项并等待必要的响应。
fslejnso3#
由于您收到的是单个请求的
200
响应,但使用Arrivals Thread Group请求的400
服务器错误数量很高,因此有几个问题可能是罪魁祸首,建议执行如下故障排除顺序:200
响应的请求与测试中生成400
响应的请求之间没有差异或拼写错误。400
错误。有一个很好的帖子here解释了Arrivals Thread Group是如何以这种方式工作的。