You are on page 1of 20

Load testing with WAPT

:
Quick Start Guide
This document describes step by step how to create a simple typical test for a web
application, execute it and interpret the results. A brief insight is provided on the additional
features available in WAPT Pro, extension modules and the x64 Load Engine.

© 2007-2015 SoftLogica Inc.

Load testing with WAPT: Quick Start Guide

Creating a test scenario
We will start with creating a test scenario. It includes all the general parameters of the test, such
as the number of virtual users, type of load and test duration.
Click the “New” button on the toolbar. This will launch the New Scenario Wizard.

In this example we will create a simple performance test. Choose the "Rump-up" option on
the first page of the Wizard and click the “Next” button to continue.
On the second page of the Wizard you can specify the basic parameters for the ramp-up load
recommended for the performance testing. The number of virtual users will grow during the test
and you can make it grow faster or slower. This will let you compare the performance of your web
application in different test periods depending on the changing load.
Click the “Next” button to proceed to Page 3.

2

Note that any options you choose in the Scenario Wizard can be adjusted later. You can either specify an exact time for the test or set the total number of sessions that should be executed by all virtual users. One profile is usually executed by multiple virtual users concurrently. and so on until the test is finished. Click the “Finish” button to proceed to the test recording. One execution of a profile creates one user session. 3 . The last page of the Wizard contains some important hints on how to create a test and interpret its results. Now let’s proceed to Page 4. * * * The most important part of the work is the design of the virtual user profiles. The type of test only changes the default values of the load parameters you see in the wizard. To do this click the “Test Volume” item in the left view of the WAPT window. One profile is created for each type of virtual users. during the test each virtual user emulates multiple successive real users visiting the site one after another. it starts a new one. It contains user path through the web site and other parameters required for the correct emulation of the user sessions. So. You need to create more than one profile only if you expect that some users will have significantly different behavior and/or will visit different parts of the site being tested (like site admins and regular users). As soon a user finishes its current session.Load testing with WAPT: Quick Start Guide Test duration options On Page 3 you can choose the test duration.

but it has limited JavaScript support. WAPT will record the produced HTTP requests. WAPT will perform the cleanup automatically if you leave the corresponding options checked. if you experience any problems using it (like JavaScript error messages appearing during recording or some application features not working). It is required because some parameters should have different values in each emulated user session.Load testing with WAPT: Quick Start Guide Creating a virtual user profile Initially profiles are recorded with the help of a browser. It is strictly recommended to delete browser cache files and cookies before starting the recording. Only in such case it will be possible to reproduce the recorded session correctly. So. This will open the “Recording Options” dialog. Choose a name for your profile. You can either use the embedded Internet Explorer window for recording. After you complete the New Scenario Wizard. Click the “Ok” button to start recording. You should simply perform step by step all the actions of the user that you want to emulate. try using one of the external browsers instead. This modification is also called “parameterization”. This is required to record a session independent from all the previous user activity that may have been performed on your system. or choose an external browser for this purpose. WAPT will automatically proceed to recording a profile. 4 . Note that it may take up to several minutes when you do this for the first time. During the test WAPT will execute multiple copies of the recorded session by sending the same sequence of requests with modified parameters. In the future you can click the “Rec” button on the toolbar to record another one. Embedded window provides more visibility and lets WAPT better organize the recorded requests.

You will see the requests appearing in the left view inside the “Recorder” folder. They can appear when you work with the web interface controls or at random times. As you navigate through the web site inside the browser window.js and . Note that WAPT works as a proxy between the browser and the target web site. It will separate images. Try to use it without haste. or proceed with just one. This is because all requests to page elements are placed on the “Page Elements” tabs for their parent pages. but you can add bookmarks. Because of that you may experience some delays when working with your web application . WAPT will start processing the recorded content. You cannot edit the requests while recording. .css files from the page requests. Sometimes when you click a link WAPT adds several requests while the page loads. Additional requests are initiated by JavaScript code running on the page. This is useful to mark each separate action inside the user session. Initially they are recorded as a simple list without any structure. WAPT will record all the HTTP requests generated by the browser. After you finish recording. You can record several more profiles in a similar way. Do not click next link until you see that the current step has been fully recorded. click the “Stop Rec” button on the toolbar. 5 . The list of requests added to the profile will be much shorter than the original one. All images and AJAX calls are placed on the same level with the pages of your site.Load testing with WAPT: Quick Start Guide Recording a user session Type the URL of your web site or application to the address bar and click the “Go” button (or press “Enter”).

Each web application can use its own custom ones to pass its specific data. The number of parameters. To edit any parameter. For example. Initially all parameters have static values that were used in the recorded session. many applications send user name and password as parameters of the login request. The most important property is the list of parameters. The right view will contain two tabs. extract them from server responses and use variables assigned earlier. However you can change this. select it in the list and click the “Edit” button to the right of the list (or just double-click the parameter line). 6 . you can do this with the help of special WAPT functions. In the example shown on the screenshot above the value of the parameter is calculated with the help of the “Ordered List” function that takes one of three names from the list. These parameters deliver sessionspecific data from the client part of your web application to the server. The “Properties” tab is where you can view and edit the properties of the selected request. their names and values may be different for each request. The understanding of this concept is very important for the successful use of any load testing tool. if you need each virtual user in your test to use a different name and password. For example.Load testing with WAPT: Quick Start Guide Properties of a request and its parameterization Select a request in the left view. This is called “Parameterization”. You can specify longer list to have more samples. including WAPT. In the “Edit Parameter” dialog box you can specify how to calculate the value for the selected parameter. Other functions can generate random values. There are no standard names and meanings for all parameters. or provide a file with values instead.

To emulate such session properly you need to specify the correct item ID in the parameters of requests that work with the item. You can search for any text there. You can make WAPT identify application-specific errors even if they are not reported through the HTTP response codes. There is one more useful option on this page. That is why you may need to specify how to extract the required value from the server response and assign it to a variable. Here you can specify how to handle response to the selected request inside each user session. The difference is that variables are updated after receiving server response. In the above example the response is treated as valid. modifies its properties and saves changes. This is done in a test for a web site forum. if you want to find the initially recorded value and its bounding text which can be used to specify the arguments of the “$Search()” function. The list of variables is provided at the top of the “Response processing” tab. The tab contains full information on the initially recorded request and response to it. You can specify custom validation rules here. Let’s suppose that the application you need to test works with some items or documents. In the above example. if it does not contain the “error” word inside.Load testing with WAPT: Quick Start Guide The processing of server responses Switch to the “Response processing” tab. 7 . You can only take it from the page containing the list of items. This is very useful. the “$Search()” function is used to extract a random topic title from a page containing several such titles. whereas parameters are calculated before sending the request. However this ID is different in each user session. This variable can be used in all subsequent requests instead of the initially recorded value. You can assign variables using the same set of functions as for the parameters. During each session the user selects an item from the list.

The “Parameterization” dialog will appear. select it in the list of parameters and click the “Parametrize” button. It is usually preferable to select the earliest source. This means all places in the server responses from which the value can be extracted. i. You will be able to see that variable in the processing of the corresponding response. Click the "Find" button to find all occurrences of the value in the profile. You should select one source and put checkmarks near all "uses" that you want to parameterize. 8 . To speed up the work with such value. You can also open it through the “Edit” menu and enter the value manually. A session-specific value may be produced by the server inside the page code and used as a parameter in several subsequent requests. It will also appear in all parameterized uses instead of the initial value. the place where the valu e appeared for the first time.e. You can click on items inside both panes to see the details in the main WAPT window. In the left pane of the dialog you will see all available "sources". The right pane contains the list of all "uses" of the value.Load testing with WAPT: Quick Start Guide Bunch parameterization More than one request in a profile may require the same parameterization. WAPT will automatically create a variable from the selected source and assign it with the help of the “$Search()” function. Specify the variable name and click the "Create variable and parameterize selected uses" button.

This function returns the value of a variable with a specified name. WAPT will create a variable for each hidden field of any HTML form found inside the server responses. 9 . you can automate this process for any similar profile you record in the future. After you finish recording a profile. To reduce the number of variables it is recommended to check the “Do not create variables for unused values” option. WAPT will check all the web site responses for such values and will create a new variable for each one. Click “Add” button to create a new rule for extracting dynamic values contained on the recorded pages. in many cases recorded profiles do not require additional parameterization. That is why after recording a profile you will probably see many variables cre ated by WAPT and assigned with the help of the “Hidden” function. You can try temporary unchecking it to see how this affects the number of variables. In fact. For each value you should specify its left and right boundary. Since this option is turned on by default. You can also see how these variables are used in the parameters of the subsequent requests with the help of the “$Var()” function. Not all hidden values are actually used in the test. It will also replace each value with the corresponding variable in all parameters of all subsequent requests. The "Extract to variables values of hidden fields in HTML forms" option works in a similar way. this is the most common way to pass session-specific values from a server to the client. Click the “Settings” button on the toolbar and switch to the “Parameterization” tab.Load testing with WAPT: Quick Start Guide Automatic parameterization The parameterization procedure can be a rather complex and time consuming task. However if you have performed it once.

you can assign variables before the beginning of a user session. Click the “Initial variables” button for this.Load testing with WAPT: Quick Start Guide Properties of a virtual user profile There are a number of options associated with each profile.wpp” extension. check the “Authentication” option and click the “Credentials/Certificates…” button to specify a set of credentials that virtual users will use when running this profile. Note that “Default HTTP headers” and “Response validation rules” options can be overwritten in each request. Each profile is stored in a file with the “. You can change its name here. If your web site requires authentication or a client certificate. If your profile uses session-specific values in the very first request. 10 . select the pr ofile in the left view. To edit them.

For example. After that the same request will still produce the 401 code. you should check if the same code was returned when you originally recorded the profile. WAPT will show a simple report that contains summary information with the response/status code for each request. Similarly. You can also get other types of status codes like “Response body validation error” or “Timeout” here. but it will be followed with the “200 OK” code. 11 . These are HTTP redirects that are processed by WAPT automatically.Load testing with WAPT: Quick Start Guide Test verification Click the “Verify Test” button on the toolbar. When the verification is finished. Note that the table also includes information about responses to page element requests. but its page element was not found on the server. if a page request completed successfully. For this reason it may list the same request with different codes. you can expand the “Logs” folder in the left view to get more information on each problem. this probably means that WAPT cannot connect to the target web site. you can use the logs. You should check that your network configuration permits direct connection to it. You can do this on the “Response processing” tab for the corresponding request. your site contains a broken link. if you see that some request completed with the 401 code. WAPT will let you select profiles for verification and will execute each of the selected profiles one time. If you find the same problem there. this is not a problem. it will be listed under 200 and 404. If you see the 404 code. If you want to check this sequence step by step. This only means that the server requires authentication. Note that response codes starting with “3” (like 302) are not errors. If any issues are found on verification. so you should provide user name and password in the profile properties. This way you can check if the profiles are working correctly. If you see a “Network error”.

This information is structured with the help of a tree view that includes profiles. virtual users. Successful ones are painted green. Requests to page elements in grey color with indent under each page request. You can expand and collapse them. “Values of variables” lines that provide information on the values of all variables used in the next request.Load testing with WAPT: Quick Start Guide Log viewer Log Viewer provides the detailed information on all requests. This way you can find the differences and identify session-specific values. You can select any line and see the details in the lower part of the view. and errors appeared during the test run or verification. You can compare any part of the request or response with the initially recorded content. So if you want to get logs after a test run. responses. which may indicate a problem. Requests completed with errors are painted red. you should enable this feature on the “Log and Report Settings” page. Expand the “Logs” folder in the left view and select a session. “Local IP…” and any messages written to the log by JavaScript operators. You can save all log files by choosing “File | Save Logs…” from the menu. For each request you can switch between different tabs containing request and response headers and bodies. Page requests. 12 .     Information messages like “Connecting to…”. sessions and requests. The useful search option is also available here. Note that by default logging is disabled for efficiency reasons. In the upper right view you will see the log lines of the following types. You can also check if the server produced a significantly different content.

so we can save it. Note that these options are shown for the currently selected profile (highlighted with blue selection). If you want to edit options of a different one. Click the “Save” button on the toolbar to save your test scenario to a file.Load testing with WAPT: Quick Start Guide Test Volume After making sure that all your profiles are working correctly you can specify the load parameters for the actual test. Check the ones you want to use in the test. In the above example. select it in the list. All profiles will be also saved to separate files in the same folder. Each profile is shown with a different color. which means that all agents execute all profiles. Keep all these files. In the Pro version of the product you can also specify different load agents for different profiles. growing and periodic). Second profile (with the rump-up load) is selected and its options are shown below the list. Select the “Test Volume ” item in the left view inside the “Scenario” folder. The graph at the bottom of the page shows how the load will be distributed between profiles during the test. By default virtual users are allocated to agents automatically. we have 3 profiles with different types of load (constant. In the right view you can see the list of all your profiles. 13 . if you want to open the same test in the future. You can specify certain load options separately for each profile. Now we have finished designing our test.

By default one of the agents is installed on the same system with the workplace component. Select the “Load Agents” item in the left view inside the “Distributed Test Run” folder. So you can run tests with help of a single workstation. Click the “Run Test” button on the toolbar to start your test.Load testing with WAPT: Quick Start Guide Selecting load agents* and starting the test WAPT Pro allows using several systems for the load generation. If you use the regular version of WAPT. Put checkmarks near agents that you want to use in the test. Since the connection between the workplace component and load agents is done over TCP/IP. If you have remote agents located outside your LAN. However if you need a greater load. * Available only in Pro version 14 . Each of these systems should run a special service called Load Agent. you need to make sure that your network configuration allows connecting to the specified addresses. you can add them manually with the help of the “Add” button. Click the “Search LAN for available load agents” button to search your Local Area Network for computers with installed agents. so just click the “Run Test” button to start the test. you can add more load agents. You should check at least one. the load will be generated by the only one built-in agent.

The results are represented in the form of Summary Report. You can save the results of a test run either as an HTML report.wpr” extension. You can select the corresponding option in the left view. browse graphs and work with the results like right after the test. In the above example. All graphs have two vertical scales to represent parameter values. the number of pages per second (yellow graph) is specified on the left scale. You may only need to wait several seconds for the first data to appear. On graphs you can choose between several tabs at the top and select parameters you would like to see on the graph at the bottom area. Summary Graphs and graphs for each user profile and single request. whereas the number of active users (black graph) is specified on the right scale.Load testing with WAPT: Quick Start Guide Test results You can start monitoring the test results right after you launch the test. Each parameter is shown with a specific shape and color. Bottom right corner image ( ) refers to the right scale. or as a special results file with the “. In the latter case you will be able to open that file with WAPT at any time again. Bottom left corner image ( ) near the parameter description means that the value is specified on the left scale. 15 .

Select the “Pass/fail Criteria” item in the left view. This is useful if you are fine-tuning your set of criteria. Each of them checks one of the parameters. The test is treated successful only if all criteria are met. This is what you will see in the report in case of the failure or success respectively. such as the error rate or the response time. Click the “New from template…” button to add a criterion basing on the standard templates. This will let you perform very deep and specific analysis of the test results. You can see the result in the Summary Report.Load testing with WAPT: Quick Start Guide Pass/fail criteria If you have exact requirements for the performance of your web application. You can also click the “Check and update report” button to apply the criteria to the latest test results. In the Pro version you can also use criteria implemented with the help of a JavaScript code. Criteria are applied to the test results automatically on the completion of each test. 16 . you can make WAPT automatically check all the conditions to mark each test as passed or failed. The right view will contain the list of criteria that will be applied to the test results.

WAPT will show you a warning message with recommendations.    Module for Adobe Flash testing Module for Silverlight testing Module for GWT testing Finally. When you finish recording a profile. the following modules are required. Both modules are optional. It is not usually important which framework and technologies were used to create the application and what hardware and software is used to run its components.net testing Modules for JSON format With the help of these modules you will be able to create your tests faster and in a more convenient environment. Some web technologies imply passing specific data structures during the client-server communication process.   Module for ASP. To perform conversion of such structures to and from standard XML format. Still there are two situations in which you may benefit from using modules that provide extended support for some specific technologies. there is a module that allows working with any binary data that may appear inside the requests and responses:  Module for binary formats It is very easy to find out if you need a specific module to test your web applicatio n. Each module is provided with a separate installation package. You only need to install the module on the system where you run WAPT or WAPT Pro workplace. The integration is very smooth. The following modules facilitate the test design process. 17 .Load testing with WAPT: Quick Start Guide Extension Modules WAPT can test any web application that uses HTTP(s) protocol for client-server communication. but we recommend installing them in case your web application uses the corresponding technology.

Note that JavaScript code can be used only for calculations. The result will be displayed in the “Output” window. Choose “Add | JavaScript” on the toolbar. You can call functions defined in the JavaScript library directly when you specify how to calculate values for the request parameters and variables. It takes the actual name of the function you want to call as an argument. Click the “Check Syntax” button to check your code. You can use those variables in subsequent requests. Initially the edit window contains a short instruction on how to use this feature. Select it to edit the code in the right view. * Available only in Pro version 18 . However you cannot initiate new requests or use GUI functions in the code. Click the “JavaScript Library” button to add files with more functions.Load testing with WAPT: Quick Start Guide The use of JavaScript* You can use JavaScript code for the calculation of any values inside user sessions. There is another way to use JavaScript in your profiles. The JavaScript operator will be added to the profile. You can do this with the help of a special internal function called “JavaScript” . Select the request after which you want to insert a JavaScript code. The results of such calculations should be assigned to WAPT variables. In your code you can use functions defined in the WAPT Pro JavaScript library. This may be necessary if you need to emulate complex data processing on the client.

WMI is native for Windows servers. Select an interface in the tree view and click the “Add new server…” link in the right view. This will cerate a new server. You can add counters for it. such as response time. You can also see it on graphs.Load testing with WAPT: Quick Start Guide Performance counters* In addition to the client-side metrics. it can be enabled on Windows as well. Click the “Add counters from repository…” button on the server properties page for that. You can add and use them without any modification. Click the “Test” button in the server properties page to check that the counter retrieval works properly. * Available only in Pro version 19 . Apache is specific for Apache web server. You will see the counters grouped by the interface type. WAPT Pro has a set of predefined counters for a number of server tools. WAPT Pro can collect performance information directly from the loaded servers. This information is added to the test report along with other parameters. You can use the implementation of the predefined counters as examples and construct your own advanced counters in a similar way. Each counter is implemented as a JavaScript function that returns counter value. ODBC is used to monitor database performance. Expand the “Performance Counters” item in the left view. - SNMP is common for all types of UNIX systems.

* Compatible only with Pro version 20 .000 users load you would need to use 5 systems with agents. However the engine has much higher capacity. This means that for a 10. Note that 32 bit installation package of WAPT Pro does not include the x64 Load Engine . It can be launched and managed from the Load Engine Manager available under the Start menu on the system where the engine is installed.000 virtual users in an average test. The engine can be installed on any system with 64 bit Windows OS starting from Windows XP. By default this service is launched automatically.Load testing with WAPT: Quick Start Guide x64 Load Engine* The functionally of the x64 Load Engine is identical to the functionality of the regular load agent that comes with WAPT Pro. so you can start using it immediately after the installation. There is no need to restart it manually after the system reboot. You can setup the engines on several systems and use them concurrently to create greater test volume. In most cases you can replace them with a single instance of the x64 Load Engine . Regular agent can create about 2. A much higher engine capacity is achieved because of its native 64 bit architecture. The engine runs as a system service. You can either download this product separately or use the 64 bit installation package of WAPT Pro.