自动化运行JMeter下的所有脚本

自动化计算jmeter下的所有脚本

package com.utils;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class FIleNumber {
    public static List fileNumber() {
        //创建文件目录
        File file = new File("./scprit");
        List list = new ArrayList();
        //调用方法打印所有的Java文件名
        printFileName(file, list);
        return list;
    }

    //定义方法打印给定目录下的所有的Java文件,参数为文件的目录,返回值为空
    public static void printFileName(File file, List list) {
        if (file.isDirectory() && file.exists()) {//参数file是目录并且存在
            //生成File数组
            File[] fileList = file.listFiles();


            //遍历集合
            for (File f : fileList) {
                if (f.isDirectory()) {//次元素是目录
                    printFileName(f, list);//递归调用
                } else {
                    if (f.getName().endsWith(".jmx")) {//如果是以.jmx结尾
//                            System.out.println(f.getName());//打印该文件的名字
                        StringBuffer a = new StringBuffer(f.getName());
                        a.delete(a.length() - 4, a.length());
                        list.add(a);


                    }
                }
            }
        } else {
            System.out.println("未找到scprit文件夹");
        }
    }

    //    删除文件夹,和文件夹中的所有文件
    public static void deleteFolder(File folder) throws IOException, InterruptedException {
        File[] files = folder.listFiles();
        if (files != null) {
            for (File f : files) {
                if (f.isDirectory()) {
                    deleteFolder(f);
                } else {
                    f.delete();
                }
            }
        }
        folder.delete();
    }


}

自动化启动JMeter进行运行脚本

package com.utils;


import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;



public class Command {


    public static void exeCmd(String commandStr) throws IOException {


        System.out.println("JMeter开始执行脚本:");


        System.out.println(commandStr);

        BufferedReader br = null;
        try {
            Process p = Runtime.getRuntime().exec(commandStr);
            br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line = null;
            StringBuilder sb = new StringBuilder();
            while ((line = br.readLine()) != null) {
                sb.append(line + "\n");
            }
            System.out.println(sb.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally
        {
            if (br != null)
            {
                try {
                    br.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }




    public static void main(String[] args) throws IOException, InterruptedException {

        File f1 = new File("./jtl");
        if (f1.exists()) {
            FIleNumber.deleteFolder(f1);
            f1.mkdirs();

        } else {
            f1.mkdirs();
        }


        File file = new File("./report");

        if (file.exists()) {
            FIleNumber.deleteFolder(file);
            file.mkdirs();

        } else {

            file.mkdirs();

        }

        long startTime = System.currentTimeMillis();
        List list = FIleNumber.fileNumber();
        String jmx = null;
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        System.out.println("--------------------------------------------------------");
        System.out.println("JMeter开始运行时间是:" + simpleDateFormat.format(date));


        System.out.println("                                                ");
        System.out.println("JMeter本次一共需要执行" + list.size() + "个脚本:");
        for (int i = 0; i < list.size(); i++) {
            jmx = list.get(i).toString();
            for (int j = 1; j < 5; j++) {

            }
//            jmeter -JthreadCount=2 -Jcycle=200  jmeter执行的线程数 ,jmeter执行的循环数
            String commandStr = "jmeter.bat -n -t ./scprit/" +jmx+".jmx"
                    + " -l ./jtl/" +jmx+ ".jtl"
                    + " -e -o ./report/" + jmx;
            System.out.println("第" + (i + 1) + "次开始运行:");
            Command.exeCmd(commandStr);

            long wait = 120000;
            System.out.println("休息" + (wait / 1000) + "秒!");
            Thread.sleep(wait);

        }


        Date date1 = new Date();
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        System.out.println("JMeter运行结束时间是:" + simpleDateFormat1.format(date1));
        long endTime = System.currentTimeMillis();

        System.out.println("一共运行了" + (endTime - startTime) / 1000 + "s");


    }
}

 

posted @ 2019-07-24 14:17  快乐小王子帅气哥哥  阅读(3)  评论(0编辑  收藏  举报  来源

Loading