前言
本人在学习jmeter中因JDBC请求、前置处理器和后置处理器的查询结果引用问题困扰了很久,以此记录解决方法。
JDBC查询结果引用值来自:
1)Variable Names:以逗号分隔的变量名列表,用于保存Select语句、准备好的Select语句或CallableStatement返回的值;
2)Result Variable Name:创建一个包含行映射列表的对象变量。每个映射包含列名作为键,列数据作为值。
示例详解
1、引用Variable Names值介绍
以JDBC Request为例:
查询结果如下:
引用方法:
String cplyno_act = vars.get("cplyno_1");
String nprm_act = vars.get("nprm_1");
String namt_act = vars.get("namt_1");
log.info("第一行:变量一:"+cplyno_act+";变量二:"+nprm_act+";变量三:"+namt_act);
String cplyno_act = vars.get("cplyno_2");
String nprm_act = vars.get("nprm_2");
String namt_act = vars.get("namt_2");
log.info("第二行:变量一:"+cplyno_act+";变量二:"+nprm_act+";变量三:"+namt_act);
如果查询结果有多行, 可用函数助手中__V函数帮忙:
log.info("变量一:${__V(cplyno_${num})};变量二:${__V(nprm_${num})};变量三:${__V(namt_${num})}");
2、引用Result Variable Name值介绍
引用该值语法如下:
columnValue = vars.getObject("resultObject").get(0).get("Column Name");
- vars.getObject(“resultObject”):代表从哪个结果集中取数据
- get(0):取第几行
- get(“ColumnName”):取哪一列,录入列名,注意大小写
- columnValue:返回的是Object类型
示例如下:
查询结果:
引用方法:
Object columnValueResult0 = vars.getObject("result1").get(0).get("C_PLY_NO"); Object columnValueResult1 = vars.getObject("result1").get(1).get("C_PLY_NO"); log.info("参数一:"+columnValueResult0.toString()+";参数二:"+columnValueResult1.toString());
本人首次发布博客,如有问题,还请多多指教!