在测试接口的时候经常会使用到数据库中的数据,当要使用大量的数据时,仅仅使用数据库查询是不够的。还须要使用自动化让操做更简便。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());