2013-02-27 45 views
1

我想確定引用不同keyStore文件以滿足我的負載測試需求的最佳方式。具有多個密鑰庫的Jmeter

我有套不同的證書不同的環境。一個用於開發,一個用於分期。我的目標是使用一個帶參數的測試計劃來告訴Jmeter要打哪個環境。

如何通過BeanShell的告訴的JMeter使用哪個的keyStore?電流在system.properties設置如下:

javax.net.ssl.keyStore=C:/apache-jmeter-2.9/bin/ssl/myKeyStore.jks 
#The password to your keystore 
javax.net.ssl.keyStorePassword=supersecret 

此外,如果我通過在經由命令行以下操作:

-Djavax.net.ssl.keyStore=path_to_keystore 
-Djavax.net.ssl.keyStorePassword=password_of_keystore 

它覆蓋在system.properties文件分配的值?

感謝您的閱讀, 的JMeter凡

回答

0

解決的問題!它只是在你的BeanShell腳本一個簡單的任務,並添加一些有條件的邏輯,以確定打哪個環境(提示:不要爲你的參數使用單引號):

System.setProperty("javax.net.ssl.keystore","path/to/keystore"); 
System.setProperty("javax.net.ssl.keyStorePassword","supersecret"); 
+0

問題未解決。忘了刪除system.properties中的值。上面的代碼行是不是正確的那些的JMeter – user1951677 2013-03-01 01:06:38

+0

內與beanshell中使用當心,密鑰庫寫在駱駝情況:javax.net.ssl.keyStore – leo 2014-09-18 09:24:54

0

我做了這個工作:

import org.apache.jmeter.util.SSLManager; 
System.setProperty("javax.net.ssl.keyStore","foo.jks"); 
System.setProperty("javax.net.ssl.keyStorePassword","fooPW"); 
SSLManager.getInstance().reset(); 

這是一個代碼採樣BeanShell中,在線程組要切換到另一個密鑰庫。於是,在這個線程組,不要忘記將配置像任何SSL配置(HTTPS,Java實現,服務器名稱和端口)一個HTTP請求默認值

我在測試計劃中使用它,其中所有的測試都是連續執行的,如果不是的話,您應該重做這個解決方案。

有點兒棘手和醜陋是的,但它的工作原理。

+0

FYI。雖然這工作的一個別名,我不能讓這個工作多個別名。我必須通過命令行中的密鑰庫和密碼才能工作(Jmeter 3.1)。 – vanteo 2017-05-04 19:47:37