我正在尝试使用包括 JMeter 在内的各种工具对每秒 SSL 握手进行基准测试。我已经成功地创建了一个满足我需要的测试计划,除了我现在想测试在使用和不使用 SSL 会话重用的情况下每秒的 SSL 握手次数。据我了解,默认情况下,Java 具有无限大小的 SSL 会话缓存,并且条目在 24 小时后过期。
我尝试使用 JMeter 属性“https.use.cached.ssl.context”和“https.sessioncontext.shared”,但即使这些属性为假,它也不能满足我的需求。当两者都为 false 时,线程中的第一个 HTTPS 请求使用新的会话 id,但之后线程中的每个 HTTPS 请求都重用一个会话 id。即使我将未记录的 Java 属性“javax.net.ssl.sessionCacheSize”设置为 1 以仅允许缓存一个 SSL 会话 ID,如果我有 10 个线程,每个线程总共发出 5 个 HTTP 请求,我会看到 10 个新的 SSL 会话协商,并重用了 40 个 SSL 会话(使用 ssldump 和 STunnel 日志验证)。
是否可以通过 JMeter 或 Java 让每个 HTTPS 请求都使用新的 SSL 会话 ID?