Programmazione:Java/Sampler Test for JMeter
Da WikiSitech.
Versione del 20 nov 2007 alle 14:11 di Rimondini (discussione | contributi) (Nuova pagina: Questo è un esempio di implementazione di un Sampler di test per JMeter, nello specifico un Sampler per le notifiche JMS su ApacheMQ. I passi sono pochi * Creare un progetto Java * I...)
Questo è un esempio di implementazione di un Sampler di test per JMeter, nello specifico un Sampler per le notifiche JMS su ApacheMQ.
I passi sono pochi
- Creare un progetto Java
- Impostare il runtime in modo tale che il modulo possa funzionare da solo
- Scrivere la classe Sampler
ApacheMQ JMS Sampler code :
public class JMeterJmsProducerSampler extends AbstractJavaSamplerClient {
protected class JMeterJmsExceptionListener implements ExceptionListener {
protected SampleResult result;
public JMeterJmsExceptionListener(SampleResult r) {
result = r;
}
/*
* Funzione chiamata se arriva un eccezione
*/
public void onException(JMSException e) {
result.setSuccessful(false);
result.setResponseMessage(e.getMessage());
}
}
protected String topic, client, message;
/*
* Definizione dei parametri, con default, configurabili da JMeter
*/
@Override
public Arguments getDefaultParameters() {
Arguments args = new Arguments();
args.addArgument("topic", "NotifyTopic");
args.addArgument("client", "");
args.addArgument("message", "");
return args;
}
/*
* Inizializzazione per run
*/
@Override
public void setupTest(JavaSamplerContext context) {
super.setupTest(context);
topic = context.getParameter("topic", "NotifyTopic");
client = context.getParameter("client", "");
message = context.getParameter("message", "");
}
/*
* Lancio del Sampler
*/
public SampleResult runTest(JavaSamplerContext arg0) {
SampleResult result = new SampleResult();
try {
result.sampleStart();
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory");
props.setProperty(Context.PROVIDER_URL, "tcp://localhost:61616");
Context ctx = new InitialContext(props);
TopicConnectionFactory factory = (TopicConnectionFactory) ctx.lookup("ConnectionFactory");
TopicConnection connection = factory.createTopicConnection();
connection.start();
TopicSession session = connection.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
Topic _topic = session.createTopic(topic);
MessageProducer producer = session.createProducer(_topic);
TextMessage sms = session.createTextMessage();
sms.setStringProperty("idclient", client);
sms.setText(message);
producer.send(sms);
} catch (Throwable t) {
result.setSuccessful(false);
getLogger().fatalError(t.getMessage());
} finally {
result.sampleEnd();
}
return result;
}
}
Per utilizzare successivamente il modulo bisogna esportare il jar nella cartella dei plugin di JMeter...e comparirà nell'alenco dei Sampler disponibili