zoukankan      html  css  js  c++  java
  • Jmeter BeanShell 从数据库中获取数据并创建一个requesBody

    一、前言

      在测试接口的时候常常会使用到数据库中的数据,当要使用大量的数据时,仅仅使用数据库查询是不够的。还需要使用自动化让操作更简便。

      下面以一个简单的例子阐述一下如何使用beanShell让代码更简便。就不说一些基础的操作了。

    二、前提准备

      已经创建好了线程、连接数据库、使用数据库中的数据、http请求也是可以成功的。

      一个简单的小例子

      JDBC查询:

      requestBody:

    {
        sqr:${sqr_1},    //申请人
        sqrbm:${sqbm_1},  //申请人部门
        sqrdw:${sqdw_1},  //申请人单位
        callback:"${callback_1}",   //回调地址
        qzsqbh:["${qzsqbh_1}"] //申请编号
    }

     三、优化

    1、JDBC中填写Result Variable names (这个是整个查询结果,Variable name 是针对每一列的查询结果)为dbInfo

    2、在JDBC Request中添加一个Beanshell PostProcessor

    3、在测试计划中添加有关json的jar包,因为在shell脚本中会使用到json

    4、先定义一个对象存储得到的数据,是一个list中包含map的对象。定义一个空的json对象 requestBody

    var dbInfo = vars.getObject("dbInfo");

    JSONObject requestBody = new JSONObject();

    5、循环获取每行的数据、并将数据存储在json中

    for(var obj : dbInfo) {
        int sqr = Integer.parseInt(obj.get("c_sqr"));
        int sqrbm = Integer.parseInt(obj.get("c_sqbm"));
        int sqrdw = Integer.parseInt(obj.get("c_sqdw"));
        String callback = obj.get("c_callback");
        
        requestBody.put("sqr",sqr);        
        requestBody.put("sqrbm",sqrbm);    
        requestBody.put("sqrdw",sqrdw);    
        requestBody.put("callback",callback);    
        requestBody.put("qzsqbh","XCVBNMDFDEDSSSSFRRFDGDFGFD122EDFD45454");    
    }

    6、将拼接好的json对象转为string,直接传入http request中可以了

    vars.put("requestBody",requestBody.toString());

  • 相关阅读:
    细看运维85条军规,是否触动了你内心深处那根弦?
    SQL语句的CRUD
    sqlserver数据库类型对应Java中的数据类型
    Struts2文件上传--多文件上传(插件uploadify)
    web.xml文件详解
    关于Java的散列桶, 以及附上一个案例-重写map集合
    hibernate多表查询封装实体
    spring的7个模块
    Struts标签库详解【3】
    Struts标签库详解【2】
  • 原文地址:https://www.cnblogs.com/sker/p/9806744.html
Copyright © 2011-2022 走看看