Create a Scenario
The scenario defines the set of steps that agents will run when executing a load test as well as the timing in between those steps.
For example a scenario for an HTTP based REST API might involve:
- Send
GET /
tohttp://mywebsite.com/api
- Wait 100ms for a reply, check the status code to ensure a
200 OK
.
There are a numerous ways to define a scenario:
- Create a Recording: Testable will dynamically generate a URL that you can use to record all traffic to and from your service as you use the gateway URL (i.e. a recording man in the middle proxy).
- Write a Node.js script: Write a script using the Javascript language running within a sandboxed Node.js environment to execute more complex scenarios. You can start from scratch or convert a Recording into a script as a starting point.
- Run a JMeter Test Plan: JMeter, a popular source tool, can be used to define the scenario. Then simply use Testable to execute that test plan at scale.
- Run a Gatling Simulation: Gatling, a Scala DSL based open source tool, can be used to define the scenario. Then simply use Testable to execute that simulation at scale.
- Run a Locust test: Locust, a Python based open source tool, can be used to define the scenario. Then simply use Testable to execute at scale.
- Write a Webdriver.io script: Write a Webdriver.io Selenium script for Nodejs. Each virtual user runs wdio against a test runner local selenium instance.
- Write a Protractor script: Write a Protractor script. Each virtual user runs protractor against a test runner local selenium instance.
- Write Selenium Javascript code: Write Selenium Javascript code. Each virtual user runs this code in Node.js against a test runner local selenium instance.
- Write Selenium Java code: Write Selenium Java code. Each virtual user runs the Java code on a JVM against a test runner local selenium instance.
- Run a Serenity BDD project: Upload a Serenity BDD project. Each virtual user will run the Serenity tests on a JVM against a test runner local selenium instance.
- Run an OpenFin application: Test an OpenFin application using any of the supported Selenium bindings. Each virtual user will launch the OpenFin application with Chromedriver running locally on the test runner.
- Replay a HAR file: Each virtual user replays a HAR file.
- Load Url: The simplest option. Ask Testable to either HTTP GET your URL or simulate loading your URL in a Chrome browser.
- Write a PhantomJS or SlimerJS script: Write a script for PhantomJS, a headless WebKit browser implementation or for SlimerJS a headless Gecko (Firefox) browser implementation.
Scenario Parameters
Scenario parameters allow you to parameterize your scenario and share it across multiple test configurations. Parameter vlues are passed to your scenario at runtime in different ways depending on the scenario type. See the detailed documentation for your chosen scenario type for more details.
In general though parameters are accessible as environment variables, system properties, or via a global params
object in the case of Node.js scripts.