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());

  • 相关阅读:
    OpenStack(M版)之基础环境配置(2 更换源、安装OpenStack客户端)
    OpenStack(M版)之基础环境配置(1静态ip、网络接口)
    Java关于print、println、printf的区别
    输出1-n的全排列dfs
    统计难题
    单词数
    减肥计划
    Zero Array---思维题
    快速幂+快速乘
    线段树求逆序对
  • 原文地址:https://www.cnblogs.com/sker/p/9806744.html
Copyright © 2011-2022 走看看