前言

本人在学习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());

 

本人首次发布博客,如有问题,还请多多指教!