一、前言
在測試接口的時候常常會使用到數據庫中的數據,當要使用大量的數據時,僅僅使用數據庫查詢是不夠的。還需要使用自動化讓操作更簡便。
下面以一個簡單的例子闡述一下如何使用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());
