Optionally, you may want an Exec Agent to use multiple client IP addresses during the load test in order to simulate users from different network locations.
Steps
In the case where a load balancer is placed in front of a web server cluster or web server farm, the load balancer will often route all HTTP/S requests of one client IP address to only one member of the web server cluster. This is because web applications use session cookies, whose context information is only stored in the transient memory of a particular cluster member, and also because the server-side SSL cache is usually handled by the cluster members and not by the load balancer. This load balancer functionality is called “IP stickiness”, which represents the recording of client IP addresses inside the load balancer algorithms. This term has nothing to do with the sticky bit of Unix file systems.
If you encounter this situation the load will appear on only one web server, and will not be distributed across all webserver cluster members. The solution to this load balancer behavior is to have the Exec Agent use multiple client IP addresses during the load test; therefore, each concurrent "user" will have its own IP address - or, if more concurrent users are running than available local IP addresses, the local IP addresses will be averaged across the concurrent users.
The first step to enable multiple IP addresses for an Exec Agent is to reconfigure the underlying Windows or Unix operating system, such that multiple local IP addresses are available. This can be done by assigning additional IP addresses to the same physical network interface.
The second step is to assign these multiple IP addresses to the Exec Agent configuration. For the local host where the Web Admin GUI is running, the second step can be done by invoking the Setup menu inside the Project Navigator (gear-wheel icon in the top navigation). For remote Exec Agents, you must edit the file javaSetup.dat, located inside the ZebraTester installation directory, and add the entry javaVirtualIpAddresses. Enter here all IP addresses on one line, separated by comma characters.
After these two steps have been completed, you can start the load test by using the additional option -multihomed, which initializes the Exec Agent to use multiple local IP addresses when executing a load test. This option is also supported by Exec Agent clusters (load injector clusters), in which case each load-releasing cluster member (Exec Agent) uses its own configuration of client IP addresses.
Warning: please contact your network administrator to get additional (free) IP addresses. An incorrect configuration of additional IP addresses without consulting the network administrator may have an impact on several other computers of the same LAN, such that these other computers could lose their network connection due to IP address conflicts. *
Step 1: Configuring Multiple IP Addresses at the Operating System Level | Windows | Unix-like SystemsYou can configure multiple virtual IP addresses for the same network interface by executing the |
Step 2: Assigning Multiple IP Addresses to an Exec Agent | On the local system, where the Web Admin GUI is running, assigning multiple IP addresses to the local Exec Agent can be done by clicking on the “Setup” icon in the Project Navigator. Inside the setup menu, you must enter all IP addresses in the input field Local Exec Agent IP Addresses, separated by comma characters. Alternatively, there is an Auto Detect checkbox available which assigns all IP addresses configured at the operating system level automatically. | |
External Exec Agents (where no Web Admin GUI is available) | You can assign the IP addresses to the Exec Agent by editing the file javaSetup.dat with a text editor: The file javaSetup.dat is located inside the ZebraTester installation Directory. Important Note: when you start a load test, you must use the additional option -multihomed to specify that multiple IP addresses are to be used by the Exec Agents: |