GUI Response Time in a performance test – Keep It Simple Silly

by
Agile Support Team
| Nov 16, 2012

Web 2.0, AJAX, Adobe Flex and Silverlight are all bringing a revolution in web app development arena. Websites developed using these technologies are more user friendly, robust and high performing. Business teams are getting more and more inclined towards implementing these technologies in their projects and thus getting better apps.

While meeting these objectives, business also wants to understand the behavior and performance of the application in real time - high load (concurrent user) mode. They are highly concerned about the response time observed by the end users. Successful performance test tools, like AgileLoad, follow a robust way of enabling multiple users to perform business steps - Capturing the API requests in transport mode and reproducing the same traffic (with same requests) on the server with multiple users.

In this approach, due to non-requirement of browser and other components of the machine, the memory footprint each virtual user remains very small and hence thousands of vusers can be easily scaled up on low capacity injectors (machines). With modern web 2.0 scenario, many activities pertaining to a request are performed at the browser (client) and hence to understand the end user response time, understanding the response time at the browser also becomes essential.

The tool vendors were quick to understand this demand of the market and they came up with their solutions. Yes!!! These solutions have been successful to record the business steps and replay them at browser level. But they have created other set of problems. Notable amongst those being - ‘high memory requirement per virtual-user’ and ‘support to limited browsers (that too limited versions)’. This doesn’t really fulfill all business demands.

So when in a latest project I faced a similar issue, I solved the problem by following the below pasted simple approach -

Click on 'Create report'Report gets generated and I am directed to 'List of reports' page

Click on 'View Report' on the List pageThe report gets generated in an HTML format. This page has a lot of data and hence the developers have enabled AJAX calls

The 'View Report' page has a lot of Ajax calls and the transport level response time is very less than the GUI response time.

I created a script with AgileLoad HTTP protocol and customized it (with addition of required data) enough to meet the load of 5000 virtual users. Then I created a vbscript covering the above actions and with transaction markers added to important transactions. I executed 5000 virtual users through the HTTP protocol script and executed the vbscript in multiple loops. Thus I could -

Reproduce a load of 5000 virtual users on the application

Get the GUI response time values of the transactions having AJAX calls