gpt4 book ai didi

java - 如何将 JMeter 配置为始终使用新的 SSL session ID?

转载 作者:行者123 更新时间:2023-11-30 11:30:07 28 4
gpt4 key购买 nike

我正在尝试使用各种工具(包括 JMeter)对每秒 SSL 握手进行基准测试。我已经成功地创建了一个满足我需求的测试计划,除了我现在想测试每秒 SSL 握手次数与有无 SSL session 重用相比如何。据我了解,默认情况下,Java 具有无限大小的 SSL session 缓存,并且条目会在 24 小时后过期。

我已经尝试使用 JMeter 属性“https.use.cached.ssl.context”和“https.sessioncontext.shared”,但即使这些属性为 false,它也不能满足我的需求。当两者都为 false 时,线程中的第一个 HTTPS 请求使用新的 session ID,但线程中之后的每个 HTTPS 请求都重复使用 session ID。即使我将未记录的 Java 属性“javax.net.ssl.sessionCacheSize”设置为 1 以仅允许缓存一个 SSL session ID,如果我有 10 个线程,每个线程总共发出 5 个 HTTP 请求,我也会看到 10 个新的 SSL session 协商,并重用了 40 个 SSL session (使用 ssldump 和 STunnel 日志验证)。

是否可以通过 JMeter 或 Java 让每个 HTTPS 请求都使用新的 SSL session ID?

最佳答案

这个有效:

  • https.use.cached.ssl.context=false 在 user.properties 中设置
  • 对 HTTP 请求使用 HTTPClient 3.1 或 4 实现

编辑(在 Kaelen 评论之后):将 https.use.cached.ssl.context 属性设置为 false(使用 HTTPClient 3.1/4)确实有效,唯一棘手的部分是 SSL session 上下文仅在线程组迭代结束时重置 。在测试计划中,线程组没有迭代,组内有一个无限循环,一直运行到 # of requests 发生。因为线程组从不重复,所以 SSL 上下文没有被重置。

在这种情况下,删除线程组中的循环并配置线程组中的迭代次数。

关于java - 如何将 JMeter 配置为始终使用新的 SSL session ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17959363/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com