簡體   English   中英

使用Groovy使用JMeter的標准Java類

[英]Use standard Java classes from JMeter using Groovy

在JMeter中,我想使用客戶端證書,而沒有轉換證書的所有開銷 ,並且不要忘記在JMeter重新啟動后單擊SSL Manger菜單。

我希望可以靈活地在需要時使用不同的證書。

這里的Java解決方案看起來非常有前途。 我試圖在Groovy中使用JSR223預處理器。 第一行失敗。 它無法導入標准的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采樣器?

這些不是“標准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命令行參數將它們傳遞給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

有關此方法的更多詳細信息,請參見如何設置JMeter負載測試以使用客戶端證書

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM