当JDBC请求在Jmeter中没有从DB返回数据时如何记录错误?

时间:2014-07-10 17:04:21

标签: jdbc jmeter beanshell

当JDBC请求在Jmeter中没有从DB返回数据时,我需要知道如何记录错误。

我有:

JDBC请求

查询:

SELECT names 
FROM   customers 

变量名称: namesCustomers

然后我有一个带脚本的BeanShell postProcessor:

import org.apache.jmeter.util.JMeterUtils;
JMeterUtils.setProperty("namesCustomer", vars.get("namesCustomer_1"));

最后一个简单的控制器叫做#34;设置变量"使用以下代码调用外部文件: vars.put(" namesCustomer",JMeterUtils.getProperty(" namesCustomer&#34));

问题是在另一个SOAP请求中我使用变量namesCustomer_1,如果没有从DB返回数据,则此请求失败。当JDBC没有返回任何数据时,我需要记录一个错误。

如果我添加到后处理器:

log.error("错误示例");

我在运行此请求时看到jmeter.log中记录的错误。我需要这样的东西:

if(JMeterUtils.setProperty("namesCustomer", vars.get("namesCustomer_1")).toString().length()==0){
log.error("DB returned no results")
}

有关如何在JDBC请求未返回数据时记录错误的任何想法?

1 个答案:

答案 0 :(得分:0)

可以做得更轻松一些。如果未设置JMeter变量,则它将为null,而不是空字符串。

所以我建议修改你的代码如下:

String namesCustomer = vars.get("namesCustomer_1");

if (namesCustomer == null) {
    log.error("namesCustomer_1 variable is not set");
} else {
    props.put("namesCustomer", namesCustomer);
}

props是访问当前JMeter属性集的简写,不需要使用JMeterUtils.setProperty()方法。

有关Apache JMeter中的Beanshell脚本和一种Beanshell食谱的更多详细信息,请参阅How to use BeanShell: JMeter's favorite built-in component指南。