1

We have an application which uses LightStreamer to stream data. It does this over HTTP.

I'm trying to performance test this application with LoadRunner.

I have two URLs: URL 1 creates a session id and stays open, this URL will continue to load URL 2 uses this session id to make requests. The response of each request will appear on URL1's page.

The issue I am having is that when I make the request for URL 1, I am unable to make subsequent requests while keeping this request open. I tried using the web_concurrent wrapper, but that creates issues because before I can make the request to URL 2 I need the session id which is returned from URL.

Getting the ID isn't an issue, executing a request while the first request is still running is the issue.

Has anyone successfully tested LightStreamer with LoadRunner before?

This was the only thing I could find online whereby someone else was doing the same thing: http://www.sqaforums.com/showflat.php?Number=685960

Unfortunately he no longer works with our company. I tried reaching out to him on LinkedIn but I have not had much luck.

Any help would be greatly appreciated!

Jarrod Dixon
  • 15,727
  • 9
  • 60
  • 72

3 Answers3

1

If I understand your question, you are looking to test Poll or Push communications which were built into LoadRunner in version 11.50. We actually used a LightStreamer Demo application during development and testing of this feature, and they should be picked up at recording time by the Async correlation engine.

If you are using LoadRunner 11.5x and this is not happening, I would be interested in hearing more about the business process.

Shane Evans

  • Thanks for taking the time out to respond to me Shane. I appreciate it. Here is what I have so far: [code] web_reg_save_param("p_sessionid", "LB=SessionId:", "RB=\r", LAST); web_url("create_session.txt", "URL=", "TargetFrame=", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", EXTRARES, "URL=", ENDITEM, LAST); [/code] – Peadar O'Maoileoin Mar 21 '13 at 14:29
  • My next step is to figure out how I parse the responses while this function continues to run ad infinitum. The responses look like this: [code] ction.c(7): t=5506ms: 7-byte response body for "URL" (RelFrameId=1, Internal ID=1) Action.c(7): PROBE\r\n Action.c(7): t=6607ms: 59-byte response body for "URL" (RelFrameId=1, Internal ID=1) Action.c(7): 1,1||03:46:29 PM|||22:$215.4200|$$1.9800||||||2,357,903||\r\n Action.c(7): t=7609ms: 49-byte response body for "URL" (RelFrameId=1, Internal ID=1) Action.c(7): 1,1||||||||$$215.4100|5|$$215.4500||2,358,003||\r\n [/code] – Peadar O'Maoileoin Mar 21 '13 at 14:32
  • The response for the first EXTRARES will always be 1,1, if I make subsequent requests in the EXTRARES piece, then they will be 2,1 and 3,1, all the way to n,1. I need some way of trying to measure the latency here between making the initial request and getting the response. Tricky - does anyone have any ideas? I also need to figure out a way of ending the web_url() request after 6 minutes. Using the web_set_timeout("STEP", 600) will just end the web_url call in an error - that is not really what I am after. – Peadar O'Maoileoin Mar 21 '13 at 14:32
0

I am all set here except for one specific part.

The rest is as follows: web_url("create_session.txt", "URL=URL", "TargetFrame=", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", EXTRARES, "URL=URL", ENDITEM, "URL=URL", ENDITEM, "URL=URL", ENDITEM, "URL=URL", ENDITEM, "URL=URL", ENDITEM, "URL=URL", ENDITEM, "URL=URL",ENDITEM, LAST);

As explained above each of the EXTRARes URLS respond in the format 1,1, 2,1, 3,1,... so I use web_reg_find to count those occurrences.

My last question is this: I use web_set_timeout("STEP", 60); to make the web_url function stop after 60 seconds however this results in: Action.c(20): Error -27728: Step download timeout (60 seconds) has expired [MsgId: MERR-27728]

Is it possible to do this gracefully, as it is setting the return of my Transaction to a fail status as well.

0

Sorry for the extreme delay. Mix of vacation and other factors...

Does your request timeout impact the script's ability to complete? If not, you can use lr_continue_on_error function, with one of the following options:

0 = LR_ON_ERROR_NO_OPTIONS
1 = LR_ON_ERROR_CONTINUE
2 = LR_ON_ERROR_SKIP_TO_NEXT_ACTION
3 = LR_ON_ERROR_SKIP_TO_NEXT_ITERATION
4 = LR_ON_ERROR_END_VUSER