Skip to content

Instantly share code, notes, and snippets.

@storenth
Forked from alanphil/login_test.scala
Created July 31, 2019 06:37
Show Gist options
  • Save storenth/f78c57401a77bf6cbc9d7fb58200d5af to your computer and use it in GitHub Desktop.
Save storenth/f78c57401a77bf6cbc9d7fb58200d5af to your computer and use it in GitHub Desktop.
Gatling login example and showing how to pull out the HTTP authorization header into a variable
package test
import scala.concurrent.duration._
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.jdbc.Predef._
class LoginTest extends Simulation {
val sessionHeaders = Map("Authorization" -> "Bearer ${authToken}",
"Content-Type" -> "application/json")
val httpProtocol = http
.baseURL("http://xx.xx.xx.xx:3000")
val scn = scenario("login_test")
// LogIn
.exec(http("login")
.post("/api/login")
.formParam("organization_id", "4666")
.formParam("email", "jdoe@example.com")
.formParam("password", "put_password_here")
.check(jsonPath("$..token").exists.saveAs("authToken"))
)
.exec(http("get_alerts")
.get("/api/alerts")
.headers(sessionHeaders)
)
.exec(http("create_widget")
.post("/api/widgets")
.headers(sessionHeaders)
.body(StringBody("""{"description":"This is just a sample description.","name":"Junk"}"""))
.check(jsonPath("$..id").exists.saveAs("newWidgetId"))
)
setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment