我最近从 Gatting 3.3.1 迁移到 Gatting 3.4.0。 结果,在我的本地机器上一切正常,但在 k8s 中由于以下错误而崩溃:
Couldn't execute warm up request https://gatling.io
java.lang.IllegalArgumentException: TLSv1.3
at sun.security.ssl.ProtocolVersion.valueOf(ProtocolVersion.java:187)
at sun.security.ssl.ProtocolList.convert(ProtocolList.java:84)
at sun.security.ssl.ProtocolList.<init>(ProtocolList.java:52)
at sun.security.ssl.SSLEngineImpl.setEnabledProtocols(SSLEngineImpl.java:2081)
...
我迁移回工作版本。 我从 here 假设 TLSv1.3 默认情况下处于打开状态。 我在 galing-defaults.conf 中搜索了适当的设置,但没有成功。 我在本地和远程 k8s 上都使用 Java 1.8
请帮我解决这个问题! 预先感谢!
为了支持 TLSv3,Gattle 需要:
netty-tcnative
(基本上是BoringSSL)我们可以在日志中看到前者失败了。我们还可以看到
netty_transport_native_epoll_x86_64
无法加载,而 netty_transport_native_epoll_x86
可以。这意味着您正在 32 位 Linux 上运行。 netty-tcnative
/BoringSSL 仅适用于 64 位。
后者失败,正如您所说在 Java 8 上运行。
我们可能可以改进我们这边的东西,但您应该切换到 64 位主机。
否则,您可以在
gatling.conf
中强制执行支持的协议列表,请参阅 https://github.com/gadling/gadling/blob/master/gadling-core/src/main/resources/gadling-defaults.conf# L57
在 gadling.conf 中添加这一行为我解决了这个问题。我正在使用 Ga特林 3.1.0 和 Java 8。
gatling.ssl.useOpenSsl=false