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

当JDBC请求没有从Jmeter中的DB返回任何数据时,如何记录错误?,jdbc,jmeter,beanshell,Jdbc,Jmeter,Beanshell,我需要知道当JDBC请求没有从Jmeter中的DB返回任何数据时,如何记录错误 我有: JDBC请求 查询: SELECT names FROM customers 变量名: 命名客户 然后我得到了一个带有脚本的BeanShell后处理器: 最后是一个名为set variables的简单控制器,它使用以下代码调用外部文件: vars.putnamesCustomer、JMeterUtils.getPropertynamesCustomer 问题是,在另一个SOAP请求中,我使用了变量n

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

我有:

JDBC请求

查询:

SELECT names 
FROM   customers 
变量名: 命名客户

然后我得到了一个带有脚本的BeanShell后处理器:

最后是一个名为set variables的简单控制器,它使用以下代码调用外部文件: vars.putnamesCustomer、JMeterUtils.getPropertynamesCustomer

问题是,在另一个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请求没有返回任何数据时,如何记录错误,您有什么想法吗?

可以简单一点。若并没有设置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方法

有关ApacheJMeter中的Beanshell脚本和一种Beanshell食谱的更多详细信息,请参阅指南

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

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