Saturday, June 23, 2012

Rendezvous in LoadRunner

                          You all know the purpose of doing performance testing, but we have some features available with LoadRunner like Rendezvous and IP Spoofing which takes us more close to a real world situations and thus makes our test more valid than ever.
                          In the current topic we shall discuss about how Rendezvous helps us in improving and taking us close to those real world conditions. Lets take an instance of a shopping website which obviously includes some 3rd party sites during checkout eg: Paypal or Google checkout or Credit/Debit card payment etc. During the festival season we expect huge requests from the customers where the site might experience the problems and more importantly issues during the checkout which is major drawback for the shopping site as it decreases its revenue and the customer confidence.
                          So our next step would be to replicate the real world situation for the checkout functionality and to do that, LoadRunner has provided a function called lr_rendezvous() which can do the job for us


In the following example taken from LoadRunner tool doc's, the lr_rendezvous function sets the Meeting rendezvous point. When all users that belong to the Meeting rendezvous arrive at the rendezvous point, they perform do_transaction simultaneously. 

lr_rendezvous("Meeting");
    do_transaction();
/* application dependent transaction */  

                        The lr_rendezvous function creates a rendezvous point in a Vuser script. When this statement is executed, the Vuser program stops and waits for permission from LoadRunner to continue.
This mean that when we are doing the Load test every Vuser will be at different transaction (Vuser 1 is at 3rd transaction and Vuser 2 at 5th transaction etc) and to test business critical transactions (say 6th transaction) then we have to place Rendezvous after 5th transactions so that Vusers wait for all others Vusers to come to that complete 5th transaction and start 6th transaction simultaneously. Thus we can bring out the bottlenecks of that business transaction and could less the performance issues in the production environment. 

Note:- This function can only be used in action section, and not in vuser_init or vuser_end