karate - 空手道加特林:设置本地地址
问题描述
我有用于测试 API 的简单空手道功能文件,我想使用此功能文件进行负载测试。因此我使用 Gatling 来执行空手道功能文件:https ://github.com/intuit/karate/tree/master/karate-gatling
但是,当我启动多个用户时,我想使用我配置的不同 ip 别名提交请求。
使用 Gatling,我可以使用 localAddress 绑定到套接字
val protocol = http.localAddresses(ip)
但在 Karate-Gatling 中,使用的是 karateProtocol
val protocol = karateProtocol()
自述文件指出“Karate 负责发出 HTTP 请求,而 Gatling 只测量时间和管理线程”。
这意味着 HTTP 请求和 localAddress 绑定无法通过 Gatling 更改,但我想知道是否有通过空手道的解决方法,以便可以将不同的 ip 别名用于不同的请求。
解决方案
这听起来像是需要一个功能请求来告诉 HTTP 客户端(例如 Apache)使用本地地址。
如果您可以帮助贡献和测试,那就太好了,设置 localAddress 的一种方法是在此处的代码中:
RequestConfig.Builder configBuilder = RequestConfig.custom()
.setCookieSpec(LenientCookieSpec.KARATE)
.setConnectTimeout(config.getConnectTimeout())
.setSocketTimeout(config.getReadTimeout());
String localIp = "1.2.3.4";
try {
InetAddress localAddress = InetAddress.getByName(localIp);
configBuilder.setLocalAddress(localAddress);
} catch (Exception e) {
context.logger.error("failed to resolve local address: {}", localIp);
}
推荐阅读
- python - 如何从列表中的列表中删除项目?
- javascript - UPNG.js - 我如何处理透明图像?
- python - 为什么 p[:] 在这两种情况下的工作方式不同?
- java - 使用 KeyCloak 的多租户 Quarkus?
- javascript - 将 0 值自动填充到未定义的 xAxes
- c# - 如何在没有身份验证和授权方法的情况下保护公共端点
- powershell - 如何通过 powershell 解析最新的 DNS CName 结果
- sql - 从每个组中获取特定行
- c++ - 终端不断缓冲按下的键
- python - 在python和cpython的上下文中,“.c.src”文件是ac源代码文件吗?如何编译这种文件?