如何在jsr223预处理器中使用jdbc预处理器的变量名?

问题描述

  1. 在 jdbc 预处理器上设置变量名。
    variable names : aa,bb
  1. 执行查询
    select aa,bb from table; 
  1. 尝试在 jsr223 预处理器上获取变量名称
   log.info(vars.get("aa"));

但是这个通过 aa 是空的

如何使用变量名?

解决方法

查看 JDBC Request 采样器文档:

如果提供了变量名列表,那么对于 Select 语句返回的每一行,变量都设置为对应列的值(如果提供了变量名),并且还设置了行数向上。比如Select语句返回2行3列,变量列表为A,C,则设置如下变量:

A_#=2 (number of rows)
A_1=column 1,row 1
A_2=column 1,row 2
C_#=2 (number of rows)
C_1=column 3,row 1
C_2=column 3,row 2

那就是:

  • vars.get('aa_1') - aa 列的第一行
  • vars.get('aa_2') - aa 列的第二行
  • vars.get('bb_1') - bb 列的第一行

更多信息:Debugging JDBC Sampler Results in JMeter