前言:beanshell是支持java语法的,因此当一些复杂的数据结构jmeter处理不了的时候,我们可以借助于java来实现
1,使用beanshell处理JDBC请求返回的值
数据库结构
当JDBC的请求如图所示的时,则
col_#=2 (总行数)
col_1=第1列, 第1行
col_2=第1列, 第2行
如果sql语句 变成了SELECT id,name from stu_sex,Variable names被设置成了:col1,col2,那么
col1_#=2 (总行数) col2_#=2 (总行数)
col1_1=第1列, 第1行 col2_1=第2列, 第1行
col1_2=第1列, 第2行 col2_2=第2列, 第2行
取值的方式使用${col1_#},${col1_1}...${col2_2}
当JDBC的请求如图所示的时,则此时返回的是一个List<Map>
这个时候进行数据的处理可以借助于bean shell
//单只取值 System.out.println(vars.getObject("col").get(0).get("列名"));//列名为id的第一行的值 System.out.println(vars.getObject("col").get(1).get("列名"));//列名为id的第一行的值
//对结果进行遍历 //方法1 ArrayList arrayList=vars.getObject("col"); for(HashMap table:arrayList) { for(Object obj:table.keySet()) { System.out.println(obj+"-->"+table.get(obj)); } } //方法2 for(int i=0;i<arrayList.size();i++) { System.out.println(result.get(i).get("列名")); }