基于布尔标志执行加特林场景

Execute gatling scenarios based on a boolean flag

Gatling 是否可以根据属性文件中的布尔标志执行场景 application.conf

config {
  isDummyTesting = true,

  Test {
    baseUrl = "testUrl"
    userCount = 1
    testUser {
      CustomerLoginFeeder = "CustomerLogin.getLogin()"
      Navigation = "Navigation.navigation"
    }
  },
  performance {
    baseUrl = "testUrl"
    userCount = 100
    testUser {
      CustomerLoginFeeder = "CustomerLogin.getLogin()"
    }
  }
}

在我的模拟文件中

var flowToTest = ConfigFactory.load().getObject("config.performance.testUser").toConfig
if (ConfigFactory.load().getBoolean("config.isDummyTesting")) {
 var flowToTest = ConfigFactory.load().getObject("config.Test.testUser").toConfig
}

执行流程时,我运行低于代码

场景("Customer Login").exec(flowToTest)

面临错误

ERROR : io.gatling.core.structure.ScenarioBuilder
 cannot be applied to (com.typesafe.config.Config)

我想要如果 flag 为真,它会执行两个场景,另一个场景。

我认为您在尝试必须在配置中定义流而不仅仅是标志时犯了一个错误。然后您可以加载 isDummyTesting 标志的值并将其传递到会话变量中。从那里,您可以使用标准加特林 doIf 构造来包含 Navigation.navigation(如果指定)。

所以在你的模拟文件中,你可以

private val isDummyTesting = java.lang.Boolean.getBoolean("isDummyTesting")

然后在您的场景中

.exec(session => session.set("isDummyTesting", isDummyTesting)) 
...
.exec(CustomerLogin.getLogin())
.doIf("${isDummyTesting}") {
  exec(Navigation.navigation)
}