【发布时间】:2022-01-17 03:25:42
【问题描述】:
我需要对 pgbouncer 执行负载测试。在建立与数据库的数据库连接(通过 pgbouncer)之前,所有客户端都会执行 SSH 隧道。是这样的:
sshpass -p 'MY_PSW' ssh -o StrictHostKeyChecking=no -N -L LOCAL_PORT:127.0.0.1:63666 PGBOUNCER_USER@PGBOUNCER_ADDRESS -p PORT >/dev/null 2>&1 &
我的Jmeter项目目前有三个线程组:
-
设置线程组:我在其中连接到不同的数据库以选择随机用户名和架构
-
查询线程组:我在其中使用前一个用户(使用
props.put("schema", vars.get("schema_1"));进入 BeanShell 断言成为属性)和查询执行 JDBC 连接 -
TearDown Thread Group:我在其中关闭了 ssh Tunnel。
现在每次我从 GUI 运行测试时,进入查询线程组的数据选择(JDBC 请求)都会给我一个错误:
Cannot create PoolableConnectionFactory (FATAL: "trust" authentication failed)
之后,如果我再次运行测试,一切正常。我用调试采样器检查了变量和属性的内容,一切都是正确的。
当我在没有 GUI 的情况下运行测试时,主要问题就开始了。它总是因为那个错误而失败。
我实际上不喜欢我必须使用 OS Process Sampler 来建立运行命令的 SSH 隧道,但我找不到任何更好的解决方案。 SSH隧道是测试的一部分,JMeter的主/从配置我不需要它。
非常感谢您提供解决方案或建议以使这项工作正常进行。谢谢。
【问题讨论】:
标签: postgresql jmeter ssh-tunnel pgbouncer