Highlighted
New Member.
3187 views

TIBCO application and LoadRunner

I am working on performance project for TIBCO application using Loadrunner with the following details : 
Type of the application :

Middleware Application (TIBCO BW, TIBCO EMS)  .

Client Protocol: -  JMS Communications happen as XML over JMS and XML over HTTP. 

Which protocol would be appropriate to simulate the traffic XML over JMS and XML over HTTP in load runner? What are the necessary files we need to do that?

 

We do not have application access hence cannot use Protocol Advisor. Anybody has any best practises around this area?

 

Thanks.

0 Likes
9 Replies
Highlighted
New Member.

Re: TIBCO application and LoadRunner

Havent worked specifically on TIBCO. but here goes:

 

You should be able to use either the Web Services or the Web Protocol.

 

for web services, get details such as WSDLs, Schema defenition of request and response, Request and response queues, endpoints, transport security details etc.

 

for web protocol, you will need a valid request XML, valid response XML for the request, transport security details etc.

 

Regards,

AJ

0 Likes
Highlighted
Absent Member.. Absent Member..
Absent Member..

Re: TIBCO application and LoadRunner

Hello 

 

This may help you

 

http://www.myloadtest.com/soap-over-jms-with-loadrunner/

 

regards

0 Likes
Highlighted
Absent Member.
Absent Member.

Re: TIBCO application and LoadRunner

Hi,

 

I went through the link and found a script using java vuser protocol. But it uses a webservice and also most of the steps i dont get it.

 

Is there some set procedure to be followed for tibco applications?

 

It would be helpful if we have some startup guide for this.

 

Please help.

 

Thanks,

Keafeel.

0 Likes
Highlighted
Absent Member.. Absent Member..
Absent Member..

Re: TIBCO application and LoadRunner

Hi Preeti,

 

All you need for TIBCO EMS is generin JMS jar and Tibco JMS jar that you can get from your development team.

 

You can use webService and have the XML save in a character type pointer.

 

Or you can use Java Vuser Protocol.

 

I use Java Vuser Protocol. Please shoot me an email at pathak_vikas_2003@hotmail.com if you like more details.

 

I dont come to this site often, so if you email I can reply here.

 

Good Luck.

 

0 Likes
Highlighted
Super Contributor.
Super Contributor.

Re: TIBCO application and LoadRunner

Hi Vikash,

I just have the xml with me that i want to hit the TIBCO interface over jms. Please can you guide how to proceed? I have never done this before so no idea how to start with.

Appreciate your email response 🙂

Cheers

Jadu

0 Likes
Highlighted
Absent Member.. Absent Member..
Absent Member..

Re: TIBCO application and LoadRunner

Hi Jena,

You have to download java JMS jar and Timco jms jar (same version as your Tibco Server Version) and use Loadrunner Java Protocol for scripting.

Import the jars in to your Vugen Class path. If you are using LR version 11 or lower then you need JRE 1.6 version.

/*
* LoadRunner Java script. (Build: _build_number_)
*
* Script Description:
*
*/

import lrapi.lr;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.naming.directory.*;
import javax.jms.ConnectionFactory;
import javax.jms.TextMessage;
import javax.jms.*;

import javax.jms.Topic;
import javax.jms.Session;
import javax.jms.TopicSession;
import javax.jms.TopicPublisher;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;

import javax.jms.Queue;
import javax.jms.QueueSession;
import javax.jms.QueueConnectionFactory;
import javax.jms.Connection;
//import javax.jms.MessageConsumer;
import javax.jms.Message;
import javax.jms.QueueReceiver;

 

import com.tibco.tibjms.*;

import java.util.Properties;


import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;


public class Actions
{

// Variables for getting JNDI initial Context
private final String providerContextFactory = "com.tibco.tibjms.naming.TibjmsInitialContextFactory";
private final String providerURL = "tcp://myseerver:7422";
// private final userName = "xxxx";
// private final password = "xxxx";

// Connection Factory and Queue Names
private final String connectionFactoryName1 = "QueueConnectionFactory";

private final String connectionFactoryName = "TopicConnectionFactory";

 

private final String responseQueueName = "myResponseQueue";

private final String requestTopicName = "myRequestQueue";


// Connection-related variables.
private TopicConnectionFactory topicConnectionFactory = null;
private QueueConnectionFactory queueConnectionFactory = null;

private Queue responseQueue = null;
private Topic requestTopic = null;

private QueueConnection queueConnection = null;
private TopicConnection topicConnection = null;

private QueueSession queueSession = null;
private TopicSession topicSession = null;

// Message Variables
// private MessageProducer sender = null;
// private MessageConsumer receiver = null;
private QueueReceiver queueReceiver = null;
private TopicPublisher publisher = null;

// Message Type
private TextMessage messageSend = null;


public int init() throws Throwable {

DummyClassLoader.setContextClassLoader();

try
{

// get the JNDI initial context
java.util.Properties p = new java.util.Properties();
p.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, providerContextFactory);
p.put(javax.naming.Context.PROVIDER_URL, providerURL);
p.put(Context.SECURITY_PRINCIPAL, "username");
p.put(Context.SECURITY_CREDENTIALS, "password");
javax.naming.InitialContext context = new javax.naming.InitialContext(p);


///// queue config ///
responseQueue = (Queue)context.lookup(responseQueueName);
queueConnectionFactory = (QueueConnectionFactory)context.lookup(connectionFactoryName1);
queueConnection = queueConnectionFactory.createQueueConnection("username","password");
queueSession =queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
//receiver = queueSession.createProducer(requestQueue);
// queueReceiver = queueSession.createReceiver(responseQueue);


////////////////////////////////////

//// Topic config ////////////
requestTopic = (Topic)context.lookup(requestTopicName);
topicConnectionFactory = (TopicConnectionFactory)context.lookup(connectionFactoryName);
topicConnection = topicConnectionFactory.createTopicConnection("username","password");
topicSession =topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
publisher = topicSession.createPublisher(requestTopic);

 

}

catch (javax.naming.NamingException e)
{
e.printStackTrace();
}


queueConnection.start();

return 0;
}//end of init

 

0 Likes
Highlighted
Absent Member.. Absent Member..
Absent Member..

Re: TIBCO application and LoadRunner

public int action() throws Throwable {

////////////////////////////////////////////////////////////////////////////

messageSend = topicSession.createTextMessage("xml");
try{

publisher.publish(messageSend);
}

catch (Exception e1)
{

lr.error_message("Either Error Code received or no response received for the request or took more than 10seconds to receive for ReqID " + lr.eval_string("<NewParam_1>"));
lr.end_transaction(transaction, lr.FAIL);

}


return 0;
}//end of action


public int end() throws Throwable {
return 0;
}//end of end
}

0 Likes
Highlighted
Absent Member.. Absent Member..
Absent Member..

Re: TIBCO application and LoadRunner

I posted a sample template. Make sure you have addeed the jars in your classpath of Vugen and using Java protocol.

 

Let me know if you are stuck.

0 Likes
Highlighted
Established Member..
Established Member..

Re: TIBCO application and LoadRunner

Hi Vikas,

Thank you for sharing this code, I had similar issues and this is very helpful to start with.

Kamal

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.