jmeter在本地生成大量token,第二次执行时,删除之前生成的token
思路:
1,创建二个线程组,第一个线程组只执行一次,用来清空本地的一个文件
2,第二线程运行100次,每次生成一条token,存在本地,这样就会生成100条token
下次执行时,会执行第一个线程组,会把100条数据清空
代码如下:
import org.json.*;
import java.util.Arrays;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.*;
/**执行一次sampler就会在本地删除一个文件*/
String path = "C:\\jmeterFile\\tokenFile\\token.txt" ;
//定义本地一个绝对路径的目录
/**写一个清空本地绝对路径的一个方法*/
public static void clearInfoForFile(String path) {
File file =new File(path);
try {
if(!file.exists()) {
file.createNewFile();
}
FileWriter fileWriter =new FileWriter(file);
fileWriter.write("");
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
clearInfoForFile(path);
//调这个方法
生成本地token的代码:
import org.json.*;
import java.util.Arrays;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
String data_errmsg = vars.get("p_errmsg");
String data_token = vars.get("token");
String data_success = vars.get("p_success");
log.info("-----data_errmsg---------: " + data_errmsg);
log.info("-------data_token-------: " + data_token);
log.info("--------data_success------: " + data_success);
String response_data = SampleResult.getResponseDataAsString();
String request_data = prev.getQueryString();
// log.info("-----response_data--------响应:"+ response_data);
// log.info("--------request_data------请求:"+ request_data);
JSONObject responseJson = new JSONObject(response_data);
//将String类型的返回值构造成JSONObject对象,才可使用Java对象的方法对其进行操作;
String StrData = responseJson.get("content").toString();
// String stringToken = responseJson.getString("access_token");
log.info("--------------StrData:"+ StrData);
JSONObject responseJson1 = new JSONObject(StrData);
String StrToken =responseJson1.get("access_token").toString();
log.info("--------------StrToken:"+ StrToken);
/**先清除之前生成的token*/
//
//String path = "C:\\jmeterFile\\tokenFile" ;
// File file = new File(path);
// if (!file.exists()) {
// System.out.println("目录不存在" + "the dir is not exists !");
// return false;
// }
// String[] content = file.list();//取得当前目录下所有文件和文件夹
// for (String name : content) {
// File temp = new File(path, name);
//
// if (temp.isDirectory()) {
// //判断是否是目录
// temp.delete();
// //删除空目录
// } else {
// if (!temp.delete()) {
// //直接删除文件
// System.err.println("Failed to delete " + name);
// }
//
//
// }
//return true;
/**重新创建一个文件*/
/***
把得到的StrToken,放到本地的一个文件里面
**/
FileWriter fs = new FileWriter("C:\\jmeterFile\\tokenFile\\token.txt",true);
BufferedWriter out = new BufferedWriter(fs);
out.write(StrToken+"\n");
fs.flush();
out.close();
fs.close();
//判断,请求是否成功
if(!data_success.equals("true") ) {
Failure = true;
FailureMessage = "事物失败:打印请求和响应的值"+ "请求的值:"+request_data+"响应的值:"+response_data;
}else{
FailureMessage = "事务成功";
}