【发布时间】:2016-07-10 00:17:25
【问题描述】:
在 JMeter (v2.13 r1665067) 中,我使用 tearDown 线程组来删除测试运行后剩余的所有剩余记录。
我不太明白的奇怪的事情:
-
当线程组被单独执行(即单独执行)时,我可以看到数据库中剩余的记录被删除了。
当线程组作为完整运行(即完整的端到端测试计划)的一部分运行时,剩余记录为未从数据库中删除。
查看 SQL Profiler,它“似乎”发送了 DELETE,但记录仍保留在数据库中。可能是我的恒定吞吐量设置或其他时间?任何人都可以解释为什么这只会在完整运行期间发生?
在测试计划中,在关闭主线程后运行拆解线程组已启用。
这是我的拆解线程组中的内容:
JDBC 连接配置
Variable Name = myPool
Connection Pool Config
Max # of Connections = 10
Pool Timeout = 5000
Idle Cleanup Interval (ms) = 60000
Auto Commit = True
Transaction Isolation = TRANSACTION_SERIALIZEABLE
Connection Validation by Pool
Keep-Alive = True
Max Connections Age = 5000
Validation Query = null
JDBC 请求 1
Variable Name = myPool
Query Type = Prepared Update Statement
DELETE FROM Foo
WHERE Foo.QualifierObjId IN
(SELECT Bar.ObjId FROM Bar WHERE Bar.DsplyName like '%myTest%');
JDBC 请求 2
Variable Name = myPool
Query Type = Prepared Update Statement
DELETE FROM Bar WHERE Bar.DsplyName like '%myTest%';
JDBC 请求 3
Variable Name = myPool
Query Type = Prepared Update Statement
DELETE FROM Master WHERE Master.DsplyName like '%myTest%';
【问题讨论】:
-
请说明您使用的 JMeter 版本。是最新的吗?
-
JMeter 版本 2.13 r1665067。
-
可能与“变量名称 = myPool”有关...不确定您在哪里使用变量名称?可能会因为抑制某些删除调用而导致其获取同步问题?
-
是的!就是这样......这个线程组的 myPool 和以前的线程组的 myPool 混淆了。
-
@user1697575 你太棒了!
标签: jmeter