使用多个BZM到达线程组的jmeter中的多个请求获得400错误

yruzcnhs  于 2023-06-23  发布在  其他
关注(0)|答案(3)|浏览(102)

“我在不同的BZM到达线程组中合并了多个依赖于以前API的API请求。但是,在执行这些并发线程时,会遇到大量的400错误。有趣的是,当使用相同的API执行各个线程时,始终收到200响应代码。
请分享解决方案

xmd2e60i

xmd2e60i1#

HTTP Status 400表示您的请求无效
考虑到对前一个响应的依赖性,我的预期是你的后处理器无法从前一个响应中提取数据,因为服务器过载并返回错误而不是预期的响应。
下一个请求使用JMeter变量占位符,如${this one},而不是真实的值,因此请求失败。
我建议暂时启用saving response data并重新运行测试。完成后,使用View Results Tree侦听器打开.jtl结果文件,并检查响应中的错误。

nlejzf6q

nlejzf6q2#

400错误请求(无效请求)
这里有一个可以考虑的可能性:
1.依赖于以前的API响应:如果您的一些API请求依赖于之前请求的响应,那么确保请求的正确同步和排序至关重要。如果并发线程没有得到适当的协调,则有可能在之前的请求中所需的数据可用之前发出后续请求。
这可能导致请求损坏或不完整,从而导致400错误。在继续处理依赖请求之前,请确保正确处理依赖项并等待必要的响应。

fslejnso

fslejnso3#

由于您收到的是单个请求的200响应,但使用Arrivals Thread Group请求的400服务器错误数量很高,因此有几个问题可能是罪魁祸首,建议执行如下故障排除顺序:

  • 比较负载测试中的请求,并确保您正在获取200响应的请求与测试中生成400响应的请求之间没有差异或拼写错误。
  • 确保任何变量或用于动态创建请求的其他方式不会导致无效或格式错误的请求。
  • 确保用于运行大容量JMeter测试的计算机(或VM)具有运行资源,而不会出现intp CPU、内存或其他系统资源问题。如果JMeter资源耗尽,您的请求可能格式错误。
  • 请理解Arrivals Thread Group与大多数其他线程组的工作方式不同,因为您定义了一个 rate 来生成不断增加的请求。过高的请求量可能导致运行JMeter的机器或目标测试应用程序的资源耗尽,并可能导致400错误。有一个很好的帖子here解释了Arrivals Thread Group是如何以这种方式工作的。

相关问题