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

  • 相关阅读:
    卡特兰数列(蒟蒻的学习笔记)
    10月7日 蒟蒻的流水账
    10月6日 蒟蒻的流水账
    10月5日 蒟蒻的流水账
    10月4号 蒟蒻的流水账
    2017 10 14(吐槽初赛)
    2017 10 13
    个人介绍
    luogu P1156 垃圾陷阱
    模板之矩阵快速幂(luogu P3390【模板】矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/sker/p/9806744.html
Copyright © 2020-2023  润新知