Higher response time in Vugen as not able to handle AJAX calls


I have a web http script for Azure SSO login. The authentication takes manually 3-4 seconds whereas Vugen was taking 12 seconds from the same client machine. When I checked the script there were lot of ajax requests in this transaction but each ajax request was triggered in sequence after few seconds than the previous one. All these ajax requests had an auto header "AJAXRequest" set to TRUE. 

My question is: Is the AJAXRequest auto header supposed to work like this (ultimately leading to higher response time)?

After I enclosed the AJAX requests within concurrent start/concurrent end, I could see the expected response time of 3-4 seconds. Not sure if what I did is correct approach of handling this issue?


  • Ajax calls are normally generated by java script in a concurrent way. When you replay them in LR as recorded, they are executed in sequence as you noted.

    LR is mend to generate load on a back-end server and not to simulate user-based (UI) timings. Note that with multi user testing the difference between running a few steps in sequence vs concurrent is not that critical.

    When those Ajax calls do not correlate to each other you can put them in a concurrent section as you tested. You are then getting closer to what a browser might do. But depending on the content of those Ajax calls an end user might not even experience any delays due to those calls.

    It might still be interesting to time each of those calls independently when you test setup is for regression. E.g. in our tests we measure each redirect step during authentication separately, for each step involves logic of different development groups. So we can pinpoint changes in delay directly to the right department and prevent discussions.



  • Thank you for your input. The transaction in question has a mix of synchronous and AJAX requests. I checked fiddler and I could see all these ajax requests have started at the same time (attached screenshot). If LR marked these requests as Ajax, I'm wondering why it failed to start all these calls at the same time. If it was supposed to work in sequence (though there is no dependency with other ajax calls), I guess there is no use of the statement  web_add_auto_header("AjaxRequest","true") ?

  • Adding a header to a request is just for the request, because LR detected that this header is used by the application. It has no meaning to LR, so it does not influence the way LR executes.

    For LR there is no difference between web_add_auto_header("AjaxRequest","true") or web_add_auto_header("MicroFocus","true"). Both are meaning less to LR.

    I know of one exception and that is an "Authorization" header, this header is not propagated to redirects.