What’s LoadRunner?
Posted: April 20th, 2008 | Author: TnT Admin | Filed under: Products | Tags: LoadRunner, Products | 15 Comments »
LoadRunner, formerly a product from Mercury (now acquired by HP) is a load testing tool that facilitates load testing against application thus determining the behavior of the application (server and network) when under normal load, stress or prolonged testing depending on the objective of the load test. If you are new to this product, it will be worthwhile to spare some time to read through this post.
How does it work is fairly simple (avoiding the technical complexity this tool can posed). Scripts are generated using protocol-level capturing tool (Vugen). This scripts, also known as Vusers, are placed in a Scenario in the Controller and are generated to emulate the real users accessing the application. While load testing, monitoring data is collected from the servers or SUT (System Under Test) and are collected at the end of the test. This data, is then been analyzed for bottlenecks and behavior to determine the next course of action (depending on the objective of the load test, i.e. benchmarking, SLA, stress testing, etc.) such as tuning, scaling, or defining a new SLA, etc.
If you like to know more about the product from a vendor perspective, explore the HP Software here.
LoadRunner has a couple of components that makes up the whole product, namely, the Vugen, Controller, Load Generator and Analysis. It does integrate with Diagnostics and SiteScope which are separate products by itself although it comes along with every LoadRunner CD in a reduced version. The two mentioned would deserve more description than it will have here.The concept behind LoadRunner is fairly simple (or similar across load testing products), it is to generate load based on a described business process, emulated users in the form of ANSI C scripts. The components described earlier on, facilitates the load testing in the following manner. Vugen generates scripts that emulate the real users through recording a described business process that real users would perform. The recording is somewhere like a network sniffer on the protocol level and will create a basic script that describes the user actions. From here, modifications can be made to the scripts such as runtime settings, parameterization and correlation, and not limited to the two mentioned. Once the scripts (also known as Vusers) are ready, a scenario is created in the Controller. The scenario defines the number of Vusers (scripts) to generate, the duration of the scenario, the behavior of the Vusers in terms of accessing the application (but not limited to this), and the resources (servers) that the tester would like to monitor. It also defines the Load Generators to use and any additional components such as IP Spoofing or Diagnostics module. When the scenario is done, all the tester needs to do is to run the scenario and wait for the results to be collected at the end of the test. More information on how the monitors in LoadRunner work can be found in “How does the monitoring work in LoadRunner?”
When the scenario is started, the scripts are sent by the Controller to the Load Generator and the Load Generator will generate the defined assigned amount of load to the SUT. As the name implies, Load Generator generates load and Controller controls the scenario execution. Throughout the load test, data is been consistently collected, such as running users, throughput, system resources and can be configured to receive more than those described here.
When the load test completes, the load generators will send back the data collected and stored in a results folder in the Controller. This data is then being used by Analysis to perform analyzing work. Analysis is a powerful graphical tool to look at correlations between load and system resource performance (and many more depending on what you are entitled to monitor). However, take note that having a powerful tool does not give the tester wings to fly. The tester will still need the relevant experiences and knowledge to determine bottlenecks in the system. (Usually companies charge this as consultancy).
If you like to have details of the LoadRunner architecture, you can explore the site by Wilsonmar for such information while I try to simplify it for the convenience of the beginners.
Hi, Iam new to LR. i have query. how to scale up 30,000vuser if i have license for only 300 vuser. Can you explain in detail how to go abt this?
The 300 vusers license will limit you to generate 300 vusers. You can purchase more licenses in order to generate more than 30,000 vusers. Don’t think its legally right anyway.
Hi, i have recorded a script and it get executed in controller with 6 Vusers for 2hrs of time. Around 4000 unique records are parameterized in it(manually also tested, works fine). now problem is when i see the log file for the errors getting generated. i see same data set for all the vusers for the same iteration. for example customer “A” is being created by vuser 1 same customer “A” i see in vuser 2, 3 ,4,5,6. so it generates the error as customer is already exists… now i am really confused regarding how parameterized data is being distributed by controller to the different vusers of the script. so can you pl. explain me how does data get distributed. hope this long explanation describes issue well. waiting for reply thanks Nesh
Hi Nesh, Yes, it’s a very detailed write out of the description. At a glance, I feel that it’s not the problem of vuser 2, 3, 4, 5, etc… but the creation of Customer A. Are the vusers sending the same creation request to the server? If they are, then most likely is that you will need to parameterize the value of Customer A as well.
Hope that helps. Regards
I have purchased the licensed version of Load Runner, but we are running into issues with security. Do you know if we can configure the ports, ie avoid using port 443, since by default it is open to the internet. What are the different ports that are required for Loadrunner and are they configurable? Thanks!
Hi LRUser, What are you configuring 443 for? Connectivity to the internet? or connectivity to the LGs?
Hi Nesh,
Can you please anwer Prabu question.I do have the same question.How to test for that many users when we don’t have license.Can we do it my less configuration like server configuration or what?
Waiting for response for Prabhu question on Query in load runner
You can consider open source tools instead of using LR. There isn’t any legal method of scaling up the number of users with your license. Else it would be a violation of use I think.
Hi,
I need to do load testing j2ee application running on a pure ipv6 network. My query is that does LoadRunner support testing on ipv6. I have checked that VUGEN is unable to record or run any script if I have only IPv6 enable on my machines.
Any ideas will be greatly appreciated.
Answer to Qn by NESH
——————————
When you parameterize, you can choose the values from datapool as UNIQUE will resolve your issue. You might have chosen SEQUENTIAL, so, LR loads row1 data for all Vusers then loads row2 for all Vusers etc etc.
Thanks.
Mahesh Giraka
Hi,
I am getting the “C interpreter run time error: Error — memory violation: Exception ACCESS_VIOLATION received” in all my test executions (in Performance Centre 9.0) for certain scripts which cause the corresponding Vusers to reach the failed state during the test run. I have used the Web(HTTP/HTML) protocol for scripting.I doubt that memory is not being freed properly in the scripts.Is there any tool to detect such Memory violations in the scripts or any tool which can be integrated with Vugen as an add-on to detect this.Kindly let me know your suggestions on this as soon as possible.
I have seen this error and the reason was that the C code in the script was hitting a NULL string and so it needs to be handled appropriately
Hi,
I have one question:
Ordinal specifies the location of the values to capture if there are multiple occurrences of LB & RB.
Ord=All means all the occurrences will be captured.
if i want to capture random occurrences like 1st, 4th, 8th, 12th etc…
What is need to be done in this case?
Hi Nikhilesh ,
It is difficult to pinpoint which value to capture. From what I see is that there is a pattern of a 3-value interval where you get the value that you want. I’m not too sure myself, but is there anyway to refine your LB and RB so that values in 1st, 4th, 8th, etc. can be captured?
Anyone with a solution on this?