The online community for software testing & quality assurance professionals
 
 
Calendar   Today's Topics
Sponsors:




Lost Password?

Home
BetaSoft
Blogs
Jobs
Training
News
Links
Downloads



Testing Tools >> HP / Mercury LoadRunner

Pages: 1
rtehve
Super Member


Reged: 08/21/00
Posts: 1437
Loc: Elanora Heights, NSW, Australi...
Load Runner Listener /Listening with asynchronus
      #619893 - 03/28/10 04:09 PM

I have an issue tracking service request times using load runner with an Asynchronous load in a SOAP/xml scenario

_________________________________________________________
1. What version of LoadRunner (LR) or PerformanceCenter (PC) are you using? (specify which tool LR or PC)
(substitute your answer here)
9.5.1

2. What is the protocol you are recording?
(substitute your answer here)
SOAP/XML

2.1 If .NET, which version of .NET does the app require?

2.2 If .NET, which version of .NET do you have installed?

2.3 If OracleNCA with Oracle Forms Server, please list the version of Oracle Forms Server. You can get this info from the main Oracle Form when launched - Help -> About


3. If HTML - are you using HTML-Advanced with URLs or,
(indicate yes/no)

4. If URL mode:
- Concurrent groups, or
- Without Concurrent groups?
(indicate which)

5. Which LoadRunner/PerformanceCenter feature (FPs) or service packs are you using?
(List details here)


6. VuGen Recording - are you using Old or New Recording Engine?
(indicate which)
New

7. You must list here the specific Licensed Vuser type for your specific issue AND the license amount you have for your Vuser protocol(s) - per the example below No response to this question or N/A are not options) If you are using a cracked or hacked version, list as "CRACK".

N/A

8. Is your support/maintenance contract current and active?
(substitute your answer here - Yes or No) Yes

9. What platform(s) (PCs) and Operating Systems (Windows-XP, etc.) are being used for load generators and controllers? Include version and service packs (SP1 or 2, etc.)
(List here)

10. If you have filed a service request with HP/Mercury, what have they told you at this point with respect to your issue?
(substitute your answer here)

They have given some examples which we can't get working
__________________________________________________________

We have converted a synchronous load to asynchronous. This has met the customer load requirements but we are having trouble capturing server response times back to load tool. we can capture these in Synchronous mode but the load is serialised and doesn't meet the load requirements.

The examples in the help shows the following

"AsyncEvent=Event_1",
"WSAReplyTo=212.199.95.138",

(From Chapter 11 of the HP Virtual User Generator, Volume II)

What I don't get in this example is 212.199.95.138 a webserver (any) or a load runner listener. Does loadrunner cater for listeners or is this something you have to set up yourself ?

_________________________________________________________
Below is the sample code we are using:
getAccountSummary()
{

int gfAD_WBI15, gfAD_WBI16;
char gfADWBI_mix9[24], *gfc15 = "0494", *gfc16 = "12";
gfAD_WBI15 = (rand () % 20) + 10;
gfAD_WBI16 = (rand () % 20) + 10;
sprintf(gfADWBI_mix9,"%s%s%d%d",gfc15,gfc16,gfAD_WBI15,gfAD_WBI16);
/* SPID save string is used to save the VODAFONE string in a variabe */
lr_save_string ("VODAFONE","SPIDAccSummary");
lr_save_string (gfADWBI_mix9,"MSDNAccSummary");
lr_save_datetime("Start Date & Time %c", DATE_NOW, "next");
lr_output_message(lr_eval_string("{next}"));

// IVR User
web_add_header ("Authorization", lr_eval_string ("Basic SVZSX0FQUDpWb2RhMTIzNA=="));
lr_start_transaction ("get Account summary_IVR");

web_service_call( "StepName=GetAccountSummary_103",
"SOAPMethod=CustomerAccountService|CustomerAccountServicePort|GetAccountSummary",
"ResponseParam=response",
"Service=CustomerAccountService",
"ExpectedResponse=SoapResult",
"Snapshot=t1265341734.inf",
"AsyncEvent=event1",
BEGIN_ARGUMENTS,
"xml:getAccountSummary1="
"<getAccountSummary1>"
"<serviceProviderID>{SPIDAccSummary}</serviceProviderID>"
"<msisdn>{MSDNAccSummary}</msisdn>"
"</getAccountSummary1>",
END_ARGUMENTS,
BEGIN_RESULT,
"getAccountSummaryResponse/msisdn=Param_msisdnGAS",
"getAccountSummaryResponse/resMessage=Param_resMessageGAS",
END_RESULT,
LAST);
// lr_message("Response XML is \n %s", lr_eval_string("{response}"));
lr_end_transaction ("get Account summary_IVR", LR_AUTO);
lr_save_datetime("End Date & Time %c", DATE_NOW, "next");
lr_output_message(lr_eval_string("{next}"));
lr_think_time (0.40);
return 0;

}

--------------------
Robert Tehve
rtehve@bigpond.com


Post Extras: Print Post   Remind Me!   Notify Moderator  
Yaron_Naveh
Member


Reged: 12/18/08
Posts: 109
Loc: Israel
Re: Load Runner Listener /Listening with asynchronus [Re: rtehve]
      #619932 - 03/29/10 02:52 AM

There are a few use cases for async, make sure you know which one you need.

In the first one there isn't anything async from server perspective, it is just that LR sends requests without waiting for a response. Then the web_service_wait_for_event waits for the response. You can send multiple requests at once and wait for all to return. In this case the WSA is not needed.

In the second case the server knows of the async pattern and implements async via WS-Addressing. It expects to receive the response destination url inside the soap message WSA:To header. If the server does not support this the below will not work. If you do this, then LoadRunner will setup an endpoint in an arbitrary port on the local machine and send it to the server as WSA. You can override the local machine ip via the WSAReplyTo or leave the default of autodetect.

--------------------
Web Services Testing Blog
http://webservices20.blogspot.com/


Post Extras: Print Post   Remind Me!   Notify Moderator  
James PulleyModerator
Moderator


Reged: 08/01/01
Posts: 5551
Loc: NC
Re: Load Runner Listener /Listening with asynchronus [Re: Yaron_Naveh]
      #619949 - 03/29/10 04:19 AM

Robert,

I know we have history in this forum which is rich, but could you please address question number 7, as is asked of all posters. Even Jakebrake addresses that question and he is a moderator here!

To your core issue. For the last year I have been directly involved in just such an environment, heavily asynchronous in nature, with a transport mechanism between tiers as heavily queue-based.

We gave up on using the asych features a while back and instead just use virtual users to "pop" and "push" onto the queues. We leverage a couple of different items for timing

    1. the lr_*_distributed_transaction() api. You will need to look in lrun.h in the \include directory for a prototype of start and end for this API
    2. Using Microsoft Logparser to distill the server logs to follow individual transactions throughout the architecture, leveraging the to-the-millisecond timestamps to build timing records. We don't usually pull these into the analysis engine, but we do usually use some graphing tools to turn the graphs of the individual transactions into pdf or jpegs that we merge into the web output of the analysis engine.


our exposed queue interfaces also come in multiple variant types, from XML/Web Services to native ORACLE AQ to MQ, so the Web servicing only asynch model also doesn't work too well with the application architecture that we're testing and all of the processes we use today with the use of the distributed transaction API and collecting log information are pretty end user interface/protocol agnostic.

Edited by JakeBrake (03/30/10 03:00 PM)


Post Extras: Print Post   Remind Me!   Notify Moderator  
rtehve
Super Member


Reged: 08/21/00
Posts: 1437
Loc: Elanora Heights, NSW, Australi...
Re: Load Runner Listener /Listening with asynchronus [Re: James Pulley]
      #620073 - 03/29/10 04:40 PM

James Pulley

Re question 7

SOA 250 Virtual Users

Seems everywhere I look on this issue there is a workaround or the question is just evaded completely.

I find this odd as real loads for SOAP Interfaces will be inherently asynchronous.

I will get the guys to look into what you suggested.

Regards
Rob

--------------------
Robert Tehve
rtehve@bigpond.com


Post Extras: Print Post   Remind Me!   Notify Moderator  
Yaron_Naveh
Member


Reged: 12/18/08
Posts: 109
Loc: Israel
Re: Load Runner Listener /Listening with asynchronus [Re: rtehve]
      #620075 - 03/29/10 05:07 PM

Rob

> I find this odd as real loads for SOAP Interfaces will be inherently asynchronous.

Can you elaborate? You are right that some soap clients are async. But from your sentence it seems you see every soap client as async. Most clients actually wait for a response before continuing, which makes them sync.
When many clients send messages to the server at the same time the server is indeed loaded by more than one call, and this is simulated by the many vusers.

Please let me know if I misunderstood.

--------------------
Web Services Testing Blog
http://webservices20.blogspot.com/


Post Extras: Print Post   Remind Me!   Notify Moderator  
rtehve
Super Member


Reged: 08/21/00
Posts: 1437
Loc: Elanora Heights, NSW, Australi...
Re: Load Runner Listener /Listening with asynchronus [Re: Yaron_Naveh]
      #620078 - 03/29/10 06:17 PM

Yaron_Naveh

While an individual client may be synchronous, when looking at the overall load which may be many clients hitting the system at the same time, this is asynchronous in nature and the server needs to be able to cope with this.

When targeting a server with a synchronous load the throughput will be driven by the server response time (this is called a serialised load). In Async mode the server has to deal with a constant load which specifically is what our customer is requesting, i.e a targeted TPS.

--------------------
Robert Tehve
rtehve@bigpond.com


Post Extras: Print Post   Remind Me!   Notify Moderator  
Yaron_Naveh
Member


Reged: 12/18/08
Posts: 109
Loc: Israel
Re: Load Runner Listener /Listening with asynchronus [Re: rtehve]
      #620150 - 03/30/10 03:49 AM

Rob

> While an individual client may be synchronous ... the overall load which may be many clients hitting the system at the same time

If you write a syncronous vuser then you simulate exactly one individual client. Then when you run multiple vusers in the controller you simulate many clients hitting the system a the same time. Am I missing something?

--------------------
Web Services Testing Blog
http://webservices20.blogspot.com/


Post Extras: Print Post   Remind Me!   Notify Moderator  
ptrussell_ncModerator
Super Member


Reged: 01/17/06
Posts: 1636
Loc: Charlotte, NC
Re: Load Runner Listener /Listening with asynchronus [Re: Yaron_Naveh]
      #620199 - 03/30/10 07:52 AM

Rob,

As YN says, this is a fundamental principle of load testing Web (or some variant thereof - SOA). Each individual Vuser acts in a synchronous manner. But, varying think time and between iteration time create an environment where requests arrive at the server "asynchronously".

--------------------
Unless you are writing a compiler, strtok is NOT the answer.
See: http://www.sqaforums.com/showflat.php?Cat=0&Number=541641&Main=541641#542222

QAF is still an exercise in self-sufficiency! (Thank JB!)


Post Extras: Print Post   Remind Me!   Notify Moderator  
James PulleyModerator
Moderator


Reged: 08/01/01
Posts: 5551
Loc: NC
Re: Load Runner Listener /Listening with asynchronus [Re: ptrussell_nc]
      #620229 - 03/30/10 09:26 AM

I guess we need some clarification. Are we referring to asynchronous behavior on an individual request basis, where a user fires a transaction off to the server, some ack is received and then the final response arrives back after a period of processing? Or are we referring to the chaotic arrival and departure of clients and their behavioral model?

Post Extras: Print Post   Remind Me!   Notify Moderator  
rtehve
Super Member


Reged: 08/21/00
Posts: 1437
Loc: Elanora Heights, NSW, Australi...
Re: Load Runner Listener /Listening with asynchronus [Re: James Pulley]
      #620280 - 03/30/10 02:38 PM

James Pulley

Its more about accurate bench marking for TPS, given the issue seems a tricky one to solve and we lack time we will be going down the synchronous path and trying to tune into the TPS, the customer regards this less than ideal.

We have a whole raft of load tests streams, the soap one is the only one we use LoadRunner for, for the other streams we have written stubs to generate requests in one thread and receiev in the another thread while the first thread continually pumps out a constant request rate.

--------------------
Robert Tehve
rtehve@bigpond.com


Post Extras: Print Post   Remind Me!   Notify Moderator  
rtehve
Super Member


Reged: 08/21/00
Posts: 1437
Loc: Elanora Heights, NSW, Australi...
Re: Load Runner Listener /Listening with asynchronus [Re: rtehve]
      #620282 - 03/30/10 03:02 PM

Yaron_Naveh

Yeap you are, the TPS in synchronous mode will be determined by how the server responds, as opposed to forcing the server to deal with a constant request rate.

Unfortunately we are dealing with a clued in customer who is being very specific about what they want, he wants an accurate TPS rate and service request times under these conditions.

--------------------
Robert Tehve
rtehve@bigpond.com


Post Extras: Print Post   Remind Me!   Notify Moderator  
James PulleyModerator
Moderator


Reged: 08/01/01
Posts: 5551
Loc: NC
Re: Load Runner Listener /Listening with asynchronus [Re: rtehve]
      #620285 - 03/30/10 04:07 PM

Quote:

James Pulley

Its more about accurate bench marking for TPS, given the issue seems a tricky one to solve and we lack time we will be going down the synchronous path and trying to tune into the TPS, the customer regards this less than ideal.

We have a whole raft of load tests streams, the soap one is the only one we use LoadRunner for, for the other streams we have written stubs to generate requests in one thread and receiev in the another thread while the first thread continually pumps out a constant request rate.




Use one virtual user type to enqueue. Use a second virtual user type to dequeue. Ipso Facto: multiple threads. Or, using the web services virtual user use the Asynch capabilities with a JMS-only style interface. Or, write your own multi-threaded DLL virtual user and leverage the information on building a virtual user with Visual Studio under the Advanced topics in the VUGEN developers guide. Or, write a multi-threaded Java virtual user and leverage the Java virtual user. Or, ....


Post Extras: Print Post   Remind Me!   Notify Moderator  
rtehve
Super Member


Reged: 08/21/00
Posts: 1437
Loc: Elanora Heights, NSW, Australi...
Re: Load Runner Listener /Listening with asynchronus [Re: James Pulley]
      #620288 - 03/30/10 05:48 PM

James Pulley

Thanks for your responses, the next time I come across this issue I will try out your suggestions, we did get blind-sided by this issue on this project.

--------------------
Robert Tehve
rtehve@bigpond.com


Post Extras: Print Post   Remind Me!   Notify Moderator  
par23
Newbie


Reged: 08/24/10
Posts: 2
Re: Load Runner Listener /Listening with asynchronus [Re: James Pulley]
      #639913 - 08/24/10 12:29 PM

Quote:

I guess we need some clarification. Are we referring to asynchronous behavior on an individual request basis, where a user fires a transaction off to the server, some ack is received and then the final response arrives back after a period of processing? Or are we referring to the chaotic arrival and departure of clients and their behavioral model?




First post so let me say hello.

we do have this exact issue at hand right now. user fires a request gets ack and then waits to get another completion response back before it moves to the next page.

Works great in Vugen but when i put it in controller it just submits the next request before processing is complete on the back end.

Any ideas and help much appreciated.


Post Extras: Print Post   Remind Me!   Notify Moderator  
rtehve
Super Member


Reged: 08/21/00
Posts: 1437
Loc: Elanora Heights, NSW, Australi...
Re: Load Runner Listener /Listening with asynchronus [Re: par23]
      #640524 - 08/30/10 04:07 PM

par23

You think the Load Runner guys would have/build a solution but I guess it could be a hard one to package for all cases.

--------------------
Robert Tehve
rtehve@bigpond.com


Post Extras: Print Post   Remind Me!   Notify Moderator  
friendandenemy
Newbie


Reged: 08/11/11
Posts: 1
Re: Load Runner Listener /Listening with asynchronus [Re: rtehve]
      #719894 - 11/19/12 08:31 AM

I have a issue with capturing async response. Can you help with this please?

using loadrunner, i am sending SOAP request over HTTP to the endpoints host/port and getting back sync reponse via same HTTP connection. Once sync reponse is received by loadrunner, it closes connection. Now application server process request and send back async response to a ipaddress/port where i need loadrunner to listen for that response. Kindly let em know if there is any solution to implement this process?

-SBK


Post Extras: Print Post   Remind Me!   Notify Moderator  
Pages: 1



Extra information
0 registered and 50 anonymous users are browsing this forum.

Moderator:  AJ, James Pulley, ptrussell_nc, JimHowell1970 

Print Topic

Forum Permissions
      You cannot start new topics
      You cannot reply to topics
      HTML is disabled
      UBBCode is enabled

Rating:
Topic views: 10590

Rate this topic

Jump to

Contact Us | Privacy statement SQAForums

Powered by UBB.threads™ 6.5.5