如何设置 Gatling 以使用每个虚拟用户的客户端证书?
我正在为受客户端证书保护的 API 准备 Gatling 模拟,目前我只设法为 Gatling 配置中的所有模拟设置了一个客户端证书
ssl {
keyStore {
#type = ""
file = "C:/client_certificates/00001.pfx"
password = "password"
#algorithm = ""
}
}
但是,我想为不同的虚拟用户提供不同的客户端证书(客户端证书可以从可用客户端证书列表中随机选择或循环选择)。 Galing 文档提到 keymanagerfactory和 perUserKeyManagerFactory
函数,但没有明确的示例说明如何使用它。
最佳答案
问题中提供的配置键在 io.gatling.core.ConfigKeys.ssl.keyStore
中引用。 .这些值被读取并传递给 Ssl.newKeyManagerFactory
创建 KeyManagerFactory
.perUserKeyManagerFactory
接受一个函数Long => KeyManagerFactory
构造 KeyManagerFactory
来自虚拟用户的 ID。
知道我们可以写以下内容:
import io.gatling.commons.util.Ssl
...
.perUserKeyManagerFactory { userId =>
val fileName = f"C:/client_certificates/$userId%05d.pfx"
Ssl.newKeyManagerFactory(None, fileName, "password", None)
}
与 the f
interpolator ,我们可以轻松填充userId
用零表示 5 位数字。要循环选择文件,我们可以写
${userId % totalNumber}
而不是 $userId
.
关于ssl - 如何设置 Gatling 以使用每个虚拟用户的客户端证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65086692/