Quantcast
Channel: All LoadRunner Practitioners Forum posts
Viewing all articles
Browse latest Browse all 12134

LoadRunner 11.52 Asynchronous "Hot Steaming Pile of ----" application: Asynchronous issues

$
0
0

Good afternoon,

I'm dealing with a Google Web Toolkit application which consists of multiple Asnychronous calls  - all to the same URL.

They are differentiated by the body content, instead of unique URLs. 

For example:

 

web_submit_data("xml_95", 
                "Action=https://tp2-pfm.ssga.statestr.com/tp2/xml", 
                "Method=POST",

                 ... }

 

Problem: Multiple services, all firing at different times.

1100 service fires about every 60 seconds.

102 is a polling service to check on "batch" processing.

 

400, 401, 403, 992, 962, 100, 1, 201, ??? Etc, are not scheduled, but result from completion of an Asynchronous call.

 

We have NO documentation on ANY of this - it's been discovered through Q&A with the "consulting" team that developed the AUT, and the in-house developers  who took over when the consultants couldn't deliver.

 

Problems:

- Corporate mandate to use GWT.

- Performance team denied test time

- shared infrastructure on the back end (including Disaster Recovery and UAT test in same environment)

- As noted, no documentation on what is what.

- Reliant on others for data: Load Files for the batches, market conditions for the responses, and log analysis from BAs.

 

Did I mention it's slow as (censored)?

 

Problem/Question:

How can I create multiple Asynchronous conversations, QUICKLY?

At this time, the 102 is looped inside a do - while statement, and at least inside that loop, I can control the 1100 polling. But the network itself is slow, and we're running XP / IE8 / LR 11.52.  We have 40 users broken down by file size / type, and 10 running a different business process which is similar, but has additional steps.

 

Primary objective:

Make the 1100 calls an Asynch Push request.

 

Secondary objective:

Make the 102s an Asych Long-Poll request (known to be 5 seconds between pollings)

 

The others I can identify and work around.  The 1100 service is known to produce nothing. It's a messenging service they decided not to use, but left in the build.

Most other requests work as "Not Asynch" / normal HTTP/HTML calls, no problem. The problem is mimicking the 1100 calls on a schedule (and thus removing them from the script) when there is nothing that distinguishes the 1100 from anything else, WRT the URL - only the body is different.

 

Short example:

web_submit_data("xml_172",
  "Action=https://www.testurl.com/App/xml",
  "Method=POST",
  "TargetFrame=",
  "RecContentType=text/xml",
  "Referer=https://www.testurl.com/App/Example.html",
  "Snapshot=t343.inf",
  "Mode=HTML",
  ITEMDATA,
  "Name=__request", "Value=1100", ENDITEM,
  "Name=__action", "Value=0", ENDITEM,
  "Name=__filter_config", "Value=", ENDITEM,
  "Name=start", "Value=0", ENDITEM,
  "Name=limit", "Value=0", ENDITEM,
  "Name=isc_dataFormat", "Value=xml", ENDITEM,
  LAST);

 

COMPARED TO:

 

 i=1;
 do{
  web_reg_save_param_ex(
   "ParamName=BasketStatus",
   "LB=basketStatusId=\"",
   "RB=\"",
   SEARCH_FILTERS,
   "Scope=Body",
   LAST);
  
  web_submit_data("xml_161",
   "Action=https://www.testurl.com/App/xml",
   "Method=POST",
   "TargetFrame=",
   "RecContentType=text/xml",
   "Referer=https://www.testurl.com/App/Example.html",
   "Snapshot=t332.inf",
   "Mode=HTML",
   ITEMDATA,
   "Name=basketId", "Value={BasketNum}", ENDITEM,
   "Name=__request", "Value=102", ENDITEM,
   "Name=__action", "Value=0", ENDITEM,
   "Name=__filter_config", "Value=", ENDITEM,
   "Name=start", "Value=0", ENDITEM,
   "Name=limit", "Value=0", ENDITEM,
   "Name=isc_dataFormat", "Value=xml", ENDITEM,
   LAST);

  if (i%20==0){
  // 1100 call - polls every 60 seconds.
   web_submit_data("xml_95",
    "Action=https://www.testurl.com/App/xml",
    "Method=POST",
    "TargetFrame=",
    "RecContentType=text/xml",
    "Referer=https://www.testurl.com/App/Example.html",
    "Snapshot=t247.inf",
    "Mode=HTML",
    ITEMDATA,
    "Name=__request", "Value=1100", ENDITEM,
    "Name=__action", "Value=0", ENDITEM,
    "Name=__filter_config", "Value=", ENDITEM,
    "Name=start", "Value=0", ENDITEM,
    "Name=limit", "Value=0", ENDITEM,
    "Name=isc_dataFormat", "Value=xml", ENDITEM,
    LAST);
   }
  lr_think_time(3);
  i++;
  z= (atoi(lr_eval_string("{BasketStatus}")));
  lr_output_message("Basket Status is %d", z);
 }while((z != 69)&&(z != 209)&&(i<=300));
 if (i==300){
  lr_exit(LR_EXIT_MAIN_ITERATION_AND_CONTINUE, LR_FAIL);
 }


Viewing all articles
Browse latest Browse all 12134

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>