在JMeter中,我想使用没有转换证书的所有overhead的客户端证书,并且在JMeter重启后不要忘记单击SSL Manger菜单。
我希望能够灵活地在需要时使用不同的证书。
Java解决方案here看起来非常有前景。我尝试使用带有Groovy的JSR223 PreProcessor。这与第一行失败。它无法导入标准Java类。
2017-11-08 16:02:39,139 ERROR o.a.j.m.JSR223PreProcessor: Problem in JSR223 script, JSR223 PreProcessor
javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script37.groovy: 1: unable to resolve class java.security.Keystore
@ line 1, column 1.
import java.security.Keystore;
使用标准Java类需要做什么?
整个想法基于SoapUI中使用的解决方案。
import com.eviware.soapui.settings.SSLSettings
import com.eviware.soapui.model.settings.Settings
import com.eviware.soapui.SoapUI
Settings settings = SoapUI.getSettings()
settings.setString(SSLSettings.KEYSTORE, "../certificates/foo.p12")
settings.setString(SSLSettings.KEYSTORE_PASSWORD , "bar")
settings.reloadSettings()
这样的事情会在JMeter中发挥作用吗?使用哪个客户端发送HTTP采样器?
答案 0 :(得分:0)
这些不是标准的Java类",它看起来像SoapUI
您需要在JMeter Classpath下设置这些com.eviware.soapui.*
类才能使其正常运行。一旦添加了必要的.jars,JMeter将需要重新启动它们。但是我怀疑你能否在JMeter测试中使用这个com.eviware.soapui.model.settings.Settings
类实例。
有一种更简单的方法可以配置JMeter以使用客户端证书:只需将下一行添加到 system.properties 文件中:
javax.net.ssl.keyStoreType=pkcs12
javax.net.ssl.keyStore=../certificates/foo.p12
javax.net.ssl.keyStorePassword=bar
或通过-D command-line argument将它们传递给JMeter启动脚本,如:
jmeter -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStore=../certificates/foo.p12 -Djavax.net.ssl.keyStorePassword=bar -n -t test.jmx -l result.jtl
有关该方法的详细信息,请参阅How to Set Your JMeter Load Test to Use Client Side Certificates文章。