Je télécharge le dernier JMeter 4,
Dans le cadre de Test à distance
Pour exécuter JMeter sur un nœud distant, démarrez le composant serveur JMeter sur toutes les machines sur lesquelles vous souhaitez fonctionner en exécutant le script JMETER_HOME/bin/jmeter-server (unix) ou JMETER_HOME/bin/jmeter-server.bat (windows).
J'essaie d'exécuter jmeter-server.bat dans Windows 7 .__ et j'ai l'erreur suivante:
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
Il semble qu'un fichier rmi_keystore.jks est manquant. (Je ne le trouve pas dans les dossiers JMeter)
Dans JMeter 3.3, jmeter-server.bat fonctionne.
EDIT 1
après avoir exécuté create-rmi-keystore.bat
, il a créé rmi_keystore.jks, mais j'obtiens une autre erreur:
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
erreur du journal:
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
J'ai essayé de changer server.rmi.ssl.keystore.password
en mot de passe que j'ai écrit mais j'ai eu une erreur différente
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
J'ai essayé de définir le port du serveur manuellement SET SERVER_PORT=1099
en fonction de référence mais j'essayais toujours d'écouter via le port 0
Sous Windows, cela peut être fait par: SET SERVER_PORT =
Pour résoudre le problème, vous devez suivre:
Le problème était la réponse à la première question lors de l'exécution de create-rmi-keystore
Quel est votre prénom et votre nom?
J'aurais dû répondre rmi
car c'est la valeur par défaut dans la propriété JMeter server.rmi.ssl.keystore.alias
De plus (différence par rapport à JMeter 3.3), je devais modifier la propriété remote_hosts
de JMeter afin qu'elle utilise mon nom d'hôte (modification de 127.0.0.1)
Ceci est lié à:
Avait le même problème.
Pour le résoudre, vous avez plusieurs options:
Définissez le mot de passe rmi-keystore sur changeit
, comme décrit dans jmeter.properties
:
Mot de passe du magasin de confiance
server.rmi.ssl.truststore.password = changeit
Si vous utilisez un mot de passe personnalisé - ajoutez-le à user.properties
sur la machine jmeter-server
Désactiver SSL en passant -Jserver.rmi.ssl.disable=true
Ce qui a fonctionné pour moi (avec JMeter 5.0) était un fichier jmeter-server.properties
dédié avec ces configurations:
# 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
J'ai créé un fichier rmi_keystore.jks
avec la commande create-rmi-keystore
dans le dossier bin JMeter. Ensuite, j'ai démarré mon serveur avec jmeter-server -Gjmeter-server.properties
. Consultez également le journal du serveur pour que le système d'extrémité connecte votre client au serveur en tant que user7294900 suggéré.
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[<this is your server>
J'ai fait face à tous les problèmes ci-dessus, jusqu'à ce que je trouve la solution, qui est la suivante:
L'erreur Java.security.UnrecoverableKeyException: Cannot recover key
se produit lorsque les mots de passe keystore
et keyEntry
sont différents.
Pour résoudre ce problème, vous devez supprimer toutes les traces du certificat précédent et du fichier de demande.
Vous devez générer un nouveau keystore, keyEntry
et CSR
et spécifier le même mot de passe pour le magasin de clés et le keyEntry.