代码之家  ›  专栏  ›  技术社区  ›  hauron

门控-更改每个请求在提要中使用的SSL证书?

  •  3
  • hauron  · 技术社区  · 10 年前

    加特林是否可以为每个请求使用具有不同证书的送料器?

    考虑测试:

    • 对于多个用户,每个用户都具有用于HTTPS连接的个人唯一证书,
    • 对于每个用户,使用该用户的证书发送请求。

    实施示例:

    val feeder = Array(
      Map("data" -> data(user1_data),
        "gatling.http.ssl.trustStore.file" -> "/tmp/test-data/rb.jks",
        "gatling.http.ssl.trustStore.password" -> "password",
        "gatling.http.ssl.keyStore.file" -> "/tmp/test-data/user1.jks",
        "gatling.http.ssl.keyStore.password" -> "password"),
    
      Map("data" -> data(user2_data),
        "gatling.http.ssl.trustStore.file" -> "/tmp/test-data/rb.jks",
        "gatling.http.ssl.trustStore.password" -> "password",
        "gatling.http.ssl.keyStore.file" -> "/tmp/test-data/user2.jks",
        "gatling.http.ssl.keyStore.password" -> "password")
    )
    ...
    val scn = scenario.exec(reportableTest(
      repeat(feeder.length) {
        feed(feeder)
        .exec(http("test user personal data")
        .post(user_url)
        .headers(user_headers)
        .body(StringBody("${data}")).asJSON
        .check(
          status.is(201),
          header("Content-type").is("application/json"),
        )
    }))
    

    我确实在场景设置中调用了:.disableClientSharing。

    奇怪的行为是,似乎只有第一个

    "gatling.http.ssl.keyStore.file" -> "/tmp/test-data/user1.jks",
    

    被处理。下一个不是(即使我创建了另一个reportableTest)。我只是简单地改变了顺序,看看实际上在两个请求中都使用了第一个“userX.jks”。

    这是正常行为吗? 这是一个bug吗?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Stephane Landelle    10 年前

    在Gatling的Google Group上回答:SSL配置可以按虚拟用户设置,而不是按请求设置。