Load-testing Cameyo sessions

Cameyo's tools for simulating and testing your applications and servers under heavy load.

Cameyo's self-service load-testing service

You can simulate load testing for your application using Cameyo's load-testing page and submitting your application's details as shown below.

Cameyo will then start simulating the indicated amount of concurrent sessions. The default app's server will be used, so it's recommended to perform this operation on a dedicated test server group.

Preparing your application for load-testing

We recommend to load-test your Cameyo application in two separate scenarios:

  • Passive scenario: your application is launched NN times, but no activity is made on it. This allows for minimum / basic resource calculations.
  • Intensive scenario: your application is launched NN times, and heavy (but realistic) user activity is simulated.

Passive load-testing

For this scenario, you simply need to load-test your existing app as shown above. Once all the sessions are concurrently running on your server, proceed with quality assessment as explained below.

Intensive load-testing

This scenario requires some automation of your software. The idea is to simulate repetitive or infinite user interaction with your software. This can either be done via command-line scripting (if your software supports such command-lines) or by using UI automation tools such as AutoIt.

Once all the sessions are concurrently running on your server, proceed with quality assessment as explained below.

Quality assessment

For each of the above scenarios, you can assess the results by doing the following:

  • Resource assessment: connect to the tested server as an admin while all load-testing sessions are running. Open the Task Manager and write down the CPU and memory resource usage in the Performance tab. You can also note the breakdown per session via the Users tab. This gives you an indication of how much of your server's resources are taken by the tested number of concurrent sessions.
  • Look & feel assessment: while subjective, this indicator is possibly the most important one. Here you will need to assess what the user experience feels like in cases of heavy load. To do this, manually start a Cameyo session of your tested app while the server is under load and use your software as a normal user would. If it behaves fast, try adding more sessions. You can add additional sessions by repeating the above URL -- no need to stop the running sessions. If it feels too laggy, you should reduce the number of sessions -- you can do this via the Task Manager | Users | Disconnect action. Do this until you find the right capacity/quality threshold.

Building your own load-testing server (advanced)

Note: this section is for advanced usage only, or when the above scenarios aren't sufficient.

Cameyo load testing tool is available here.

It is recommended to use this tool on a dedicated machine or VM with high CPU and RAM power, where no instance of Firefox is installed or planned to be installed.

1) Install FireFox ver 54 from the downloaded archive.

2) After installation disable Firefox updates (this tool does not support Firefox ver 55 and above). You can do this in Firefox Preferences | Advanced | Update.
3) Publish an application from the Cameyo server you wish to test and set it to Unauthenticated access (so that it doesn't require HTTP login)
then, either:
4) Launch Load test app
5) Enter web page path (e.g. https://google.com) and press Enter
6) Enter number of browsers
7) Enter number of tabs that will be launched in the browsers and press Enter
8) After end of tabs opening process, you can start new test or exit from console
or:
4) Customize and use LoadTest.bat

Syntax:
LoadTest.exe https://online.cameyo.com/apps/app_id/play nn 1
Where:
- app_id: Cameyo's application ID (number). Remember the app must first be switched to Unauthenticated access.
- nn: number of sessions to generate.

Example:
LoadTest.exe https://online.cameyo.com/apps/92387491494421/play 20 1

Useful PowerShell command for counting Firefox processes:

get-process | Group-Object -Property ProcessName