我正在使用涉及SSL客户端证书的JMeter 2.8设置测试计划。测试计划大致包括对server1和server2的两次https调用。
棘手的部分是对server1的调用不应该使用SSL客户端身份验证(尽管服务器正在请求),而对server2的调用必须使用SSL客户端身份验证。
目前,只要我向JMeter提供密钥库,所有https呼叫都会发送SSL证书,导致对server1的呼叫失败。
我目前尝试了两种方法:
-Djava.net.ssl.keyStore=xxx
并使用BeanShell或BSH预处理器在调用server2之前设置它但是它不起作用并且对服务器2的调用失败,好像没有密钥库那样已被指定。答案 0 :(得分:8)
您可以做的是:
向jmeter添加以下JVM属性:
-Djavax.net.ssl.keyStore=<path to folder containing keystore>/keystore.jks
-Djavax.net.ssl.keyStorePassword=password if any
在user.properties中设置:
https.use.cached.ssl.context=false
将HC4Impl用于必须发送客户端证书的采样器
将JavaImpl用于不能发送它的那个(这是一种技巧,我必须说我不明白为什么如果服务器请求它就不能发送客户端证书)