当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请求未返回数据时记录错误的任何想法?
答案 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指南。