2016-04-25 4 views
1

Ich bin neu in Jmeter und ich versuche verteilten Tests zu laufen mit diesem Tool mit folgenden Konfiguration:Jmeter Remote-Test: .RemoteJMeterEngineImpl_Stub (kein Sicherheitsmanager: RMI Class Loader deaktiviert)

  1. Client (Master) - Windows-7
    • Java-Version - 1.8.0_92 (7u79 wird auch versucht)
    • JMeter, Version - 2,13
  2. Server (Slave) - VM Ubuntu 14 (mit usin g VirtualBox)
    • Jave Version - 1.7.0_95
    • Jmeter Version - 2.8.20130705

ich getan habe und versucht alles, was ich in offiziellen tutorial und auf anderen Beiträgen, einschließlich Stackoverflow-Posts, aber kein Erfolg. ich den nächsten Fehler die ganze Zeit erhalten, wenn ich versuche, Test auf dem Server über Client ausgeführt werden:

java.rmi.UnmarshalException: error unmarshalling zurückkehren; verschachtelte Ausnahme ist: java.lang.ClassNotFoundException: org.apache.jmeter.engine.RemoteJMeterEngineImpl_Stub (kein Sicherheitsmanager: RMI Class Loader deaktiviert)

Was ich in verschiedenen Kombinationen ausprobiert habe:

  • deaktivieren Firewall auf Ubuntu und Windows
  • das gleiche Subnetz
  • Einstellung Hostnamen in jmeter-Server-Datei mit:

    RMI_HOST_DEF = -Djava.rmi.server.hostname = 172.29.148.49

  • Erstellen .java.policy Datei mit alle Berechtigungen in jmeter/bin gewähren:

    grant { Erlaubnis java.security. AllPermission; };

  • Einstellung in jmeter-Server-Datei:

    -Djava.security.policy = file: /usr/share/jmeter/bin/.java.policy

  • Einstellung alle Berechtigungen in java.policy Datei (usr/lib/jvm/java-7-openjdk-amd64/jre/lib/security/java.policy)

In Ergebnisse, wenn ich jmeter-Server auf VM Ubuntu starten, wie es scheint dass alles in Ordnung ist.Ich bekomme:

log_file=jmeter-server.log java.io.FileNotFoundException: jmeter-server.log  (Permission denied) 
[log_file-> System.out] 
2016/04/25 17:13:52 INFO - jmeter.util.JMeterUtils: Setting Locale to en_US 
2016/04/25 17:13:52 INFO - jmeter.JMeter: Loading user properties from: /usr/share/jmeter/bin/user.properties 
2016/04/25 17:13:52 INFO - jmeter.JMeter: Loading system properties from: /usr/share/jmeter/bin/system.properties 
2016/04/25 17:13:52 INFO - jmeter.JMeter: Setting System property: java.net.preferIPv4Stack=true 
2016/04/25 17:13:52 INFO - jmeter.JMeter: Setting System property: java.rmi.server.hostname=172.29.148.49 
2016/04/25 17:13:52 INFO - jmeter.JMeter: Setting System property: server_port=1099 
2016/04/25 17:13:52 INFO - jmeter.JMeter: Copyright (c) 1998-2012 The Apache Software Foundation 
2016/04/25 17:13:52 INFO - jmeter.JMeter: Version 2.8.20130705 
2016/04/25 17:13:52 INFO - jmeter.JMeter: java.version=1.7.0_95 
2016/04/25 17:13:52 INFO - jmeter.JMeter: java.vm.name=OpenJDK 64-Bit Server VM 
2016/04/25 17:13:52 INFO - jmeter.JMeter: os.name=Linux 
2016/04/25 17:13:52 INFO - jmeter.JMeter: os.arch=amd64 
2016/04/25 17:13:52 INFO - jmeter.JMeter: os.version=4.2.0-35-generic 
2016/04/25 17:13:52 INFO - jmeter.JMeter: file.encoding=UTF-8 
2016/04/25 17:13:52 INFO - jmeter.JMeter: Default Locale=English (United States) 
2016/04/25 17:13:52 INFO - jmeter.JMeter: JMeter Locale=English (United States) 
2016/04/25 17:13:52 INFO - jmeter.JMeter: JMeterHome=/usr/share/jmeter 
2016/04/25 17:13:52 INFO - jmeter.JMeter: user.dir =/usr/share/jmeter/bin 
2016/04/25 17:13:52 INFO - jmeter.JMeter: PWD  =/usr/share/jmeter/bin 
2016/04/25 17:13:52 INFO - jmeter.JMeter: IP: 127.0.1.1 Name: ubuntu FullName: ubuntu 
Created remote object: UnicastServerRef [liveRef: [endpoint:[172.29.148.49:45755](local),objID:[-1533104d:1544dc4ef79:-7fff, 2602978299635569139]]] 
2016/04/25 17:13:52 INFO - jmeter.engine.RemoteJMeterEngineImpl: Starting backing engine on 1099 
2016/04/25 17:13:52 INFO - jmeter.engine.RemoteJMeterEngineImpl: IP address=172.29.148.49 
2016/04/25 17:13:52 INFO - jmeter.engine.RemoteJMeterEngineImpl: IP address is a site-local address; this may cause problems with remote access. 
    Can be overridden by defining the system property 'java.rmi.server.hostname' - see jmeter-server script file 
2016/04/25 17:13:52 INFO - jmeter.engine.RemoteJMeterEngineImpl: Creating RMI registry (server.rmi.create=true) 
2016/04/25 17:13:52 INFO - jmeter.engine.RemoteJMeterEngineImpl: Bound to registry on port 1099 

Aber wenn ich tryting Jmeter von Client (Master) unter Windows, unabhängig GUI oder Nicht-GUI-Modus ausführen, bekomme ich die nächste Fehlerprotokoll Spur:

2016/04/25 13:15:58 INFO - jmeter.engine.DistributedRunner: Configuring remote engine: 172.29.148.49:1099 
2016/04/25 13:15:58 ERROR - jmeter.engine.DistributedRunner: Failed to create engine at 172.29.148.49:1099 java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
java.lang.ClassNotFoundException: org.apache.jmeter.engine.RemoteJMeterEngineImpl_Stub (no security manager: RMI class loader disabled) 
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) 
    at java.rmi.Naming.lookup(Unknown Source) 
    at org.apache.jmeter.engine.ClientJMeterEngine.getEngine(ClientJMeterEngine.java:54) 
    at org.apache.jmeter.engine.ClientJMeterEngine.<init>(ClientJMeterEngine.java:67) 
    at org.apache.jmeter.engine.DistributedRunner.createEngine(DistributedRunner.java:237) 
    at org.apache.jmeter.engine.DistributedRunner.getClientEngine(DistributedRunner.java:213) 
    at org.apache.jmeter.engine.DistributedRunner.init(DistributedRunner.java:91) 
    at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:81) 
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:81) 
    at org.apache.jmeter.gui.action.ActionRouter.access$000(ActionRouter.java:40) 
    at org.apache.jmeter.gui.action.ActionRouter$1.run(ActionRouter.java:63) 
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$500(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: org.apache.jmeter.engine.RemoteJMeterEngineImpl_Stub (no security manager: RMI class loader disabled) 
    at sun.rmi.server.LoaderHandler.loadClass(Unknown Source) 
    at sun.rmi.server.LoaderHandler.loadClass(Unknown Source) 
    at java.rmi.server.RMIClassLoader$2.loadClass(Unknown Source) 
    at java.rmi.server.RMIClassLoader.loadClass(Unknown Source) 
    at sun.rmi.server.MarshalInputStream.resolveClass(Unknown Source) 
    at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) 
    at java.io.ObjectInputStream.readClassDesc(Unknown Source) 
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 
    at Java. I. ObjectInputStream. readObject0 (Unknown Source) 
    at java.io.ObjectInputStream.readObject(Unknown Source) 
    ... 25 more 

Kann jemand mit diesem Problem helfen.

Vielen Dank.

Antwort

0

Was ich in verschiedenen Kombinationen ausprobiert habe:

  • deaktivieren Firewall auf Ubuntu und Windows

Irrelevant

  • das gleiche Subnetz mit

Nicht relevant.

  • Einstellung Hostnamen in jmeter-Server-Datei:
RMI_HOST_DEF=-Djava.rmi.server.hostname=172.29.148.49 

Irrelevant.

  • Erstellen .java.policy Datei mit alle Berechtigungen in jmeter/bin gewähren:
grant { permission java.security.AllPermission; }; 

Irrelevant.

  • Einstellung in jmeter-Server-Datei:
-Djava.security.policy=file:/usr/share/jmeter/bin/.java.policy 

Irrelevant.

  • alle Berechtigungen in java.policy Datei Einstellung (usr/lib/jvm/java-7-openjdk-amd64/jre/lib/security/java.policy)

Irrelevant .

Ihre Vorgehensweise ist verwirrend. Weder die Firewall noch das Subnetz noch der Hostname noch der.Richtliniendatei noch ihren Namen noch ihren Inhalt haben irgendwas mit ClassNotFoundExceptions zu tun, entweder einzeln oder in irgendeiner Kombination, und es ist mystifizierend, warum irgendjemand jemals anders denken könnte: besonders in Bezug auf die sicherheitspolitischen Aktionen, wenn die Fehlermeldung explizit vermerkt dass ein Sicherheitsmanager nicht installiert ist.

Die Lösung für ein ClassNotFoundException ist die Klasse bereitstellen besorgt, auf die JVM besorgt. In diesem Fall der Client. Jmeter stellt diese Klasse in einer JAR-Datei bereit und ist auf dem CLASSPATH des Clients erforderlich.

+0

Danke. Ich habe deine Lösung und auch irgendwelche Ergebnisse ausprobiert. Ich bin nicht sehr gut in Java und Jmeter und vielleicht ist es ein Grund. Meine Lösung war: die SAME Jmeter-Version auf Client und Server zu verwenden. Da die Standardversion von ubuntu Jmeter 2.8 ist, habe ich sie auch auf dem Client verwendet. Und es funktioniert. Vielen Dank! –