1
votes

I have Spring service hosted on Jetty and I want to test that it doesn't allow users to connect with invalid certificates.

scenario("Authenticate using expired client certificate")
   .exec(session => session.setAll(
       Map("gatling.http.ssl.keyStore.file" -> "expiredCertificateKeystore.jks", 
           "gatling.http.ssl.trustStore.file" -> "truststore.jks"))
   .exec(
       http("GET / request")
          .get("/")
          .check(/*that IOException is thrown*/)
)

Since Jetty cuts connection because of expected java.security.cert.CertificateExpiredException while connecting with invalid certificate, Gatling's HTTP client doesn't receive any return code from server and throws java.io.IOException: Remotely closed

Is there any way to tell Gatling that this error is expected and this behavior should be considered as success? I could not find any documentation about such feature.

1

1 Answers

1
votes

No, it's not possible to recover IO exceptions. What you're doing is a functional test, not a load test one, which is fine, but we didn't consider this use case.