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

使用Gatling进行负载测试时TLS握手超时

须彭亮
2023-03-14

我目前在AWS中使用Gatling加载测试我的服务。我使用HTTP做了几次负载测试,我的服务工作得很好。没有TLS握手错误。当我们移动到HTTPS时,html" target="_blank">负载测试结果显示TLS握手超时异常到处都是,最后因为未处理的请求排队而抛出OOM。

其他信息:

  • Gatling场景如下:发送三个请求,然后使用连接:close头发送一个请求。我想模拟发送三个保持活动状态的请求,并在最后关闭它
  • 我的服务由Kubernetes管理

我所做的:

  • 我在其他Gatling实例上运行了负载测试,但是错误仍然存在
  • 重启AWS负载均衡器。附加说明:没有4xx和5xx错误,但是我们有客户端TLS协商错误。

我的问题是:

  1. 是否由于HTTPS所需的初始握手而发生错误?
  2. 是否由于AWS负载均衡器而发生错误?

非常感谢。

共有2个答案

祁曦哲
2023-03-14

您需要向客户端添加SSL调试标志-它将显示错误的性质。TLS握手超时通常是由于密码/协议不匹配造成的。

找出Gatling服务器正在使用的特定TLS协议和密码集,并确保您的ELB HTTPS侦听器使用正确的密码和协议

来自经典负载均衡器的SSL协商配置

弹性负载平衡使用安全套接字层(SSL)协商配置(称为安全策略)来协商客户端和负载平衡器之间的SSL连接。安全策略是SSL协议、SSL密码和服务器顺序首选项选项的组合。有关为负载平衡器配置SSL连接的更多信息,请参阅经典负载平衡器的侦听器。

尝试在那里允许所有密码/协议。

韦安顺
2023-03-14

所以问题似乎是因为盖特林握手的时间比每秒创作用户的时间要长。通过减少创建的用户数量并增加RPS的数量,解决了这一问题。

 类似资料:
  • 我已经创建了自己的私有注册表(私有注册表),但我无法将图像推送到它。比我得到以下错误: 正在运行的注册表的日志显示以下内容: 我无法卷曲我的注册表(超时)。以下是我执行的步骤: 首先,我创建了自签名证书: 我已创建注册表,它将使用以下证书: 我授予了正确的权限: 我创建了:,并复制了我的在它里面。我编辑了我的并添加了:(我的内部ip和注册表名) 我还重新启动了docker和我的注册表。 编辑:

  • 假设我需要编写一个gatling负载测试脚本,它需要调用两个api A1和A2。它首先需要调用A1,A1将返回一个JSON负载,它需要在JSON负载中提取一个字段,并在调用第二个API时使用该字段值。有人能告诉我怎么做吗?此脚本用于负载测试通过HTTP的服务器restful API。

  • 我想写一个gatling负载测试模拟类。我有三个请求:请求1、请求2和请求3。我希望能够在5秒内完成300个用户的负载测试。我还需要测试总共运行20分钟。 现在,我需要同时运行这三个请求,但需要90%的吞吐量、5%的吞吐量和5%的吞吐量。例如:如果有100个请求,90个必须是请求1和请求2的5,以及请求3的5。 到目前为止,我的课程是: 我不确定如何将这三个api放在一个场景中并分别使用updat

  • 我如何负载测试一个同时有300个用户使用jmeter的登录页面(而不是一个又一个用户。同时有300个用户登录)?线程组的设置应该是什么?

  • 嗨,我是JMeter的新手,我知道如何使用JMeter执行负载测试。我试图弄清楚压力测试或容量测试是如何通过JMeter执行的。是不是通过逐渐增加JMeter中的线程数,我们可以确定何时出现性能问题,并获得阈值,在阈值以上运行测试。那它会做压力测试吗? 在如何执行压力测试和能力测试与Jeter工具混淆。

  • 我正在尝试使用mocha和mongoose编写一个测试用例。但我编写的以下代码片段在每个“hook:error:timeout of 2000ms extered.确保在此测试中调用了done()回调”之前都给出了错误“Todo”。我无法解决此问题。我是node的初学者。谁能在这个问题上帮我一下吗。提前谢谢。