这是我的问题JMeter 的延续:如何对从数据库表中批量删除数据进行基准测试?. 我采用了 Dimitri T 提出的解决方案,现在我正在使用 Oracle DB 的测试用例。
我的测试用例从插入 1000 个条目开始,在 10 个循环中使用 100 个线程。之后,它会删除 where rownum < 250。
但是,我的测试用例不再能够检测到表是空的。当我在结果树中查看响应数据时,我看到以下内容:
249 updates
249 updates
249 updates
249 updates
4 updates
0 updates
0 updates
0 updates
...
JMeter 本身不会报告发生的任何错误。
我的线程组如下所示:
...(separate thread group to do INSERT)...
Thread Group: Do DELETE
Txn Ctrl: DELETE
While Loop: tbl still has data
JDBC Request: DELETE from tbl
JDBC PostProcessor
循环条件定义如下:
${__jexl3('${count_1} > 0',)}
(与上一个问题中的解决方案略有不同,我将条件用引号括起来,以防止出现模棱两可的表达式错误。)
JDBC请求定义如下:
delete from tbl where (entrydt < ${endDt}) and (rownum < ${deleteLimit})
(用户定义的变量endDt并分别deleteLimit有值TO_DATE('2019/02/01 00:00:00', 'yyyy/mm/dd hh24:mi:ss')和250。)
JDBC后处理器定义如下:
[Select statement] select count(*) from tbl
Variable names: count (All other fields are empty.)
Handle ResultSet: Store as String
我试过了
- 改变循环条件;报价无关紧要;也不会更改
${count_1}为${count} - 更换后处理器;变量名、结果变量名以及结果集的处理方式之间