jmeter - 运行 JMeter 时收到非 HTTP 响应代码异常
问题描述
使用 JMeter/Blazemeter 运行测试时,我在测试开始后 10-20 分钟随机收到以下错误。
- 非 HTTP 响应代码:org.apache.http.conn.HttpHostConnectException
- 500内部服务器错误
- 非 HTTP 响应代码:org.apache.http.TruncatedChunkException
- 非 HTTP 响应代码:org.apache.http.NoHttpResponseException
我有 Apache 和 Weblogic 服务器。我尝试了以下
将客户端实现更改为 HTTPClient4
分别更新 user.properties 文件和 hc.parameters 文件如下
httpclient4.retrycount=1 hc.parameters.file=hc.parameters http.connection.stalecheck$Boolean=true
在 HTTP 请求中禁用“使用 Keep-Alive”。
这个问题有解决方案吗?
解决方案
为什么您认为这是与 JMeter 相关的问题?HTTP 状态代码 5xx是服务器端错误,因此我建议不要调整 JMeter 查看被测系统,特别是:
- 负载均衡器/反向代理或Apache 用于日志的内容
- 网络逻辑日志
- 所有后端组件在 CPU、RAM、网络、磁盘等方面是否有足够的资源,如果您没有 APM 工具,可以考虑使用JMeter PerfMon Plugin
- Apache/Weblogic/Database/其他中间件的配置,因为它们都需要针对高负载进行适当的调整。
- HttpHostConnectException - 表示无法建立连接
- TruncatedChunkException - 表示您收到不完整的响应
- NoHttpResponseException - 表示无法将响应解析为 HTTP 打包
所以我的期望是您的应用程序会过载,因此无法正确响应 JMeter 请求。我也不认为您“随机”收到错误,尝试从 1 个线程开始并逐渐增加负载,直到您开始收到错误,这样您就可以说明每秒的用户/请求数量是多少“安全”,最大值是多少,响应时间何时开始增长,何时开始出现错误,负载减少时应用程序是否恢复正常等。
推荐阅读
- azure-sql-database - Azure数据库自动备份后如何运行sql脚本
- python - 您如何查看已上传到 Heroku 的 Django 应用程序中的 PostgreSQL 数据库和表?
- javascript - 获取请求 axios React js useEffect 不起作用(找不到模块'./undefined')
- javascript - 如何在堆积条形图中显示 json api 数据值?
- java - 为什么 Eclipse 建议使用 ArrayList
- php - 带数组的php mysqli查询
- regex - 在 Grep for Windows 命令行中使用正则表达式
- javascript - 如何在解决之前等待 nedb 查询完成?查询有时会超出承诺
- html - 角材料扩展表
- mongodb - 如何在 MongoDB 中查找包含空值的文档的数量?