•
Simulation: The simulation file includes the different
scenarios of a test, its parametrization and the
injection profiles. Technically speaking, a simulation is a
Scala class. Here are examples of simulations in Java and JavaScript: //Java public class BasicSimulation extends Simulation { HttpProtocolBuilder httpProtocol = http.baseUrl("https://e-comm.gatling.io") .acceptHeader("application/json") .contentTypeHeader("application/json"); ScenarioBuilder myFirstScenario = scenario("My First Scenario") .exec(http("Request 1") .get("/session/")); { setUp( myFirstScenario.injectOpen(constantUsersPerSec(2).during(60)) ).protocols(httpProtocol); } }//JavaScript export default simulation((setUp) => { const httpProtocol = http.baseUrl("https://e-comm.gatling.io") .acceptHeader("application/json") .contentTypeHeader("application/json"); const myScenario = scenario("My Scenario") .exec(http("Request 1") .get("/session/")); setUp( myScenario.injectOpen(constantUsersPerSec(2).during(60)) ).protocols(httpProtocol); }); •
Scenario: A scenario consists of a series of
requests. Each scenario within a
simulation can have its own
injection profile. Here is an example of a scenario: //Java ScenarioBuilder myFirstScenario = scenario("My First Scenario") .exec(http("Request 1") .get("/session/")); { setUp( myFirstScenario.injectOpen(constantUsersPerSec(2).during(60)) ).protocols(httpProtocol); }//JavaScript const myScenario = scenario("My Scenario") .exec(http("Request 1") .get("/session/")); setUp( myScenario.injectOpen(constantUsersPerSec(2).during(60)) ).protocols(httpProtocol); }); •
Group: Groups can be used as a subdivision of a
scenario. It is also a series of
requests, that has a functional purpose (for instance, the login process). •
Request: Gatling is able to simulate complex users' behaviors. For this purpose, it generates the appropriate requests in the system under test. Here is an example of a request in Gatling: //Java .exec(http("Request 1") .get("/session/")); //JavaScript .exec(http("Request 1") .get("/session/")); •
Injection profile: An injection profile is the number of virtual users injected during the test in the system under test and how they are injected. Here is an example of an injection profile: //Java setUp( myFirstScenario.injectOpen(constantUsersPerSec(2).during(60)) ).protocols(httpProtocol); //JavaScript setUp( myScenario.injectOpen(constantUsersPerSec(2).during(60)) ).protocols(httpProtocol); ==Architecture==