Rajeshavanthi 2700022MCX Visits (518)
There are various performance testing tools in market and it's advisable for a tester to do a sort of comparison in-terms of the product functionality.
Under Load Runner you could see following options made available
So there could be questions as to whether RPT provides similar functionality or how would the virtual user execution gets handled in RPT.
What happens if you specify 100 virtual users in the RPT schedule. Say, you have 10 user groups each one has an unique script with it. So10 users per user group, totally 100.
RPT does not require a thread per test not it does require a thread per virtual user. When an individual action is being executed one thread is used.
One example of an action is an HTTP request. One thread is required to open a connection, if necessary, and write the request. Reading the response from the server is non-blocking. When data is available one thread is required to read the data and perform any processing required. Another example of an action is Custom Code. During the execution of the Custom Code exec() method one thread is required.
In general, For the HTTP protocol the RPT engine will create a thread as needed up to a maximum of 500 threads. The need to execute an action (eg request send or response) and unavailability of a free thread is what controls creation of additional threads.
Unless there is some specific problem it is highly recommended to let RPT control the creation and deletion of threads.
So, if you are looking it specifically from RPT perspective, then the agent starts execution with 10 worker threads
However if you are interested to control the threads, then the following system properties can influence thread control. These apply to the execution engine (ie location or agent) so a general property for the location must be created to set these system properties. For each location you must create a property called RPT_VMARGS and set it accordingly.
The default values are
-DrptThreadCount=10 (Initial number of worker threads)
dmmckinn 1200006SCS Visits (702)
In continuing on the topic of Performance testing, Vaughn Rokosz takes a look at some of the common reasons performance tests can fail, and suggests ways of tuning your servers to avoid the common issues.
Take a look at his latest article that includes the following:
For your convenience, here is the link to the previous article on the subject: Creating a perf
dmmckinn 1200006SCS Visits (547)
Looking for information about how to build performance simulations?
Building a good simulation of a user population requires expertise at many levels, including:
In the following article Vaughn Rokosz, a technical lead for the CLM performance team, shares some of his experiences with building performance simulations of the Jazz products. He walks through a simple example demonstrating how to build a simulation of a user population that is creating work items in Rational Team Concert. He also shares some of the things used to make the development of performance simulations simpler by attaching the Rational Performance Tester project that he used when working through the example.
Stay tuned for part 2...
Check out these newly published videos for IBM Rational Performance Tester.
Rajeshavanthi 2700022MCX Visits (602)
You could see the 'Additional delay' under Client processing delay section for each request, under Advanced tab.
What happens if you make this delay to zero??
Does the play back show much difference in overall response time?
Generally, the time taken to load the entire page outside IBM Rational Performance Tester (RPT) cannot be mapped to the time taken to load the same page when invoked via RPT recorder. There are lot of parameters that RPT, as a load performance testing tool, accounts for (such as the traffic and connection information).
Also, RPT processes these Client side delays in parallel or sequentially depending on how the application server returns them. Sometimes if you try modifying/disabling the client processing delay value, it may also disable the immediate transaction under Rational Performance Tester. Because, practically speaking, when you disable a request, you potentially invalidate some delays because in theory the disabled request could have been the basis for a delay. Therefore, RPT automatically recalculates the delays on the page when you disable a request. That is, if a later request used the disabled one as a base, the later delay request should be adjusted.
Now, let's come to your question about why such discrepancy between the response in the browser and RPT...
Often times when you see response times that are inaccurate it is because of recording your actions too fast and so you end up with more than one page being combined together. When recording, you need to be mindful and make sure to pause between mouse clicks. Do an action and wait 5 seconds before continuing on to the next action. You also need to pay attention to where your mouse is and make sure you have no "hover gifs" that you accidentally cause to be sent to the server while recording.
To see if you have these problems you have two things you can look at.
1. Open the test and click on the name of the test under test Contents in the tree. Click Select->Request. On the right hand side you will see a table of all requests in your test. Look at the delay column and look for really large delay values. If you have these, they are usually caused by recording too quickly, and act as an "embedded" think on the page. The Client Delay is supposed to simulate how long your client took to process the data from the server before sending the next piece of data. When you record too quickly, these values can be skewed. You can also go to a specific page that is taking too long and look at those specific requests. You can use the same Select button, or you can go to the Advanced tab of each request and look at its delay.
2. If you find the delays are your problem, then you can split the page where the delays are long since this was probably supposed to be two pages. This will move that delay to be the think time of the page which would be more accurate. You can also go to Wind
Also remember that when doing recording, we will capture each connection that was used and will send out the requests on the same connection that they were sent on originally. If you had two connections sending requests at record time, we will send requests on two connections at execution time. If you see a really long client delay, then look at that request in detail to determine if it was something that was sent by a user gesture or as a result of the primary request.