无法在 scala class 中使用 gatling conf 值。

Cannot use gatling conf values in scala class.

我有一个 gatling 项目,我在其中使用 gatling.conf 为 2 路 ssl 连接设置证书位置。我需要在同一项目的辅助函数中使用这些证书。我无法在我的 scala class 中指定 conf 变量 gatling.http.ssl.trustStore.file 和 gatling.http.ssl.keyStore.file,因为它会出现以下错误。请注意,我可以在我的代码中使用 application.conf 变量而不会出现任何问题

错误代码:

   val trustStoreLoc = config.getString("gatling.http.ssl.trustStore.file")

错误是:

[error] Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'gatling'
[error]         at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124)
[error]         at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:147)
[error]         at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159)
[error]         at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164)
[error]         at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:206)
[error]         at oncue.gatling.authbe.benchmarks.auth.userOpsSimulation.<init>(userOpsSimulation.scala:21)
[error]         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[error]         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[error]         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[error]         at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
[error]         at java.lang.Class.newInstance(Class.java:379)
[error]         at io.gatling.core.runner.Runner.run(Runner.scala:37)
[error]         at io.gatling.app.Gatling.start(Gatling.scala:235)
[error]         at io.gatling.app.Gatling$.fromMap(Gatling.scala:54)
[error]         at io.gatling.app.Gatling$.runGatling(Gatling.scala:79)
[error]         at io.gatling.app.Gatling$.runGatling(Gatling.scala:58)
[error]         at io.gatling.app.Gatling$.main(Gatling.scala:50)
[error]         at io.gatling.app.Gatling.main(Gatling.scala)

Gatling 使用 Typesafe Config 的 withFallback 机制来允许:

  • 系统属性覆盖...
  • ...gatling.conf 值覆盖...
  • ...gatling-defaults.conf

这里实现了这个机制:https://github.com/gatling/gatling/blob/master/gatling-core/src/main/scala/io/gatling/core/config/GatlingConfiguration.scala#L73-77

我的猜测是您只使用 gatling.conf,在这种情况下,如果该行被注释,则该值根本没有定义。

取消注释 gatling.conf 中的 属性 或重新使用 GatlingConfiguration 逻辑以考虑 gatling.conf 值。