JMeter 中的 SSL 握手时间比 Locust 工具更长

问题描述 投票:0回答:1

我们在 JMeter 负载测试中观察到我们的一个 API 的 SSL 握手次数更高。该 API 的 95% 约为 105 毫秒。我们使用 Locust 工具在同一负载生成器上对同一 API 进行了负载测试。令人惊讶的是,P95 响应约为 40 毫秒.

这是我第一次观察到两个工具之间的响应时间存在巨大差异 JMeter 中的 SSL 握手花费了太多时间,并且在 tcp 转储中非常明显。如何解决 JMeter 中的 SSL 握手时间问题。我们在请求中使用 Httpclient4 作为客户端实现

我们还尝试设置所有 ssl 选项,例如 https.default.protocol、https.socket.protocols、https.use.cached.ssl.context、httpclient.reset_state_on_thread_group_iteration、httpclient4.idletimeout、httpclient4.validate_after_inactivity。

请让我知道如何解决 jmeter 中的 ssl 耗时较长问题

ssl jmeter ssl-certificate performance-testing
1个回答
0
投票
  1. 表现良好的负载测试工具必须针对相同的操作报告相同或几乎相同的时间。
  2. 您不应该将 Locust 与 JMeter 进行比较,而应该将 Locust 与真实浏览器(或其他 API 使用者)进行比较

关于 SSL 握手,如果您确实有证据证明 JMeter 中的 SSL 握手比其他 HTTP 客户端中的更长 - 您可以为 JMeter 项目提出问题并在那里描述您的发现。

我尝试使用 Taurus 工具重现您的问题,使用 10 个虚拟用户和 100 次迭代访问 https://example.com 网站,JMeter 为 0.09,Locust 为 0.095,这与 Firefox 浏览器和像 cURL 报告这样的工具。

金牛座脚本以防万一您想自己玩:

#JMeter
execution:
  - executor: jmeter
    concurrency: 10
    iterations: 100
    scenario: request_example

scenarios:
  request_example:
    requests:
      - https://example.com

#Locust
execution:
  - executor: locust
    concurrency: 10
    iterations: 100
    scenario: request_example

scenarios:
  request_example:
    default-address: https://example.com
    requests:
      - url: /
        method: get
© www.soinside.com 2019 - 2024. All rights reserved.