Dear All,
I've been using JMeter for sometime now, to execute my load tests. It has
been working well for me. But, recently when I had to test a new
application, I faced a problem.
Please find below my test environment specification and problem description.
*Test environment:*
Testplan development environment - Windows 7 32-bit
Testplan execution environment - Redhat enterprise linux
JMeter version - Version 2.4 r961953
java.version - 1.6.0_10
Test execution servers - Server1;Server2
Testplan names - Plan1.jmx;Plan2.jmx
*Problem description:*
1. Plan1 is a test plan I've been using in the past to do testing.
2. Server1 is used to initiate the test
3. Server2 is where the actual test runs (remotely)
4. I key in the below commands in Server1, to get the jmeter-server started
[Server1]$ /./jmeter-server&/
[Server1]$ /Created remote object: UnicastServerRef [liveRef:
[endpoint:[Server1:45143](local),objID:[589e87a1:13320f5764d:-7fff,
2996288215291058752]]]/
5. I key in the below commands in Server2, to get the jmeter-server started
[Server2]$ /./jmeter-server&/
[Server2]$ /Created remote object: UnicastServerRef [liveRef:
[endpoint:[Server2:34288](local),objID:[-20f5670c:13320be5c62:-7fff,
2518394132361662963]]]/
5. Now, I key in the below command in Server1, to start the test
[Server1]$ /./jmeter -n -R Server2 -t Plan1.jmx -l smoke_result_log.jtl -j
smoke_output.log &/
6. I get the following message in Server1
[Server1]$ /./jmeter -n -R Server2 -t Plan1.jmx -l result_log.jtl -j
output.log &/
/[2] 5668/
[Server1]$ /Created the tree successfully using Plan1.jmx
Configuring remote engine for Server2
Using remote object: UnicastRef [liveRef:
[endpoint:[Server2:34288](remote),objID:[-20f5670c:13320be5c62:-7fff,
2518394132361662963]]]
Starting remote engines
Starting the test @ Thu Oct 20 10:54:50 UTC 2011 (1319108090548)
Remote engines have been started/
7. In Server2, I get the below message
[Server2]$ /Starting the test on host 10.0.103.109 @ Thu Oct 20 11:54:47
CEST 2011 (1319104487972)/
8. Everything is working fine. I can see things getting logged in
smoke_result.jtl
9. No errors in smoke_output.log
10. Now, when I try to do the same with Plan2, I observe the following
behaviour:
a. I get the below message in Server1
/[2] 6926
[Server1]$ Created the tree successfully using Plan2.jmx
Configuring remote engine for Server2
Using remote object: UnicastRef [liveRef:
[endpoint:[Server2:41813](remote),objID:[9cf936a:13320f89080:-7fff,
4276509621820231896]]]
Starting remote engines
Starting the test @ Thu Oct 20 11:56:20 UTC 2011 (1319111780015)
Remote engines have been started/
b. But, in Server2, I do not get any notification
c. Also, I do not see the smoke_result.jtl file getting created
d. smoke_output.log logs the following error message:
/2011/10/20 11:56:19 INFO - jmeter.util.JMeterUtils: Setting Locale to
en_US
2011/10/20 11:56:19 INFO - jmeter.JMeter: Loading user properties from:
/home/test/jakarta-jmeter-2.4/bin/user.properties
2011/10/20 11:56:19 INFO - jmeter.JMeter: Loading system properties from:
/home/test/jakarta-jmeter-2.4/bin/system.properties
2011/10/20 11:56:19 INFO - jmeter.JMeter: Copyright (c) 1998-2010 The
Apache Software Foundation
2011/10/20 11:56:19 INFO - jmeter.JMeter: Version 2.4 r961953
2011/10/20 11:56:19 INFO - jmeter.JMeter: java.version=1.6.0_10
2011/10/20 11:56:19 INFO - jmeter.JMeter: java.vm.name=Java HotSpot(TM)
64-Bit Server VM
2011/10/20 11:56:19 INFO - jmeter.JMeter: os.name=Linux
2011/10/20 11:56:19 INFO - jmeter.JMeter: os.arch=amd64
2011/10/20 11:56:19 INFO - jmeter.JMeter: os.version=2.6.18-128.1.1.el5
2011/10/20 11:56:19 INFO - jmeter.JMeter: file.encoding=UTF-8
2011/10/20 11:56:19 INFO - jmeter.JMeter: Default Locale=English (United
States)
2011/10/20 11:56:19 INFO - jmeter.JMeter: JMeter Locale=English (United
States)
2011/10/20 11:56:19 INFO - jmeter.JMeter:
JMeterHome=/home/test/jakarta-jmeter-2.4
2011/10/20 11:56:19 INFO - jmeter.JMeter: user.dir
=/home/test/jakarta-jmeter-2.4/bin
2011/10/20 11:56:19 INFO - jmeter.JMeter: PWD
=/home/test/jakarta-jmeter-2.4/bin
2011/10/20 11:56:19 INFO - jmeter.JMeter: IP: Server1 Name: Server1
FullName: Server1
2011/10/20 11:56:19 INFO - jmeter.services.FileServer: Default
base=/home/test/jakarta-jmeter-2.4/bin
2011/10/20 11:56:19 INFO - jmeter.services.FileServer: Set new
base=/home/test/jakarta-jmeter-2.4/bin
2011/10/20 11:56:19 INFO - jmeter.JMeter: Loading file: Plan2.jmx
2011/10/20 11:56:19 INFO - jmeter.save.SaveService: Testplan (JMX) version:
2.2. Testlog (JTL) version: 2.2
2011/10/20 11:56:19 INFO - jmeter.save.SaveService: Using SaveService
properties file encoding UTF-8
2011/10/20 11:56:19 INFO - jmeter.save.SaveService: Using SaveService
properties file version 959116
2011/10/20 11:56:19 INFO - jmeter.save.SaveService: Using SaveService
properties version 2.1
2011/10/20 11:56:19 INFO - jmeter.save.SaveService: All converter versions
present and correct
2011/10/20 11:56:19 INFO - jmeter.JMeter: Configuring remote engine for
Server2
2011/10/20 11:56:20 INFO - jmeter.engine.ClientJMeterEngine: about to run
remote test on Server2
2011/10/20 11:56:20 INFO - jmeter.engine.ClientJMeterEngine: done
initiating run command
2011/10/20 11:56:20 INFO - jmeter.engine.ClientJMeterEngine: running
clientengine run method
2011/10/20 11:56:20 INFO - jmeter.engine.util.CompoundVariable: Note:
Function class names must contain the string: '.functions.'
2011/10/20 11:56:20 INFO - jmeter.engine.util.CompoundVariable: Note:
Function class names must not contain the string: '.gui.'
2011/10/20 11:56:20 INFO - jmeter.engine.ConvertListeners: num threads = 1
2011/10/20 11:56:20 INFO - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/10/20 11:56:20 INFO - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/10/20 11:56:20 INFO - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/10/20 11:56:20 INFO - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/10/20 11:56:20 ERROR - jmeter.engine.ClientJMeterEngine:
java.rmi.MarshalException: error marshalling arguments; nested exception is:
java.io.NotSerializableException: java.nio.DirectByteBuffer
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:138)
at
org.apache.jmeter.engine.RemoteJMeterEngineImpl_Stub.configure(Unknown
Source)
at
org.apache.jmeter.engine.ClientJMeterEngine.run(ClientJMeterEngine.java:131)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.NotSerializableException: java.nio.DirectByteBuffer
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.HashMap.writeObject(HashMap.java:1000)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.HashMap.writeObject(HashMap.java:1001)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.HashMap.writeObject(HashMap.java:1001)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.HashMap.writeObject(HashMap.java:1001)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:274)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
... 3 more/
11. This kind of error happens sometimes in the following cases:
a. When there is a mismatch of the JMeter versions
b. When a particular file is available in one server and is not
available in the other
12. I verified both and this is not the case. To confirm even further, I
copied the complete "jakarta-jmeter-2.4" directory from Server1 to Server2,
so that they have identical copies of all the files involved (including the
jmeter jar files, data files etc.)
13. Still I'm facing the same problem
14. I also verified what happens if I execute Plan2, only in Server1
(without using remote execution). It works perfectly
Can any of you help me?
Thanks and Regards,
Sasidhar Sekar
--
View this message in context:
http://jmeter.512774.n5.nabble.com/Remote-testing-problem-Works-for-one-testplan-does-not-work-for-the-second-tp4921259p4921259.html
Sent from the JMeter - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]