当前位置: 首页 > 知识库问答 >
问题:

JMeter:非HTTP响应消息:连接到URL被拒绝

何长恨
2023-03-14

我使用JMeter通过操作系统采样器来测试我们的后端服务。我在OS采样器中使用CURL来生成一个4步流程的负载。

  1. 发布证书以接收令牌
  2. 发布令牌以接收会话
  3. 获取会话信息
  4. POST续订会话

问题是我面临的是JMeter报告的响应时间比服务日志高得多。我们需要确定在事务执行期间,额外的时间(125毫秒,1个并发用户)来自哪里。测试环境都位于同一 VLAN 上,两个客户端和目标服务器之间没有防火墙或代理服务器。两台服务器之间的中值延迟为 0.3 毫秒,平均值为 1.2 毫秒(样本量较小)。在与开发团队交谈时,他们说服务日志不会在收到请求的第一刻记录,但看不到它如何超过几毫秒的差异。来自几个测试的数据增加了吞吐量,并且开销大致保持不变,这将与该假设一致。

因此,在这一点上,我们重点关注JMeter是否会导致额外的开销。一个假设是JMeter在开始生成CURL请求时开始事务时间,请求的打包包含在这个计时中。所以我们想把CURL OS采样器从测试中去掉,用HTTP采样器取而代之。

当将JMeter操作系统采样器CURL请求转换为HTTP采样器HTTPS请求时,我们遇到了错误JMeter:非HTTP响应消息:连接到URL被拒绝。如上所述,我们首先发布证书,发布令牌,然后执行步骤3和4。HTTP采样器在发布第一步获取的令牌时在第二步失败。我们已经通过继续错误并处理第二步原始CURL POST请求来验证获取的令牌是好的。所以这里有两件事。1.错误消息说它从未完成握手,因此它没有到达处理消息的地步。2.以下使用相同信息的CURL请求完成握手并正确处理交易。

进行转换归结为一个问题:“为什么发送操作系统采样器CURL命令完成而HTTP采样器无法完成握手?

OS采样器CURL命令配置为:

  • curl-k-d""-v-H"{Token}"{URL}

HTTP 采样器配置为:

  • IP:{URL}
  • 端口:{端口#}
  • 实现:HttpClient4
  • 协议:HTTPS
  • 方法:POST
  • 路径:{path}
  • 使用KeepAlive:检查
  • 标题管理器:{令牌}

共有1个答案

晏阳飙
2023-03-14

你的帖子中有两个独立的问题。关于第一个:

您如何测量服务器之间的延迟?如果您使用ping,则您正在测量1次发送和接收的往返时间。HTTP POST通常不仅仅包括TCP来回握手,然后发送内容-这同样取决于大小,可以分为多个数据包-HTTP响应通常大于请求。与简单的ping相比,对于更大的有效负载分组,延迟也可能稍微高一些。

这可能不是你看到的全部差异的原因(就像你已经注意到的,其中一些是因为启动curl的延迟),但仍然是导致整体延迟增加的原因。你应该使用某种网络分析器,至少是像WireShark这样的嗅探器来理解你正在使用的每个HTTP步骤的聊天次数或来回转数。

 类似资料:
  • 我有一个场景,从一个网站下载zip文件.当试图击中100个用户与jeter得到成功响应的所有100个用户,但当我尝试做同样的150个用户直到74个用户得到成功响应,这意味着用户下载zip文件没有任何错误,但其余用户得到以下错误:: 获取采样器结果:https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js代码:非HTTP响应代码

  • 我正在使用 Jmeter 执行一个脚本进行负载测试。我在两者之间遇到错误,例如。如果我应用了500users的负载,直到250个用户线程成功运行,那么错误来自连接超时错误。然后,它再次运行成功为某些线程,然后出错。 代码如下:- 响应标头: 我需要破坏服务器。 有人能帮我吗?

  • 我是JMeter的新手,正在尝试使用JMeter和SMTP发送HTTP请求和电子邮件。 我将JMeter错误作为非HTTP响应代码: < code > Java . net . socket exception/Non HTTP响应消息:连接重置 SMTP错误为500/ 我已完成以下设置: user.properties: hc。参数: 这些更改仍然没有解决我的问题。你能帮助我在哪里更改设置来解决

  • 我正在尝试用JMeter学习负载测试(非常新)。使用该教程在JMeter网站和另一个youtube教程上构建一个Web测试计划,我创建了一个HTTP GET请求来访问www.google.com/,但是我得到了以下结果: 这是我的要求:链接到图像,因为我还没有10个声誉 环顾四周,其他人正在遇到此问题,但他们的问题是在 250 个用户之后: 响应代码: 非 HTTP 响应代码: java.net.

  • 记录的Blazemeter脚本在JMeter中不工作,出现以下错误消息。 响应代码:非HTTP响应代码:java.net。SocketException响应消息:非HTTP响应消息:软件导致连接中止:recv失败

  • 这是我在JMeter 2.11中得到的许多线程/请求的错误消息,如果我在10秒内向配置为HAProxy 1.6.4的网络服务器发送100个线程/请求。此服务器通过简单的循环将请求重定向到2个Web服务器。 响应代码:非HTTP响应代码:javax。网ssl。SSLHandshakeException 响应消息:非HTTP响应消息:握手期间远程主机关闭连接 负载平衡服务器保持“冷却”(足够的CPU、