web-dev-qa-db-ja.com

JMeter 4-Windows 7でjmeter-serverを実行できません

最新のJMeter 4をダウンロードします

リモートテスト の一部として

リモートノードでJMeterを実行するには、JMETER_HOME/bin/jmeter-server(unix)またはJMETER_HOME/bin/jmeter-server.bat(windows)スクリプトを実行して、実行するすべてのマシンでJMeterサーバーコンポーネントを起動します。

Windows 7でjmeter-server.batを実行しようとすると、次のエラーが発生しました。

Server failed to start: Java.rmi.server.ExportException: Listen failed on port:
0; nested exception is:
        Java.io.FileNotFoundException: rmi_keystore.jks (The system cannot find
the file specified)
An error occurred: Listen failed on port: 0; nested exception is:
        Java.io.FileNotFoundException: rmi_keystore.jks (The system cannot find
the file specified)
errorlevel=1

ファイルrmi_keystore.jksが欠落しているようです。 (JMeterフォルダーに見つかりません)

JMeter 3.3では、jmeter-server.batが機能しています。

EDIT 1

create-rmi-keystore.batを実行すると、rmi_keystore.jksが作成されましたが、他のエラーが発生します。

Server failed to start: Java.rmi.server.ExportException: Listen failed on port:
0; nested exception is:
        Java.io.IOException: Java.security.UnrecoverableKeyException: Cannot rec
over key
An error occurred: Listen failed on port: 0; nested exception is:
        Java.io.IOException: Java.security.UnrecoverableKeyException: Cannot rec
over key
errorlevel=1

ログからのエラー:

2018-02-11 12:09:13,916 ERROR o.a.j.e.DistributedRunner: Failed to create engine at 127.0.0.1
Java.rmi.ConnectIOException: Exception creating connection to: 127.0.0.1; nested exception is: 
    Java.io.IOException: Java.security.UnrecoverableKeyException: Cannot recover key
    at Sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source) ~[?:1.8.0_25]
    at Sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) ~[?:1.8.0_25]
    at Sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) ~[?:1.8.0_25]
    at Sun.rmi.server.UnicastRef.newCall(Unknown Source) ~[?:1.8.0_25]
    at Sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) ~[?:1.8.0_25]
    at org.Apache.jmeter.engine.ClientJMeterEngine.getEngine(ClientJMeterEngine.Java:70) ~[ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.engine.ClientJMeterEngine.<init>(ClientJMeterEngine.Java:83) ~[ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.engine.DistributedRunner.createEngine(DistributedRunner.Java:237) ~[ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.engine.DistributedRunner.getClientEngine(DistributedRunner.Java:213) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.engine.DistributedRunner.init(DistributedRunner.Java:93) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.Java:80) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.Java:88) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.Java:70) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.gui.action.ActionRouter$$Lambda$63/2068100669.run(Unknown Source) [ApacheJMeter_core.jar:4.0 r1823414]
    at Java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventQueue.access$400(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
    at Java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_25]
    at Java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]
Caused by: Java.io.IOException: Java.security.UnrecoverableKeyException: Cannot recover key
    at org.Apache.jmeter.rmi.SSLRMIClientSocketFactory.createSocket(SSLRMIClientSocketFactory.Java:110) ~[ApacheJMeter_core.jar:4.0 r1823414]
    ... 28 more
Caused by: Java.security.UnrecoverableKeyException: Cannot recover key
    at Sun.security.provider.KeyProtector.recover(Unknown Source) ~[?:1.8.0_25]
    at Sun.security.provider.JavaKeyStore.engineGetKey(Unknown Source) ~[?:1.8.0_25]
    at Sun.security.provider.JavaKeyStore$JKS.engineGetKey(Unknown Source) ~[?:1.8.0_25]
    at Java.security.KeyStore.getKey(Unknown Source) ~[?:1.8.0_25]
    at Sun.security.ssl.SunX509KeyManagerImpl.<init>(Unknown Source) ~[?:1.8.0_25]
    at Sun.security.ssl.KeyManagerFactoryImpl$SunX509.engineInit(Unknown Source) ~[?:1.8.0_25]
    at javax.net.ssl.KeyManagerFactory.init(Unknown Source) ~[?:1.8.0_25]
    at org.Apache.jmeter.rmi.SSLRMIClientSocketFactory.createSocket(SSLRMIClientSocketFactory.Java:103) ~[ApacheJMeter_core.jar:4.0 r1823414]
    ... 28 more
2018-02-11 12:09:24,368 INFO o.a.j.e.DistributedRunner: Failed to configure 127.0.0.1
2018-02-11 12:09:24,369 INFO o.a.j.e.DistributedRunner: Stopping remote engines
2018-02-11 12:09:24,370 INFO o.a.j.e.DistributedRunner: Remote engines have been stopped
2018-02-11 12:09:24,370 ERROR o.a.j.g.a.ActionRouter: Error processing org.Apache.jmeter.gui.action.RemoteStart@3249a1ce
Java.lang.RuntimeException: Following remote engines could not be configured:[127.0.0.1]
    at org.Apache.jmeter.engine.DistributedRunner.init(DistributedRunner.Java:112) ~[ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.Java:80) ~[ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.Java:88) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.Java:70) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.Apache.jmeter.gui.action.ActionRouter$$Lambda$63/2068100669.run(Unknown Source) [ApacheJMeter_core.jar:4.0 r1823414]
    at Java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventQueue.access$400(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
    at Java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_25]
    at Java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
    at Java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]

EDIT 2

server.rmi.ssl.keystore.passwordを自分が書いたパスワードに変更しようとしましたが、別のエラーが発生しました

Server failed to start: Java.rmi.server.ExportException: Listen failed on port:
0; nested exception is:
        Java.io.IOException: Keystore was tampered with, or password was incorre
ct
An error occurred: Listen failed on port: 0; nested exception is:
        Java.io.IOException: Keystore was tampered with, or password was incorre
ct

EDIT 3

reference に従って手動でサーバーポートを設定しようとしましたSET SERVER_PORT=1099

Windowsでは、これはSET SERVER_PORT =で実行できます。

7
user7294900

問題を解決するには、以下に従う必要があります。

問題は、create-rmi-keystoreを実行するときの最初の質問に対する答えでした

あなたの名と姓は何ですか?

JMeterのプロパティserver.rmi.ssl.keystore.aliasのデフォルト値としてrmiと答えるべきでした

また、(JMeter 3.3との違い)ホスト名を使用するようにJMeterのプロパティremote_hostsを変更する必要がありました(127.0.0.1からの変更)

これはに関連しています:

8
user7294900

同じ問題がありました。

それを解決するには、いくつかのオプションがあります。

  1. jmeter.propertiesで説明されているように、rmi-keystoreパスワードをchangeitに設定します。

    トラストストアのパスワード
    server.rmi.ssl.truststore.password = changeit

  2. カスタムパスワードを使用している場合-jmeter-serverマシンのuser.propertiesに追加します

  3. -Jserver.rmi.ssl.disable=trueを渡してSSLを無効にします

4
Denys Boiko

(JMeter 5.0で)うまくいったのは、次の構成のjmeter-server.propertiesファイル専用でした:

# Type of keystore : JKS
server.rmi.ssl.keystore.type=JKS
#
# Keystore file that contains private key
server.rmi.ssl.keystore.file=rmi_keystore.jks
#
# Password of Keystore
server.rmi.ssl.keystore.password=changeit
#
# Key alias
server.rmi.ssl.keystore.alias=rmi
#
# Type of truststore : JKS
server.rmi.ssl.truststore.type=JKS
#
# Keystore file that contains certificate
server.rmi.ssl.truststore.file=rmi_keystore.jks
#
# Password of Trust store
server.rmi.ssl.truststore.password=changeit

JMeter binフォルダーにrmi_keystore.jksコマンドを使用してcreate-rmi-keystoreファイルを作成しました。次に、jmeter-server -Gjmeter-server.propertiesでサーバーを起動しました。また、サーバーからのログを確認して、エンドポイントが ser72949 のようにサーバーとクライアントを接続するようにします。

Created remote object: UnicastServerRef2 [liveRef: [endpoint:[<this is your server>
2
cuh

これに対する解決策が見つかるまで、上記のすべての問題に直面しました。これは次のとおりです。

  • エラーJava.security.UnrecoverableKeyException: Cannot recover keyは、keystorekeyEntryパスワードが異なる場合に発生します。

  • この問題を解決するには、過去の証明書と要求ファイルのすべてのトレースを削除する必要があります。

  • 新しいkeystore, keyEntryおよびCSRを生成し、キーストアとkeyEntryに同じパスワードを指定する必要があります。

0
Saksham Bahati