AJAX TruClient – The next Revolution in Performance Testing domain

Last week, I had a chance to work on the AJAX TruClient protocol launched in the latest version of LR (LR 11). I was amazed to see a totally different manner of scripting followed with this protocol. The object identification technology made my scripting and debugging task a piece of cake. The non-requirement of dynamic correlation reduced the scripting complications and thus time.

If TruClient becomes popular in the performance test domain, performance testers won’t be judged on their scripting abilities. In fact scripting will carry very little weight among the different skills required to be a good performance tester. Using this technology, even a high school child can script web applications.

AJAX TruClient Basics –

  1. AJAX TruClient integrates with Mozilla firefox during script development. The tester doesn’t need to install Mozilla firefox separately as it is embedded with LR 11. The current version of Mozilla distributed with LR is Firefox 3.6.3.
  2. Mozilla firefox browser used during interactive recording shouldn’t be modified with plugins (such as Flash Plugins) and shouldn’t be changed (except for proxy and configuration settings). Moreover, one must not upgrade the firefox browser to a later version.
  3. Firefox’s firebug extension provides additional information on application object properties, executes JS on the fly, explores DOM, visualizes CSS matrix, etc and thus could significantly improve script debugging capabilities.
    To install firebug extension to TruClient FF browser –
    a)      In Ajax TruClient script, Go to VUgen -> Tools -> AJAX TruClient Browser options
    b)      Select  ‘extensions’ tab -> Click Get Add ons
    c)       Search for ‘Firebug’. Find extension from search results and click on ‘Add to Firefox’
  4. In some applications, different events get executed depending on the duration of mouse over action. In the current version of LR (11th version with 4th Patch), the mouse over event can’t be recorded with time duration. This limitation can be worked around by using wait() function. A wait function with X seconds (where X is the duration of mouseover as required) can be added between the mouse over event and the next action. The vuser’s mouse will then stay on the last position for X seconds, thus allowing the required action to execute.
  5. While developing TruClient scripts, proxy settings can be specified in both ways –
    1. In the script ‘Run-Time Settings’ dialog, go to  General->Other Settings and make changes in “Proxy Selection” option.
    2. Click on ‘Edit browser options’ in record toolbar in VUGen main window. Click on ‘Proxy’ tab and change the settings.

If  I was  to compare this latest technology (or protocol) with the other web protocols, I would state:

AJAX TruClient – High level benefits:

1)      It works with many frameworks like – Jquery, Ajax, YUI, GWT, JS, etc. Rich internet applications developed on Web 2.0 technologies can be easily scripted and replayed.

2)      Script development is interactive with script flow at one side of the window and application opened in the browser at the other. This makes scripting with AJAX TruClient protocol easier and faster, as compared to that of the other web protocols like Ajax Click & Script or Web (HTTP/HTML), etc

3)      Object identification features minimize the use of complex correlations and make script more dynamic. Thus the scripts become more resilient to backend changes.

4)      Complex client side events like Mouseover, slider bars, calendar items, dynamic lists, etc can be very easily scripted, customised and replayed.

5)      The embedded script engine, control structures (If loop, for Loop, Catch error, Continue and Exit), Evaluation of JavaScript, JS on object, C and comments, Intuitive User Interface and built-in functions (Verify, Wait, Wait for Object, Generic Object Action, Generic Browser action) speeds up scripting activity. Thus testing cycle is much shorter in case of Ajax TruClient as compared to that with other web protocols –

HTTP/HTML Protocol test cycle –

Ajax TruClient test cycle –

6)      The rich visual UI and easy steps make scripting fun to the developer.

7)      Using AJAX TruClient, API + GUI response time can be obtained, as opposed to other protocols that provide only API response time.

AJAX TruClient – Improvement opportunities

  1. AJAX TruClient integrates with Mozilla firefox during script development. It doesn’t integrate with any other browser and hence applications that don’t work effectively on firefox show scripting / replaying issues.
  2. The rendezvous function is not available in AJAX Truclient for current version of LR (V 11 Patch 4).
  3. IP Spoofing helps in assigning different IP addresses to different vusers during test execution and thus allows us to create a test scenario more close to production scenario. In current version of LR 11 (Patch 4), IP Spoofing isn’t supported with AJAX TruClient protocol.
  4. TruClient protocol doesn’t support recording of Flash or Silverlight applications. In order to record Flex or Silverlight events, it is recommended to use Flex or Silverlight protocols respectively.
  5. The memory footprint of an AJAX TruClient Vuser is significantly higher compared to that of other web protocol vusers. Thus AJAX TruClient tests demand more loadgenerators compared to other web protocol tests.

See Also::

HP TruClient A Review 

10 thoughts on “AJAX TruClient – The next Revolution in Performance Testing domain

  1. You have presented a nice analysis on TrueClient protocol. Some of the items that I was facing issues with have been included in ‘Improvement opportunities’ thus helped me save time on researching those items. Thanks for this wonderful post and keep posting.

  2. Very nice analysis. We’re very proud of the first release of the TruClient protocol, and I’m sure you will find coming releases to be even more powerful in terms of flexibility and ease of use.


    Shane Evans
    LoadRunner Product Manager

  3. Great info, thanks! Any info on PDFs?

    I’ve got a Web site that opens a report in a PDF, and I’ve been trying to get TruClient to allow me to wrap that in a transaction so I can time it.

  4. Nice post, thanks. I’ve been using TruClient for about 6 months. One thing that I’ve struggled with is PDFs. We have several reports that are generated as PDFs, opening in a new tab. I can’t get TruClient to properly time that action.

  5. Hi,

    I have been using Ajax TruClient Protocol after one month of its Launch. I agree scripting efforts are reduced but there are many more issues and limitations when it comes to this Protocol.

    e.g: If I want to capture a response and do some steps depending upon the response value; it gets little difficult to capture that response because for Tru Client everything is Object 🙁

    Also Memory is one the Major Issue.. I am struggling hard to reach users above 2K.. Need so many machines to generate such high load.. wondering how to perform 10K

  6. Hi All,

    I am very new to Ajax TruClient. Through this post I got a lot information and it was very helpful. I my doing research on Ajax TruClient protocol, and it involves all the tasks, right from the scripting to executions.

    I am done with the scripting part with a simple java (not Ajax)application and now I am stuck in execution of script for multiple users. Can anyone please tell me what are the things required to execute the script?

    I know that it requires more memory but I want to know that, as it is using a browser(or a copy of browser) for each user, how the controller(or HP performance center) will make sure that each Vuser will have an individual browser(or browsing session)? Do it will use any terminal server session to open separate session for each Vuser? Or else it will run the Vuser in similar manner to that of Web(HTTP/HTML) with just a difference that it(Ajax TruClient) will require more memory?

    I will be very thankful if any one could help me. Also, suggest me any free thick client or rich content application which I can use for scripting. I am beginner in performance testing as well as TruClient, please correct me if I am wrong anywhere. Thanks

  7. With the new ability to script in Internet Explorer, TruClient MAY be the powerful performance testing tool of the future. However I believe you will find that TruClient is NOT a protocol itself. TruClient is actually an object orientated engine that drives the Ajax Protocol. While it DOES have quite a few limitations, these can be worked around to some degree using Javascript or C. If HP can get past the limitations of the large footprint and throw some engineer dollars into keeping up with the latest browsers (even a FEW versions behind is fine) then TruClient has a bright future. The BIG ticket item is getting Loadrunner away from ANSI C as it’s native language and making it C++ or even Java based. As most will agree, ANSI C is NOT user friendly when it comes to string manipulation.

Leave a Reply to Tulip Cancel reply

Your email address will not be published. Required fields are marked *