如何设置 Gatling 以使用每个虚拟用户的客户端证书?
How to setup Gatling to use client certificates per virtual user?
如何设置 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
,它根据虚拟用户的 ID 构造 KeyManagerFactory
。
知道了我们可以这样写:
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 位数字。
循环到select文件,我们可以写${userId % totalNumber}
而不是$userId
。
如何设置 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
,它根据虚拟用户的 ID 构造 KeyManagerFactory
。
知道了我们可以这样写:
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 位数字。
循环到select文件,我们可以写${userId % totalNumber}
而不是$userId
。