Getting started with a performance test of 5 concurrent robots emulating real users.
This article outlines how to run a test with 5 users accessing the application from a Windows server. This is the ideal setup for testing most applications.
If you don't have access to a Windows server machine but want to proceed to see how it works on your Windows PC with one user, see AppLoader eval with one user on a PC.
If you choose the PC option, keep in mind that you may need to later adjust your scenario when you ramp up your load test to be compatible in the server environment, as your PC may render images differently and cause script failures.
- A Brief Overview of the Product
- Create a User Account for Building a Scenario
- Use Sessions Controller to Connect to the User
- Build your Scenario
- Play and Validate your Scenario
- Send your Scenario to the Controller
- Launch AppLoader Controller
- Create and View Robot Users
- Create a Test Plan
- Run Test
- Monitor Load Test Execution
- View and Analyze Reports
- Determine Injector Capacity and Ramp up Load
A Brief Overview of the Product
AppLoader uses robots called rUsers to simulate multiple users accessing your application from the front-end; exactly how it will be accessed in production.
AppLoader uses a distributed architecture so that you can simulate load from different locations and scale easily. There is no coding necessary to set up your scripts.
The Controller: Where you manage and monitor tests. It lets you to:
- Distribute the scripts to all the robots on the Injectors
- Create test plans
- Schedule tests
- Create and view load test reports
Robots (rUsers): Each rUser simulates one real user. These are located on the Injectors and run the scenarios from their own desktops at the direction of the Injector.
Injector: This is the component that controls the rUsers, runs tests, and sends results back to the Controller. Contains the rUserManager that creates a session for each rUser.
Each Injector is located on its own machine, manages the robots on that server, and acts independently of other Injectors. (Usually, an Injector can handle up to 50-100 rUsers.)
ScenarioBuilder: Code-free engine for creating scenarios/scripts of business processes.
Before you start: AppLoader works with Remote Desktop Services (Terminal Services) from Microsoft to generate multiple users simultaneously interacting with an application from one Windows Server. For guidance on installing Remote Desktop Services on your Windows Server and configuring your server for optimal performance as an Injector, see How to configure Remote Desktop Services for Automai Injector.
Install the Controller, Injector, and ScenarioBuilder on the same server. Choose "Complete install for all modules." option.
(If you need to install the modules on different machines, you can install them separately.
The installer also gives the option to install specific modules on a machine by using the custom installation option.)
Best Practice for using AppLoader→Build the scenario from the server where the Injector is running so that the images and environment will be what the robot users see when you are running the test. Follow the steps below:
Create a User Account for Building a Scenario
These steps are only valid if you plan to use a local user account. Skip to “Use Sessions Controller to Connect to User Account” section if you require to use a domain user account.
Log in to the Windows server machine as an administrator.
Open Server Manager
Go to Tools tab, and select “Computer Management”
Expand the Server Manager window. Then, expand to Configuration → Local Users and Groups → Users
After that, right-click Users option and select New User to create a new user for server.
Please enter all the required details like Username and Password. We recommend using a strong password which will be a combination of numbers, special characters and alphabets [in uppercase and lowercase].
In addition to this, you can select Password never expires property to prevent being locked out of the server.
Now, click on Create button to create the user for your server.
As you need to use this user for RDP, you need to add this user in Remote Desktop Users group of the server. For that, right-click the new user e.g. ruser000[Configuration → Local Users and Groups → Users] and select Properties.
Click on the Member Of tab. Then, click on Add.
Click on Advanced.
Click on Find Now and select the Remote Desktop Users option from the list and then click on OK.
You should now see the Remote Desktop Users group in the Member Of tab.
Click on OK button to apply the changes.
Use Sessions Controller to Connect to User Account
Scenarios should be built in a robot environment so that images are rendered the same.
To make it easy for creating scripts, we recommend using Automai's Sessions Controller which allows you to RDP to one of the robot machines (with the user you just created or a domain user) and create a script. This ensures that the scripting and playback are in similar desktop environments, eliminating issues with resolution, font smoothing, color variations, etc. (If this is not possible, you can go directly to the server, and use one of the user sessions in rUserManager to build your scenario.)
1. Download and install Sessions Controller on your PC where you are connecting from.
2. Launch Sessions Controller by double clicking on the desktop shortcut.
3. Click "Add ScenarioBuilder session".
4. Fill out the session parameters.
- Enter the username and password of the user account that was created in the previous section or of your domain user. If the user account is a domain account, enter the domain name in the field provided.
- Choose a screen resolution, color quality, and select font smoothing if needed.
- Enter ScenarioBuilder hostname or IP address. (This is the server where ScenarioBuilder is installed.)
5. Click "Submit" and then click "Start session".
The ScenarioBuilder user session will open. You can now start creating your scenarios.
You can also go into the system tray and right click on the Sessions Controller icon or to get into the session you created.
Please refer to "Troubleshooting Tips" section in this article in case of receiving any errors in Sessions Controller.
Build your Scenario
Before you start your scenario, know your application!
Before you start recording and building the script, go through the process on your application manually and understand what steps you will need the robots to do. (Example: Log into an application, look up a record, and log out).
Then follow these steps:
- Open Scenario Builder.
- Enter a name for your project.
- Build a scenario by clicking "New" button on the top left to create your Scenario.
- Click on "Start Recording" option.
- Now begin going through the process on your application. ScenarioBuilder will be listing the steps in a script as you go.
- When you are done, click on "Stop" button, ScenarioBuilder will go back to the main window. You will see the recorded steps as individual actions.
Afterward, you can edit the script, break it into subscripts, update any actions or images, add transactions, etc.
(Later, you can divide and organize your scripts to make them more sophisticated and easier to edit, loop certain parts, etc. To learn more, see this article.
If your scenario is for a Citrix application, best practice is to:
1. Set "Tolerance" to 5%. (Because of the variation in images with streaming Citrix applications.)
2. Set "Image Search Area" to 30%. (Searches 30% of screen size around where the image was originally instead of the whole screen, this helps to save resources.)
In ScenarioBuilder, go to View->Options->Images and configure the above settings.
Play and Validate your Scenario
Once the scenario is built, run it by clicking on the “Play” button. Run multiple iterations to make sure that the scenario was finished correctly and everything is ready for the start of the next iteration.
If the scenario runs to the end without any errors and runs multiple times without errors, it is valid to use in a load test. If the scenario aborts on an error, debug the scenario with viewing the failure screenshot and run it through a simple test again.
Set the reference time and save your scenario.
Send your Scenario to the Controller
Send your scenario to the Controller by clicking “Send Scenario”.
(See the IP address/hostname of the Controller that it is connected to in the status bar of ScenarioBuilder.)
To Manage Controllers/Bases in ScenarioBuilder, click on “View" -> "Options" and then “Base”.
Close or minimize ScenarioBuilder.
Launch AppLoader Controller
Open a browser to access Controller (by typing in IP address or hostname of the machine controller is on followed by and the port number, For example→ localhost:8888 )
Log in to the Controller (default is username: admin, password: admin)
Set up user account details, (it is only required for the first time logging in), submit and log in again.
You will see the Injectors page with your registered Injector.
Create and View Robot Users
Injectors must have the same RDP settings as the user session configured in Sessions Controller.
To do this, select your desired Injector and click on the pencil icon to edit the Injector.
Go to "RDP Parameters" section and make sure the variables match with the setting of the user session in Sessions Controller.
Make the changes if necessary and click "Submit".
Select the Injector and click "Start rUsers" on the top menu. A window will pop up. Specify the number of users (the eval comes with 5 maximum users.)
Put 5 as number of users and put the launch delay (seconds between starting users.)
* By default start index is "1". (starting with the first user)
Next, click "Submit".
This process launches the rUserManager on the Injector and initiates the rUser logins.
rUserManager window (the component that manages rUsers sessions) will launch and you will see the rUsers connecting.
If your testing environment requires that you use authenticated domain users, see this article.
Create a Test Plan
Launch AppLoader Controller.
Click on "Manage Tests" tab
Click "Create new test plan"
Enter a name and description for your test plan.
*For further explanation, hover over the field names.
- Steady-state time: How long (in minutes ) you want your test to run after all the rUsers are on the system)
Use 10 minutes as the default.
- Enforce SST (Steady-state time): “No” allows you to specify the number of iterations you want under "Test Scenario" section. “Yes” stops executing test at the set time.
Test scenario section:
Select desired Injectors, scenarios, rUsers, delay, pacing (using dropdown, or wizard)
The number of iterations is automatically calculated. You can change this if you don’t enforce steady-state time.
If have any CSV files in your script, it will show up in this section. Choose how you want AppLoader to use (For example for usernames in a Login scenario, use “Fixed row per User”.)
Hover over “Access Rule” for more explanation or see AppLoader User Guide.
Click “Yes” to review the execution plan.
Close execution plan window and click "Yes".
Rename the load test if desired, and add notes (i.e. Load test run 1) on the test plan.
Check "Send Scenario" and keep "Keep Failure Screenshots on Injector Machines(s)" unselected.
Monitor Load Test Execution
Once the test starts, the real-time page will open.
While a test is running, you can view the execution process through rUserManager. Maximize the rUserManager to see each rUser session executing scenarios in real-time.
The rUserManager can be minimized but not closed during the test. If closed, it will disconnect the rUsers sessions and disrupt the test.
View and Analyze Reports
Go to "Test Analysis" Controller to view and analyze load test results, failures, reports, etc.
If there are script failures, go back to ScenarioBuilder and fix them as needed. Resend your scenarios and execute your tests again.
Determine Injector Capacity and Ramp up Accordingly
Best Practice→ Set up one Injector perfectly, then clone it to reach the number of desired virtual users.
Once test runs smoothly, increase the load by increments of 25 (25, then 50 users, 75, more)
This will allow you to determine how many users your Injector can handle comfortably.
Check Injector metrics in “Test Analysis” page.
In the tree on the right side, you can check Injector system metrics (CPU, memory, disk IO’s) to see where it is overwhelmed.
Once tests are running well and volume is determined, clone according to your objective. For example: If your Injector can handle 100 rUsers and you need 1000, then clone 9 times.
After cloning, you can see all the Injectors under the “Injectors” tab in the Controller. They will now be available in the drop-down for the test plan.
Update your test plan by adding new Injectors and new scenarios to it. Then execute your test with the desired number of concurrent users and Injectors.