运行 个线程时 JMeter 中的响应代码 500

Response code 500 in JMeter when running with threads

在 运行 API 列表(没有 threads:1-140,上升周期为 1)时,在 JMeter 中出现以下错误。

Response code:500
Response message: Internal Server Error

我应该如何克服这个错误响应代码以获得准确的响应? 应该如何减少此响应代码的响应量?

JMeter 中的一般建议是 Ramp-up = 线程数,在您的情况下为 140

Start with Ramp-up = number of threads and adjust up or down as needed.

目前您每 1/140 秒发送一次新线程,几乎是同时发送,更改的原因是:

Ramp-up needs to be long enough to avoid too large a work-load at the start of a test

通常,500 是开发人员未处理的响应。通常在后端,但也在性能测试工具前端。

问问自己,您是否正在验证从服务器返回的响应是否包含适当的内容?我不只是建议 HTTP200 有效。您需要检查响应内容以确保它是您期望的对业务流程有效的内容,因为您可以拥有一个完全有效的 HTTP200 class 页面,其中包含一个响应,该响应将您的业务流程发送到 rails.如果您不处理意外响应方面的异常,那么您会发现在业务流程中走了一到两步,那么您几乎可以保证会找到 500,因为您的请求完全脱离了上下文与当时的应用程序状态。

测试 101,对于每个步骤,都有一个预期的积极结果,可以让业务流程继续进行。检查该结果并在发现结果不正确时分支代码。

或者,如果这是单步业务流程,那么您可能会处理服务不良数据,而开发人员尚未完全充实处理不良数据的优雅部分。

状态代码 - 500 来自 server/API,这不是 Jmeter 的问题。有时并发请求会被服务器拒绝,因为它太弱无法处理 requests.In 我的情况,我要求我的服务器团队扩展服务器,以便我们可以测试底层 API 。值得一提的是,有时 Jmeter 也会耗尽内存。您可以在 jmeter 可执行文件的 set HEAP=-Xms512m -Xmx512m 属性 中进行一些调整。听众也消耗太多 resources.Try 不使用它们。