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

  • 相关阅读:
    Lua小技巧
    Lua中使用table实现的其它5种数据结构
    Lua 5.3 协程简单示例
    Lua 5.3 迭代器的简单示例
    Lua函数以及闭合函数的理解
    BabeLua常见问题
    Windows下的lua-5.3.4安装过程
    C++ 设计模式 开放封闭原则 简单示例
    UML基础系列:类图
    面向对象程序设计基本概念
  • 原文地址:https://www.cnblogs.com/sker/p/9806744.html
Copyright © 2011-2022 走看看