Jmeter实现筛数

测试一个接口,在本地数据库查出来很多数据,但是只有一部分数据可用。由于这个接口调用很多其他系统的接口(rpc调用),SQL很多用hibernate封装的,导致想查到具体的SQL非常困难,简单的方法就是对原有数据进行筛选,筛出可用的数据进行参数化。

之前使用loadrunner,筛数直接放在end里面,根据返回结果进行判断,成功的打印在本地即可,jmeter原理大体一样,稍麻烦些。

首先,需要写好一个接口并进行参数化。

然后需要写一个正则表达式,用来判断接口是否成功,后面做判断用。缺省值需要写上,后面判断会用。

最后添加一个后置的BeanShell PostProcessor,进行判断。代码如下。基本逻辑是先获取参数化值,然后创建文件,再进行判断,成功的打印到文件里。

import java.io.File; 

import java.io.InputStreamReader; 

import java.io.BufferedReader; 

import java.io.BufferedWriter; 

import java.io.FileInputStream; 

import java.io.FileWriter;

vars.put("levid","${levid}");

vars.put("classid","${classid}");

vars.put("Stuid","${stuid}");

vars.put("year","${year}");

vars.put("term","${term}");

vars.put("grdid","${grdid}");

vars.put("subjid","${subjid}");

//vars.put("Claid","${getClaId}");

String getlevid = vars.get("levid");

String getclassid = vars.get("classid");

String getStuid = vars.get("Stuid");

String getyear = vars.get("year");

String getterm = vars.get("term");

String getgrdid = vars.get("grdid");

String getsubjid = vars.get("subjid");

String getclaId = vars.get("getClaId");

//if(getclaId == "NOT FOUND"){

//  getStuid = "NOT FOUND";

//  }

//log.info("======================"+getStuid);

log.info("**********************11"+getclaId);

try {  

            /* 写入Txt文件 */ 

          

            File file = new File("D://stuId.txt"); // 相对路径,如果没有则要建立一个新的output。txt文件 

            if (!file.exists()) {           //创建新文件

                file.createNewFile();

            }

            FileWriter out = new FileWriter(file,true);

            if (!getclaId.equals("NOTFOUND")){

             //  out.write(getStuid+" ");

             out.write(getlevid+ "," +getclassid + "," +getStuid+ "," + getyear + "," +getterm + "," + getgrdid + "," +getsubjid +" ");

              }

            out.flush(); // 把缓存区内容压入文件 

            out.close(); // 最后记得关闭文件

        } catch (Exception e) { 

            e.printStackTrace(); 

        }

原文地址:https://www.cnblogs.com/huantianxing/p/8491903.html