自动化运行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");
}
}
本文来自博客园,作者:快乐小王子帅气哥哥,转载请注明原文链接:https://www.cnblogs.com/alex-oos/p/17779495.html