Gatling无法访问Maven Central报错,如何禁用版本检查?
问题:Gatling无法访问Maven Central导致TLS错误,需禁用版本检查
我们有一个Scala项目,已集成Gatling进行性能测试,运行仿真时出现如下TLS错误:
org.bouncycastle.tls.TlsFatalAlert: unexpected_message(10); Unsupported UNKNOWN(72) at org.bouncycastle.tls.RecordStream.checkRecordType(RecordStream.java:411) at org.bouncycastle.tls.RecordStream.readRecord(RecordStream.java:219) at org.bouncycastle.tls.TlsProtocol.safeReadRecord(TlsProtocol.java:875) at org.bouncycastle.tls.TlsProtocol.blockForHandshake(TlsProtocol.java:422) at org.bouncycastle.tls.TlsClientProtocol.connect(TlsClientProtocol.java:88) at org.bouncycastle.jsse.provider.ProvSSLSocketDirect.startHandshake(ProvSSLSocketDirect.java:445) at org.bouncycastle.jsse.provider.ProvSSLSocketDirect.startHandshake(ProvSSLSocketDirect.java:426) at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source) at io.gatling.commons.util.LatestGatlingRelease$.$anonfun$fetchLatestReleaseFromMavenCentral$1(GatlingVersion.scala:121) at scala.util.Try$.apply(Try.scala:210) at io.gatling.commons.util.LatestGatlingRelease$.fetchLatestReleaseFromMavenCentral(GatlingVersion.scala:109) at io.gatling.commons.util.LatestGatlingRelease$.load(GatlingVersion.scala:161) at io.gatling.commons.util.GatlingVersion$.LatestRelease$lzycompute(GatlingVersion.scala:42) at io.gatling.commons.util.GatlingVersion$.LatestRelease(GatlingVersion.scala:42) at io.gatling.app.Runner.displayVersionWarning(Runner.scala:110) at io.gatling.app.Runner.run(Runner.scala:48) at io.gatling.app.Gatling$.start(Gatling.scala:89) at io.gatling.app.Gatling$.fromMap(Gatling.scala:43) at com.concur.ngao.stresstest.StressTestApp$.delayedEndpoint$com$concur$ngao$stresstest$StressTestApp$1(StressTestApp.scala:23) at com.concur.ngao.stresstest.StressTestApp$delayedInit$body.apply(StressTestApp.scala:8) at scala.Function0.apply$mcV$sp(Function0.scala:39) at scala.Function0.apply$mcV$sp$(Function0.scala:39) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17) at scala.App.$anonfun$main$1(App.scala:73) at scala.App.$anonfun$main$1$adapted(App.scala:73) at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553) at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551) at scala.collection.AbstractIterable.foreach(Iterable.scala:921) at scala.App.main(App.scala:73) at scala.App.main$(App.scala:71) at com.concur.ngao.stresstest.StressTestApp$.main(StressTestApp.scala:8) at com.concur.ngao.stresstest.StressTestApp.main(StressTestApp.scala)
由于项目环境无法访问Maven Central,希望禁用Gatling运行时自动检查最新版本的功能,当前使用Gatling 3.9.3、Scala 2.13.1,求具体操作指引。
解决方案
针对Gatling 3.9.3版本,有三种方式可以禁用版本检查:
1. 通过JVM系统属性配置
在启动测试时添加系统参数:
-Dgatling.disableVersionCheck=true
如果用sbt运行,可在命令行执行:
sbt -Dgatling.disableVersionCheck=true gatling:test
也可以在build.sbt中全局配置:
javaOptions in Gatling += "-Dgatling.disableVersionCheck=true"
2. 通过Gatling配置文件设置
在项目src/test/resources/下新建或修改gatling.conf,添加以下内容:
gatling { core { disableVersionCheck = true } }
3. 在自定义启动代码中设置
如果项目用自定义类启动Gatling(如示例中的StressTestApp),可在启动前设置系统属性:
import io.gatling.app.Gatling object StressTestApp extends App { System.setProperty("gatling.disableVersionCheck", "true") Gatling.fromMap(Map("simulationClass" -> "your.simulation.class.path")) }
内容的提问来源于stack exchange,提问作者Mans
相关产品推荐
相关产品推荐

