在測試接口的時候經常會使用到數據庫中的數據,當要使用大量的數據時,僅僅使用數據庫查詢是不夠的。還須要使用自動化讓操做更簡便。shell
下面以一個簡單的例子闡述一下如何使用beanShell讓代碼更簡便。就不說一些基礎的操做了。數據庫
已經建立好了線程、鏈接數據庫、使用數據庫中的數據、http請求也是能夠成功的。json
一個簡單的小例子測試
JDBC查詢:優化
requestBody:spa
{ sqr:${sqr_1}, //申請人 sqrbm:${sqbm_1}, //申請人部門 sqrdw:${sqdw_1}, //申請人單位 callback:"${callback_1}", //回調地址 qzsqbh:["${qzsqbh_1}"] //申請編號 }
一、JDBC中填寫Result Variable names (這個是整個查詢結果,Variable name 是針對每一列的查詢結果)爲dbInfo線程
二、在JDBC Request中添加一個Beanshell PostProcessorcode
三、在測試計劃中添加有關json的jar包,由於在shell腳本中會使用到json對象
四、先定義一個對象存儲獲得的數據,是一個list中包含map的對象。定義一個空的json對象 requestBodyblog
var dbInfo = vars.getObject("dbInfo");
JSONObject requestBody = new JSONObject();
五、循環獲取每行的數據、並將數據存儲在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"); }
六、將拼接好的json對象轉爲string,直接傳入http request中能夠了
vars.put("requestBody",requestBody.toString());