Configuring Static Injector Families in Eggplant Performance
When you select an injector family in the Workspace tree, the configuration options are shown in the main body of the Eggplant Performance Studio window. These options are essentially the same as what is presented during the wizard. You can view your settings here or apply new values.
If you want to change the name of the injector family, right-click the name in the Workspace tree and select Rename Injector Family. You can also right-click the name to add new injectors to the injector family or to delete the injector family. These functions are also available on the Studio toolbar when you select any item in the Static section.
At the top of the configuration window, you'll find the Description field. Although this field is optional, it can be helpful to include text that describes what the injectors in the family are intended for. It's also a good idea to name each family such that they are easily identifiable with their purpose.
The primary configuration options are found on the Basic settings tab:
- Injector operating system: Your choices are Windows, Linux, or OSX. Note that this option can only be set during injector family creation; you can't change the operating system of an existing injector family.
- Injector listening on port: This value is the port used to connect to the injector. The default port value is 39000. You typically don't need to change this value unless multiple injector services are initialized on one machine or the default port is already in use by another application.
- Engine/monitoring target ports: An injector starts one or more engines in order to execute a test. Each engine must listen on a port so that the controller can communicate with it during a test run. Ports can be specified by a comma-separated list (e.g., 30051,30052,30053), an inclusive range by using a hyphen (e.g., 30051-30060), or a mix of these two options (e.g., 30051,30052-30057,30060-30063). The range must be large enough to accommodate both engines and monitors if a monitor is added to a test.
- Connection timeout (seconds): At the start of a test, the controller attempts to connect to the engines started by the injector. The controller waits the amount of time set by this value for an engine to connect back to it before timing out. On slower networks, this value can be set higher.
- Operation timeout (seconds): The operation timeout is how long Test Controller waits for a response to a message when it's already connected to the injector.
- Max connect attempts: Set the maximum number of attempts Test Controller can make to create a connection with an injector at the start of a test.
- Max reconnect attempts: Set the maximum number of attempts Test Controller can make to reconnect to an injector if it is disconnected during a running test. Leave the Never give up checkbox selected if you want Test Controller to continue reconnection attempts until it is successful.
- Reconnection policy: Choose the method by which reconnection intervals are calculated from the drop-down list:
- Even (Try to reconnect every Nth seconds)
- Exponential (Try to reconnect every M*2^N seconds)
- Reconnect interval (seconds): Set the interval, in seconds, at which reconnection attempts occur.
- Security: Select the required checkbox(es) to specify whether to use SSL encryption and/or Require authentication (signed messages) for secure injector communications. The SSL encryption option provides a high level of security, but can hinder data transfer performance. Similarly, selecting the Require authentication checkbox provides increased security because the injector only accepts messages that are signed. This is especially useful if the injector is running in the cloud. However, for the injectors to accept only signed message, the injector must be started with a command line option -v, which tells it to accept only signed messages.
The Advanced Settings Tab
For more complete control over your injector settings, you can select the Advanced settings tab. On this tab, you'll find additional tabs, each with options you can select or change.
The Runtime tab lets you set the .NET/Java runtime. You can select either 32-bit or 64-bit from the drop-down list. Note that the supported virtual user (VU) types in the list below change based on your selection as well as the operating system chosen for this injector family.
The File transfer tab provides options for working with files that are transferred to or from injectors.
- Transfer data files: This option ensures that all data files are transferred to injectors before each test run. (Selected by default.)
- Retrieve files: This option ensures that log files, such as VU event logs, web logs, and so forth, are brought back from injectors at the end of a test run. (Selected by default.)
- Compress files: Choose this option to compress files before they are sent to or from an injector. This option might be faster for WAN or satellite connections, but for faster LAN connections it's typically unnecessary.
- Temporary folder: Set the folder used for storing compressed files. The system default temp folder is used by default. This option is only enabled when you select the Compress files check box.
- Compression level: Choose the compression level from the drop-down list. (This option is available only if you selected the Compress files checkbox.)
- Transmission chunk size: Set the chunk size for data to be transmitted to or from injectors.
The Locations tab displays and allows you to change the locations of key repositories and resources. When you select an item in the table, a description of that item appears below the table:
- Test run results repository: The location where run logs are stored on the injector.
- File transfer repository: The injector location where the workspace, project files, and core engine files are transferred before the test run begins.
- Java home: The location of the runtime JRE.
- ADB home: The location on the injector of the Android Debug Bridge (ADB).
The Eggplant Functional tab is where you enter information about your Eggplant Functional installation if you are using Eggplant Functional VUs.
- Eggplant Functional home directory: The location of the Eggplant Functional home directory for the injector to use when it launches Eggplant Functional.
Note: This setting is used when the injectors launch Eggplant Functional to run Eggplant Functional VUs. This setting defaults to the standard 64-bit installation location for Eggplant Functional, so you must check that this path matches the location where Eggplant Functional is installed on the injector machine.Note: A different setting is used to launch the Eggplant Functional GUI from Eggplant Performance Studio, which can be changed on the General Tab of Eggplant Performance preferences.
- Eggplant Functional ports: The range of ports available for Eggplant Functional instances when a test runs. A default range is provided. But the range must be sufficient for each VU running on this injector.
- Eggplant Functional License Host: The hostname or IP address of an Eggplant Functional floating license server, if you are using floating licenses for Eggplant Functional.
The settings on this tab let you control the configuration of communication between the controller machine and the injectors. Note that in most cases, the default values should work well. However, for some networks, you might find you need to make adjustments to optimize performance.
- Receive buffer size (bytes): A larger buffer size potentially reduces the number of empty acknowledgments (i.e., TCP packets with no data portion), but might also delay the recognition of connection difficulties. Consider increasing the buffer size if you are transferring large files, or if you are using a high bandwidth/high latency connection (such as a satellite broadband provider).
- Send buffer size (bytes): A larger buffer size might delay the recognition of connection difficulties. Consider increasing the buffer size if you are transferring large files, or if you are using a high bandwidth/high latency connection (such as a satellite broadband provider).
- Receive timeout (ms): Use this option to set the timeout, in milliseconds, for blocking receive calls.
- Send timeout (ms): Use this option to set the timeout, in milliseconds, for blocking send calls.
- TCP no delay (turn of Nagle algorithm): Nagle's algorithm is used by default to improve network bandwidth use. However, you might want to select this option to disable Nagle's algorithm if you are testing systems that expect a real-time response.
Injectors within this family
In the middle of the injector properties page is the Injectors within this family area of the screen. It displays when you are viewing the Basic or Advanced Settings tabs at the top of the page. When you view an injector family in the workspace, you'll see that the injectors that belong to that family are displayed at the bottom of the Studio window. For more information about working with static injectors, see Adding Static Injectors and Managing Static Injectors.