zoukankan      html  css  js  c++  java
  • 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(); 

            }

  • 相关阅读:
    VB.NET程序设计笔记
    ASP.NET动态的网页增删查改
    一般处理程序加简单三层实现增删查改(2)
    一般处理程序加简单三层实现增删查改(1)
    设计模式六大原则(1):单一职责原则
    Android Https相关完全解析 当OkHttp遇到Https
    Androrid应用打包release版时关闭log日志输出
    Fragment结合ViewPager之懒加载
    多线程基础
    Android Studio wifi调试
  • 原文地址:https://www.cnblogs.com/huantianxing/p/8491903.html
Copyright © 2011-2022 走看看