Differenze tra le versioni di "Programmazione:Java/Sampler Test for JMeter"
Da WikiSitech.
Vai alla navigazioneVai alla ricerca (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...) |
|||
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 1: | Riga 1: | ||
+ | [[Programmazione:Java|<< Back to Java]] | ||
+ | |||
Questo è un esempio di implementazione di un Sampler di test per JMeter, nello specifico un Sampler per le notifiche JMS su ApacheMQ. | Questo è un esempio di implementazione di un Sampler di test per JMeter, nello specifico un Sampler per le notifiche JMS su ApacheMQ. | ||
Riga 6: | Riga 8: | ||
* Scrivere la classe Sampler | * Scrivere la classe Sampler | ||
+ | Per utilizzare successivamente il modulo bisogna esportare il jar nella cartella dei plugin di JMeter...e comparirà nell'elenco dei Sampler disponibili | ||
− | ApacheMQ JMS Sampler code | + | ==ApacheMQ JMS Sampler code== |
<code java> | <code java> | ||
Riga 91: | Riga 94: | ||
} | } | ||
</code> | </code> | ||
− | |||
− |
Versione attuale delle 10:30, 14 apr 2008
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
Per utilizzare successivamente il modulo bisogna esportare il jar nella cartella dei plugin di JMeter...e comparirà nell'elenco dei Sampler disponibili
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;
}
}