2
* JBoss, Home of Professional Open Source
3
* Copyright 2005, JBoss Inc., and individual contributors as indicated
4
* by the @authors tag. See the copyright.txt in the distribution for a
5
* full listing of individual contributors.
7
* This is free software; you can redistribute it and/or modify it
8
* under the terms of the GNU Lesser General Public License as
9
* published by the Free Software Foundation; either version 2.1 of
10
* the License, or (at your option) any later version.
12
* This software is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with this software; if not, write to the Free
19
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
23
package org.jboss.test.remoting.performance.synchronous;
25
import org.apache.log4j.Level;
26
import org.jboss.jrunit.harness.BenchmarkTestDriver;
29
* @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
31
public class PerformanceTestCase extends BenchmarkTestDriver //TestDriver
33
protected int numberOfClients = 1;
35
public static final String REMOTING_TRANSPORT = "remoting.transport";
36
public static final String REMOTING_METADATA = "remoting.metadata";
37
public static final String REMOTING_METADATA_CALLBACK = "remoting.metadata.callback";
38
public static final String REMOTING_SERIALIZATION = "remoting.serialization";
39
public static final String PAYLOAD_SIZE = "remoting.payload.size";
40
public static final String NUMBER_OF_CLIENTS = "remoting.number_of_clients";
41
public static final String NUMBER_OF_CALLS = "remoting.number_of_calls";
42
public static final String JVM_MAX_HEAP_SIZE = "jvm.mx";
43
public static final String RESULT_TIMEOUT = "jrunit.result_timeout";
44
public static final String TEAR_DOWN_TIMEOUT = "jrunit.tear_down_timeout";
45
public static final String RUN_TEST_TIMEOUT = "jrunit.run_test_timeout";
46
public static final String REMOTING_HOST = "remoting.host";
48
public void declareTestClasses()
50
//**************** LOGGING ***********************
51
//org.apache.log4j.BasicConfigurator.configure();
52
//org.apache.log4j.Category.getRoot().setLevel(Level.DEBUG);
53
//org.apache.log4j.Category.getInstance("org.jboss.remoting").setLevel(Level.DEBUG);
55
//org.apache.log4j.SimpleLayout layout = new org.apache.log4j.SimpleLayout();
59
// org.apache.log4j.FileAppender fileAppender = new org.apache.log4j.FileAppender(layout, "debug_output.log");
60
// fileAppender.setThreshold(Level.DEBUG);
61
// fileAppender.setAppend(false);
62
// org.apache.log4j.Category.getRoot().addAppender(fileAppender);
64
// catch(IOException e)
66
// e.printStackTrace();
68
//*************** END LOGGING ***********************
71
String numOfClients = System.getProperty(NUMBER_OF_CLIENTS);
72
if(numOfClients != null && numOfClients.length() > 0)
76
numberOfClients = Integer.parseInt(numOfClients);
78
catch(NumberFormatException e)
84
addTestClasses(getClientTestClass(),
86
PerformanceServerTest.class.getName());
89
protected String getClientTestClass()
91
return PerformanceClientTest.class.getName();
94
protected Level getTestHarnessLogLevel()
101
* The log level to run as for the test case.
105
protected Level getTestLogLevel()
108
//return Level.DEBUG;
112
* Returns the VM arguments to be passed to the vm when creating the client test cases (actually their harness).
113
* The default value is null.
117
protected String getClientJVMArguments()
119
return getJVMArguments();
120
// String args = "-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5000 ";
121
// args = args + getJVMArguments();
126
* Returns the VM arguments to be passed to the vm when creating the server test cases (actually their harness).
127
* The default value is null.
131
protected String getServerJVMArguments()
133
return getJVMArguments();
137
* Returns the VM arguments to be passed to the vm when creating the client and server test cases (actually their harness).
138
* The default value is null.
142
private String getJVMArguments()
146
String transport = System.getProperty(REMOTING_TRANSPORT);
147
if(transport != null && transport.length() > 0)
149
vmArgs = "-D" + REMOTING_TRANSPORT + "=" + transport;
151
String host = System.getProperty(REMOTING_HOST);
152
if(host != null && host.length() > 0)
154
vmArgs = vmArgs + " -D" + REMOTING_HOST + "=" + host;
156
String serialization = System.getProperty(REMOTING_SERIALIZATION);
157
if(serialization != null && serialization.length() > 0)
159
vmArgs = vmArgs + " -D" + REMOTING_SERIALIZATION + "=" + serialization;
161
String metadata = System.getProperty(REMOTING_METADATA);
162
if(metadata != null && metadata.length() > 0)
164
vmArgs = vmArgs + " -D" + REMOTING_METADATA + "=" + metadata;
166
String callbackMetadata = System.getProperty(REMOTING_METADATA_CALLBACK);
167
if(callbackMetadata != null && callbackMetadata.length() > 0)
169
vmArgs = vmArgs + " -D" + REMOTING_METADATA_CALLBACK + "=" + callbackMetadata;
171
String payloadSize = System.getProperty(PAYLOAD_SIZE);
172
if(payloadSize != null && payloadSize.length() > 0)
174
vmArgs = vmArgs + " -D" + PAYLOAD_SIZE + "=" + payloadSize;
176
String numOfCalls = System.getProperty(NUMBER_OF_CALLS);
177
if(numOfCalls != null && numOfCalls.length() > 0)
179
vmArgs = vmArgs + " -D" + NUMBER_OF_CALLS + "=" + numOfCalls;
181
String jvmMx = System.getProperty(JVM_MAX_HEAP_SIZE);
182
if(jvmMx != null && jvmMx.length() > 0)
184
vmArgs = vmArgs + " -Xmx" + jvmMx + "m";
191
* How long to wait for test results to be returned from the client(s). If goes longer than the
192
* specified limit, will throw an exception and kill the running test cases. Default value is
197
protected long getResultsTimeout()
199
long defaultTimeout = 600000; // default to 10 minutes
201
String timeout = System.getProperty(RESULT_TIMEOUT);
202
if(timeout != null && timeout.length() > 0)
206
defaultTimeout = Long.parseLong(timeout);
208
catch(NumberFormatException e)
210
System.out.println("Can not use " + timeout + " as timeout value as is not a number");
213
return defaultTimeout;
217
* How long for the server test case to wait for tear down message. If exceeds timeout,
218
* will throw exception. The default value is TEARDOWN_TIMEOUT.
222
protected long getTearDownTimeout()
224
long defaultTimeout = 600000; // default to 10 minutes
226
String timeout = System.getProperty(TEAR_DOWN_TIMEOUT);
227
if(timeout != null && timeout.length() > 0)
231
defaultTimeout = Long.parseLong(timeout);
233
catch(NumberFormatException e)
235
System.out.println("Can not use " + timeout + " as timeout value as is not a number");
238
return defaultTimeout;
242
* How long to allow each of the test cases to run their tests. If exceeds this timeout
243
* will throw exception and kill tests. The default value is RUN_TEST_TIMEOUT.
247
protected long getRunTestTimeout()
249
long defaultTimeout = 600000; // default to 10 minutes
251
String timeout = System.getProperty(RUN_TEST_TIMEOUT);
252
if(timeout != null && timeout.length() > 0)
256
defaultTimeout = Long.parseLong(timeout);
258
catch(NumberFormatException e)
260
System.out.println("Can not use " + timeout + " as timeout value as is not a number");
263
return defaultTimeout;