我正在考虑迁移到 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",
  }
}

最佳答案

我们在 Gatling 2 中放弃了 Scalate,因为它真的很麻烦。

请查看我们的 wiki 以了解新语法:https://github.com/excilys/gatling/wiki/Gatling-2#wiki-bodies

基本上,您可以在模板中编写常规 Gatling EL,并且不再需要显式传递参数:

.body(ELFileBody("request-bodies/loginTemplate.txt"))

登录模板.txt:
{
  "userName": "${userName}",
  "password": "${password}",
  "platformCode": "app",
  "clientInformation": {
    "operatingSystem": "OSX",
    "operatingSystemVersion": "10.8",
    "browser": "Chrome",
    "browserVersion": "31",
  }
}

关于scala - Gatling 2 - 将值映射到模板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21143077/

10-16 16:26