Instead of doing this task by writing our own instrumentation and system.currentTimeMillis(), we decided to take a different path. Since we are already using apache JMeter for our web application load testing , we started looking for ways to do load testing of our class methods using apache JMeter. Finally, the task turned out to be much simpler than anticipated.
First up, you would like to create some custom samplers that apache JMeter can use. Below we present one such custom sampler.
public class JPACreateTest implements JavaSamplerClient {
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
return params;
}
public SampleResult runTest(JavaSamplerContext context) {
SampleResult results = new SampleResult();
String subject = null ;
String message = null ;
String userName = " jpa console" ;
try {
Date now = new Date();
String t = DateFormat.getDateTimeInstance().format(now);
subject = " JPA create test @ " + t;
message = " JPA create message @ " + t ;
results.sampleStart();
// call your methods
MessageService messageService = new MessageServiceImpl();
messageService.createNewMessage(userName, subject , message);
results.sampleEnd();
results.setSuccessful(true);
} catch(Exception ex) {
results.setSuccessful(false);
ex.printStackTrace();
}
return results ;
}
public void setupTest(JavaSamplerContext arg0) {
// no initialization required
}
public void teardownTest(JavaSamplerContext arg0) {
// no cleanup required
}
Implement Java Sample Client interface and return a Sample Result. Now to use this Sampler in JMeter please follow these steps:
- Put your sampler implementation in JMeter classpath. Better thing is to package the application class files inside a jar and drop the jar in JMeter/lib/ext folder.
- Adjust the value of property user.classpath to include all the jars that are used by your application jar file. JMeter.properties file
- Right click context Menu
- Add Sampler - Java Request
- Select your Sampler from the drop down
- DEV2DEV Article on BEA - Using JMeter to performance test web services
- Apache korea - JMeter extension scenario