Я рассматриваю возможность перехода на Gatling 2.0.0-M3a, но у меня возникли проблемы с запуском базового теста. Проблема, с которой я столкнулся, заключается в сопоставлении значений с файлом шаблона в Gatling 2. В приведенных ниже примерах показано, как я достиг этого в Gatling 1.5, но я не могу понять это в 2.
LoginScenario.scala — работает в Gatling 1.5
package StressTesting
import com.excilys.ebi.gatling.core.Predef._
import com.excilys.ebi.gatling.http.Predef._
import Headers._
import akka.util.duration._
import bootstrap._
object LoginScenario {
val scn = scenario("Login")
.feed(csv("user_credentials.csv"))
.exec(
http("login")
.post("/api/login")
.fileBody("loginTemplate",
Map(
"userName" -> "${userName}",
"password" -> "${password}"
)
).asJSON
.headers(post_header)
.check(status.is(200)))
}
LoginScenario.scala — ОШИБКИ — переработанная версия с учетом изменений между Gatling 1.5 и 2.
package StressTesting
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import Headers._
import scala.concurrent.duration._
import bootstrap._
import io.gatling.core.session.Expression
object LoginScenario {
val scn = scenario("Login")
.feed(csv("user_credentials.csv"))
.exec(
http("login")
.post("/api/login")
.body(ELFileBody("request-bodies/loginTemplate.ssp",
Map("userName" -> "${userName}","password" -> "${password}"))).asJSON
.headers(post_header)
.check(status.is(200))
)
}
loginTemplate.ssp — шаблон, используемый в обоих примерах.
{
"userName": "<%= userName %>",
"password": "<%= password %>",
"platformCode": "app",
"clientInformation": {
"operatingSystem": "OSX",
"operatingSystemVersion": "10.8",
"browser": "Chrome",
"browserVersion": "31",
}
}