美文网首页颠覆你的Python实践接口测试Jmeter
jmeter 获取jdbc request 返回的多行数据

jmeter 获取jdbc request 返回的多行数据

作者: 乘风破浪的姐姐 | 来源:发表于2017-10-23 16:06 被阅读47次

    场景:

    jdbc request 查询结果为多行数据。获取这些数据并返回

    1、建立JDBC Connection Configuration 连接

    2、创建jdbc request,查询sql如下:

    SELECT  'VEHICLE_SUB_MODEL_ID='|| '"' ||  t.VEHICLE_SUB_MODEL_ID ||'"'  FROM t_md_vehicle_model t WHERE t.TIMING_ID in (${tidStr})  AND ((t.BEGIN_YEAR <= ${year} and t.END_YEAR is null) or (t.BEGIN_YEAR is null and t.END_YEAR >= ${year}) or (t.BEGIN_YEAR <= ${year} and t.END_YEAR >= ${year}))

    注1:上述sql中,'VEHICLE_SUB_MODEL_ID='|| '"' ||  t.VEHICLE_SUB_MODEL_ID ||'"' ,返回的结果,格式如下:

    jdbc request 1

    注2:如果直接这样:SELECT  t.VEHICLE_SUB_MODEL_ID  FROM t_md_vehicle_model t WHERE t.TIMING_ID in (${tidStr})  ,返回的结果,格式如下:

    jdbc request 2

    3、好了,上面已经得到查询结果,接下来需要将响应的数据中的VEHICLE_SUB_MODEL_ID  提取出来。

    新增正则表达式提取器,设置如下:

    其中引用名称model,后续传参要用到,因为上面的jdbc request响应数据已经被格式化,所以正则表达式直接用 字段名="(.+?)"的格式

    正则表达式1

    如果采用注2中的sql进行查询,正则表达式的格式需要这样:字段名\n([^"]+)

    正则表达式2

    4、上一步将VEHICLE_SUB_MODEL_ID  提取后,察看结果树中 数据的个数为24个

    察看结果树

    通过获取model的个数,分别提取每一个modelId.

    新增一个BeanShell PostProcessor,先获取model的个数,然后通过for循环 ,拼接model_n,加入到list中

    将list转化成字符串,并输出

    BeanShell PostProcessor

    String  model_num =vars.get("model_matchNr");

    int num = Integer.parseInt(model_num);

    log.info("车型ID个数:"+num);

    List list = new ArrayList();

    for(int i=1;i<=num;i++){

    String ss ="model_"+i ;

    String modelId = vars.get(ss);

    //log.info("model is :"+ ss);

    log.info("model is :"+ modelId);

    list.add(modelId);

    }

    log.info("可用的款型个数为:"+list.size());

    StringBuilder csvBuilder = new StringBuilder();

    for(String i:list){

    csvBuilder.append(i);

    csvBuilder.append(",");

    }

    String csv = csvBuilder.toString();    //保存VMI组件结果,供后续比较使用

    csv = csv.substring(0,csv.length()-1);

    vars.put("VMI2Result",csv);

    log.info("可用款型分别为:"+vars.get("VMI2Result")+"\n");

    相关文章

      网友评论

        本文标题:jmeter 获取jdbc request 返回的多行数据

        本文链接:https://www.haomeiwen.com/subject/qbeauxtx.html