A common problem when setting up a load testing configuration in Load Tester is figuring out how many rows of data you need for a particular test. For example, you need to have a set of user names and passwords to be used during the test, but how many do you need to ensure that the test will complete?
To answer this question, you need to know three things: the duration of the test, the expected duration of the test case, and how many concurrent users the test will simulate. Fortunately, these things are usually easy to determine. The test duration … Continue reading »
In older versions, Load Tester provided a simple interface for modifying the URI portion of an HTTP request. For example, you could add a query parameter or a path segment by adding it directly to the request line in the Edit HTTP Request-line/URL dialog.
In Load Tester 4.2, this process has been made slightly more complex but vastly more powerful. We’ll start by manipulating the URI field directly. To do so, select the specific transaction you wish to edit, then select the Fields View, then choose “Customize” from the “Choose customization” drop-down menu in the upper right … Continue reading »
You’ve recorded your test case, configured your datasets, and run your replays. You start up the load test and … you see numerous errors like this:
“The connection with the server was unexpectedly closed before starting the response.”
What’s going on? Well, one common reason for this error is a connection-related race condition between Load Tester and the web server due to the server’s configured persistent connection timeout.
Persistent connections are an HTTP mechanism for minimizing network connection overhead between the browser and the web server. If the client has the Connection request header set to Keep-Alive, and the server responds with the … Continue reading »
Load Tester is a web site load testing tool, and as such we deal primarily with the most popular Internet communications protocol: the Hypertext Transfer Protocol, or HTTP, which controls the request and transmission of web pages between browser clients and web servers. HTTP is based on a lower-level protocol known as the Transmission Control Protocol, or TCP. For the most part, TCP works in the background, but its proper function is critical to your website, and problems at the TCP level can show up in many different ways during a load test. … Continue reading »
The Web Performance load engine is the software Load Tester uses to create virtual users and generate load on the target. As with Load Tester, the load engine is a Java-based application that runs on its own Java virtual machine, which is included in the installation. There are two places the load engine is used: the local engine, which is included with Load Tester and runs inside the Load Tester JVM; and the remote engine, which is a standalone installation with its own JVM. The local engine is limited and intended mainly for replays and small tests, so in this … Continue reading »
In part 1 of How User Ramping Works, we discussed how to set up a user ramp configuration for a test. When you’ve done that, recorded and replayed your test cases to perfection, loaded your datasets, configured your load engines, and set up your server agents, what actually happens when you push the big green button?
The first thing Load Tester does is go through a setup sequence that configures the load engines for the coming test. This can take a while, especially if you’ve configured large datasets or large numbers of files to be … Continue reading »
How we add new virtual users to a test can be confusing when you’re first starting out with Load Tester, and sometimes can result in tests that do not ramp up to the number of users you expect or otherwise behave strangely.
Overview
You’re recording test cases, configuring them, replaying them, and running load tests. One day, you attempt to test a new web application. However, every time you attempt to run a replay, the replay throws an extractor error; it is unable to find a field in the page content of the replay to extract. ASM configured this field automatically, so why isn’t it working? You look at the replay content … and the field name isn’t there.
The usual culprit that causes this problem is a dynamic field name: a variable in a dynamic web page that not only changes in value, … Continue reading »
We recently had a customer that exhibited a particular error message whenever the site went past 60-70 simultaneous users. There were two servers under test, a webserver and a database/application server. The only symptom we could see in the load test reports was a large number of failed TCP connections on the webserver, but not on the database server.
Their webserver was using CGI to build and display pages. The CGI script would make a local TCP connection to a communications service running on the same machine, which would then seek out a remote application server to service the request. At … Continue reading »
Enabling dynamic compression in IIS 7.0 can reduce the bandwidth usage on a particular file by up to 70%, but also reduces the maximum load a server can handle and may actually reduce site performance if the site compresses large dynamic files. Read the full report for a complete analysis.
matt