Quick Reference
Core Syntax Cheat Sheet
Protocol
HttpProtocolBuilder http = http
.baseUrl("https://api.example.com")
.header("Content-Type", "application/json")
.warmUp("https://api.example.com");
Scenario with Requests
ScenarioBuilder scenario = scenario("Name")
.feed(csv("data/users.csv").circular())
.exec(http("GET request").get("/path"))
.pause(1)
.exec(http("POST request").post("/path")
.body(StringBody("{\"data\": \"value\"}")))
.exec(http("PUT request").put("/path"))
.exec(http("DELETE request").delete("/path"));
Setup with Load Patterns
{
setUp(
scenario
.injectOpen(
constantUsersPerSec(100).during(300), // 100/sec for 5 min
rampUsersPerSec(100).to(500).during(600), // Ramp to 500/sec
heavisideUsers(1000).over(300) // Alternative ramp
)
)
.protocols(http)
.assertions(
global().responseTime().p95().lt(500),
global().successfulRequests().percent().gt(99.0)
);
}
Checks & Assertions
.exec(http("Request")
.get("/api")
.check(status().is(200))
.check(jsonPath("$.field").saveAs("varName"))
.check(bodyString().contains("text")))
.assertions(
global().responseTime().p95().lt(500),
global().responseTime().p99().lt(1000),
global().successfulRequests().percent().gt(99.0)
)
Variables & Substitution
// From feeder
.feed(csv("data/users.csv").circular())
// From response
.check(jsonPath("$.userId").saveAs("userId"))
// Manual
.exec(session -> session.set("var", "value"))
// Use in request
.get("/users/#{userId}")
.body(StringBody("{\"id\": \"#{userId}\"}")
Load Patterns Quick Reference
| Pattern | Syntax | Use Case |
|---|---|---|
| Constant | constantUsersPerSec(100).during(300) |
Baseline testing |
| Ramp | rampUsersPerSec(10).to(100).during(300) |
Find breaking point |
| Step | Multiple .constantUsersPerSec() phases |
Threshold analysis |
| Spike | Jump load mid-test | Recovery testing |
| Smoke | constantUsersPerSec(1).during(60) |
Verify simulation |
Metrics to Monitor
p50 (median) → 50% of requests faster than this
p95 → 95% of requests faster than this (key SLA)
p99 → 99% of requests faster than this (SLA)
p99.9 → 99.9% of requests faster than this (extreme)
RPS → Requests per second (throughput)
Success rate → % of successful requests
Error rate → % of failed requests
Common Commands
# Run specific simulation
mvn gatling:test -Dgatling.simulationClass=io.learn.gatling.simulations.http.Sim01_BasicHttp
# Clean and run
mvn clean gatling:test -Dgatling.simulationClass=...
# View latest report
open target/gatling/*/index.html
# Run all simulations in package
mvn gatling:test
# Verbose output
mvn gatling:test -X
More Resources
Next Steps
→ Glossary: Glossary - Terminology explained