【发布时间】:2015-03-11 15:22:11
【问题描述】:
我的环境:JMeter v2.11、Oracle 12、JDK 7
系统:8000 XML 提交/小时,写入数据库,然后经过一些内部处理,更新 DB 中的状态值(表示提交/申请已被批准)。我设置了一些 beanshell 采样器来从 csv 文件中获取值以模拟 XML 提交,并且我有 JDBC 请求来检查数据库状态属性何时更新。
JDBC 请求包含在线程末尾的 While 控制器中,因此我的 JDBC 请求一直执行,直到 application.status 列被更新。
我的测试对于单个实例(1 个循环)运行良好,但对于后续循环,JDBC 请求不会执行。也就是说,如果循环计数大于 1,则对于后续的每个循环,都不会执行 JDBC 请求。
我目前的设置:
Thread Group: No. of Users-->1, Loop Count -->3
-CSV Data Config: Recycle on EOF = TRUE, STOP THREAD ON EOF = FALSE
-Beanshell Samplers: (to create and submit the XML, using csv data)
--While Controller: (${__javaScript("${status_1}" != "6")})
---JDBC Request: select status from application where applicationID = (select max(applicationID) from application); VariableName: status
如上所述 - Loop=1 时线程运行良好,但如果设置了 Loop>1,则后续循环不会执行 JDBC 请求,因为它与 While 控制器有关。
我尝试将父简单控制器添加到 While 控制器,我尝试使用多个循环控制器并将父循环控制器设置为 While 控制器,但我没有做任何工作,我只是不知道如何继续。
我已经花了 3 天(真的!3 天!)在网上搜索一种方法来让 While 控制器包含在后续循环中 - 我发现只有 3 个实例在论坛上被问到这个问题可以追溯到 2006 年,但从未真正回答过每个问题。
我什至想到要创建一个循环为 1 的 8000 个线程组!!。这将是一场噩梦,但实际上会完成我需要的工作 - 但显然我会在这里直到明年设置它,我怀疑 JMeter 在尝试执行所有这些线程组时会耗尽资源。
任何人都可以就我的方法的一些替代方案提出建议。我开始相信未包含在后续循环中的 While 控制器是预期的/标准的 JMeter 功能。
也许我可以使用其他一些控制器来做我需要的事情?
与往常一样,我们非常感谢任何帮助、建议、提示和技巧。
【问题讨论】:
标签: loops jdbc while-loop jmeter