Delete Messages from multiple JMS Queues in SOAPUI Hermes using Groovy
This uses gloabl properties and a list of queues
import com.eviware.soapui.impl.wsdl.submit.transport.jms.JMSConnectionBuilder
import com.eviware.soapui.impl.wsdl.submit.transport.jms.JMSEndpoint
import com.eviware.soapui.impl.wsdl.submit.transport.jms.util.HermesUtils
import hermes.Hermes
import javax.jms
// ${endpoint} is set in global properties to session created in Hermes ie Tibco-INT
def endpoint = conext.expand('${endpoint}')
List queues = ["queue1", queue2"];
queues.each{
def queueName = "${it}"
def jmsEndPoint = new JMSEndpoint("jms://"+endpoint"::-::queue_"+queueName);
def hermes = HermesUtils.getHermes(context.testCase.testSuit.project.jmsEndpoint.sessionName)
def jmsConnectionHolder = new JMSConnectionHolder(jmsEndPoint,hermes,false,null,null,null);
Session session = jmsConnectionHolder.getSession();
Queue queue = jmsConnectionHolder.getQueue(jmsConnectionHolder.getJMSEndpoint().getReceive());
MessageConsumer consumer = session.creatConsumer(queue);
Message message = null;
while((message = consumer.receiveNoWait()) != null){
//do nothing
}
jmsConnectionHolder.closeAll()
}
More scripts on my blog:
http://josies.blogspot.co.uk/2012/03/de ... roovy.html