JMeter错误:java.net.SocketException:来自服务器的文件意外结束

JMeter错误:java.net.SocketException:来自服务器的文件意外结束,jmeter,Jmeter,我已经阅读并尝试了在之前的帖子中分享的解决方案,但是没有任何东西可以帮助我解决这个问题。请帮忙 我正在进行HTTPS API调用。一个非常简单的调用,它通过POST方法接受一个2 KB的JSON消息,并发送一个单词的确认。它在邮递员工具中工作得非常好。在JMeter中,线程(用户)的数量保持为25。它一次工作得非常好,有25个成功响应,有时几乎没有失败响应 响应代码:非HTTP响应代码:java.net.SocketException 响应消息:非HTTP响应消息:来自服务器的文件意外结束 没有

我已经阅读并尝试了在之前的帖子中分享的解决方案,但是没有任何东西可以帮助我解决这个问题。请帮忙

我正在进行HTTPS API调用。一个非常简单的调用,它通过POST方法接受一个2 KB的JSON消息,并发送一个单词的确认。它在邮递员工具中工作得非常好。在JMeter中,线程(用户)的数量保持为25。它一次工作得非常好,有25个成功响应,有时几乎没有失败响应

响应代码:非HTTP响应代码:java.net.SocketException

响应消息:非HTTP响应消息:来自服务器的文件意外结束

没有一致性。我还尝试了启用和禁用“UseKeepalive”复选框。都给了我一次成功的机会;由于上述错误,很少/所有故障会在另一时间发生。请帮忙。多谢各位

以下是JMeter设置:

  • HTTP头管理器:内容类型-应用程序/json
  • HTTPRequest采样器:协议-HTTPS
  • 服务器名称或IP:项目服务器名称
  • 方法:邮寄
  • PATH:作为参数传递https身份验证详细信息的所需路径
  • 实现:设置为JAVA(HTTPCLIENT4给了我“443未能响应”错误)
这两个错误(Java实现和Apache HTTPClient4实现)本质上说的是同一件事:服务器关闭了连接,没有提供任何响应。我认为可能有以下原因:

  • 身份验证问题。如果服务器端在处理请求之前检查身份验证(例如,使用Spring),它可能会拒绝您的请求,如果身份验证被认为不正确,它可能不会干扰任何响应

  • 请求问题。通过Jmeter发送的请求的一些不太明显的属性与在Postman中发送的请求不同。这可能是格式化方面的一些小问题,也可能是服务器期望的一些标题。其中一些不一致还可能导致负载平衡器(如果您使用负载平衡器)在将请求传递到服务器之前拒绝请求

  • 证书问题。因为您使用的是HTTPS,所以需要确保在JMeter端正确设置了证书

因此,我建议:

  • 查看服务器日志,查看您的请求是否发送到服务器。如果是,您可能可以看到它是如何被拒绝的。如果没有,您需要追溯并查看是谁拒绝了它(LB、身份验证等)
  • 将JMeter发送的头和正文与邮递员发送的头和正文逐行进行比较(例如,使用TCPDump获取它) 添加标题 连接保持活动状态