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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM