jmeter将参数值写入到指定文件

时间:2023-03-09 08:31:47
jmeter将参数值写入到指定文件

有时在测试过程中需要将测试过程中生成的参数保存下来,jmeter并没有此类功能,此时,可以 通过beanshell编写代码来实现

思路: 每次请求响应返回后,通过正则表达式获取到需要保存的值,通过Bean shell调用已经写好的Java代码,将值写入指定的文件中

1、编写java类AppendFile

 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;

 public class AppendFile {
 //将content写入到指定文件fileName中
     public static void appendFile(String fileName, String content) throws IOException{
         FileWriter writer = null;
         try {
             writer = new FileWriter(fileName, true);
             content = content + ",";
             writer.write(content);
             } catch(IOException e){
                 e.printStackTrace();
                 }finally{
                     if (writer != null){
                         writer.close();
                         }
                     }

        }
     //fileName中的内容清空
     public static void clearFile(String fileName) throws IOException{
         FileWriter writer = null;
         try{
             writer = new FileWriter(fileName);
             writer.write("");
             } catch(IOException e){
                 e.printStackTrace();
                 }finally{
                     if (writer != null){
                         writer.close();
                         }
                 }
     }
 }

2、将代码打成jar包放在jmeter的lib/ext目录下

 javac AppendFile.java                      #编译生成AppendFile.class文件
 jar cvf AppendFile.jar  AppendFile.class   #生成AppendFile.jar包

3、创建一个BeanShell PostProcessor处理器

 import writeFile.*;
 System.out.println("******写入文件*************");
 String filePath = "d://liu-ke-test.txt";
 String content = vars.get("username");   //此处的username就是从sample中获取的变量名,根据实际情况修改。
 AppendFile.appendFile(filePath,content);

  顺便也解决了跨线程组传值的问题~~~