我试图在每个线程执行后检查 JDBC 连接状态,无论它是关闭还是打开?。
在我的线程组中有三件事
JDBC连接配置
JDBC 请求(从员工中选择 *)
JSR223 后处理器
剧本:
def connection = org.apache.jmeter.protocol.jdbc.config.DataSourceElement.getConnection('ConnectionString') log.info('*************Connection closed: '+ connection.isClosed())
上面的脚本在循环计数为 1 时记录每个线程执行后的连接状态。一旦我将循环计数更改为 >= 2,就会出现问题。它开始在错误下方抛出错误
JSR223 脚本、JSR223 后处理器中的问题 javax.script.ScriptException: java.sql.SQLException: 无法获取连接,池错误超时等待空闲对象
当我移除后处理器并增加循环计数时,它工作正常。
日志:
2023-02-19 16:15:33,599 信息 o.a.j.t.JMeterThread:线程启动:DB 线程组 2-1
2023-02-19 16:15:38,054 调试 o.a.j.p.j.AbstractJDBCTestElement:执行 jdbc:SELECT * FROM EMPLOYEE
2023-02-19 16:15:38,623 信息 o.a.j.e.J.JSR223 后处理器:***************连接关闭:false
2023-02-19 16:15:58,637 错误 o.a.j.e.JSR223PostProcessor:JSR223 脚本、JSR223 PostProcessor 中的问题 javax.script.ScriptException: java.sql.SQLException: 无法获取连接,池错误超时等待空闲对象,borrowMaxWaitDuration=PT10S 在 org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:320) ~[groovy-jsr223-3.0.11.jar:3.0.11] 在 org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:71) ~