Gatling 在配置文件中配置 base url

Gatling configure base url in configuration file

我想在配置文件中配置我的 gatling 模拟的基础 url。这样我就可以轻松地在测试和实时系统之间切换。

当我在 simulation-scala 文件中配置它时,我工作正常:

val httpConf = http
        .baseURL("http://computer-database.herokuapp.com")

如果我删除上面的行并在配置 (gatling.conf) 文件中配置它:

gatling {
   http {
     baseUrls = "http://localhost8080/baserate"
     ...

我收到以下错误并且我的方案不起作用,因为基础 url 是空的。

09:57:26.352 [ERROR] i.g.c.c.GatlingConfiguration$ - Your gatling.conf file is outdated, some properties have been renamed or removed.
Please update (check gatling.conf in Gatling bundle, or gatling-defaults.conf in gatling-core jar).
Enabled obsolete properties:'gatling.http.baseUrls' was removed, use HttpProtocol.

在当前版本的 gatling 中是否仍然可以在

之外配置基础 url

我的版本是gatling-maven-plugin:2.1.2.

您可以通过各种方式(系统属性、环境变量、自定义配置文件...)自行配置它,但这不再是内置的 Gatling。

我通过在 /test/resources/ 中创建一个 application.properties 文件解决了这个问题

baseUrl=http://www.example.com

我这样改变了我的模拟:

import com.typesafe.config._
class BasicSimulation extends Simulation {
   val conf = ConfigFactory.load()
   val baseUrl = conf.getString("baseUrl")
   val httpConf = http.baseURL(baseUrl)

您还可以创建一个 单例对象 并在任何加特林模拟中公开它 class。

在 Configuration.scala 中想象一个名为 Configuration 的单例对象,就像这样:

object Configuration {
  val BaseUrl = "http://www.dummyurl.com"
}

这应该会减少模拟中的代码class

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class MySimulation extends Simulation {

  val HttpConf = http
    .baseURL(Configuration.BaseUrl)

  ...
}

如果需要,只需解析包定义和导入,

注意:由于val表示不可变属性我们应该用第一个大写字母命名