Java 使用JMeter测试加载文档功能

Java 使用JMeter测试加载文档功能,java,testing,jmeter,Java,Testing,Jmeter,我正在测试一个具有“加载文档”功能的服务。我需要发送一个独特的文件与每个请求。在HTTP请求采样器配置菜单中,我看到可以随请求一起发送文档。但是,我不知道如何在每个请求中发送不同的文档。有没有办法让JMeter稍微修改一个文档,生成一个指定的文档,或者甚至选择一系列外部生成的文档以提交请求?您可以使用While Controller下的CSV数据集配置以循环方式读取和发送预创建的测试文档名称 这将看起来像: 创建不同测试文档的集合,以便随您的请求一起发送 可选:将创建的文档作为jmeter变量存

我正在测试一个具有“加载文档”功能的服务。我需要发送一个独特的文件与每个请求。在HTTP请求采样器配置菜单中,我看到可以随请求一起发送文档。但是,我不知道如何在每个请求中发送不同的文档。有没有办法让JMeter稍微修改一个文档,生成一个指定的文档,或者甚至选择一系列外部生成的文档以提交请求?

您可以使用While Controller下的CSV数据集配置以循环方式读取和发送预创建的测试文档名称

这将看起来像:

  • 创建不同测试文档的集合,以便随您的请求一起发送
    可选:将创建的文档作为jmeter变量存储到文件夹的路径,以便在脚本中使用
  • 创建测试文档列表
    您可以在BeanShell Sampler中执行此操作,代码如下所示
  • 增加While控制器,循环发送测试文件
    CSV数据集配置为While Controller as child-从列表中读取测试文档名称
  • 详细说明:

    ${uuu javaScript(“${testFile}”!=”,)}
    -读取列表直到文件结束

    生成测试文件列表的BeanShell采样器代码:

    import java.text.*;
    导入java.io.*;
    导入java.util.*;
    字符串[]params=Parameters.split(“,”);
    字符串contentList=params[0];
    字符串testDataDir=params[1];
    File dir=新文件(System.getProperty(“user.dir”)+File.separator+testDataDir);
    BufferedWriter out=null;
    试一试{
    如果(!dir.exists()){
    抛出新异常(“目录”+dir.getName()+“未找到”);
    }
    File contentFile=新文件(System.getProperty(“user.dir”)+File.separator+contentList);
    if(contentFile.exists()){
    contentFile.delete();
    }
    FileWriter fw=新的FileWriter(contentFile,true);
    out=新的缓冲写入程序(fw);
    System.out.println(“\n---------------------------------------------------------------------------------------------------------------”;
    System.out.println(“内容列表:\n”);
    如果((dir.exists())&&&(dir.listFiles()!=null)&&(out!=null)){
    对于(文件f:dir.listFiles()){
    if(contentFile.length()==0){
    out.write(f.getName());
    }否则{
    out.write(“\n”+f.getName());
    }
    out.flush();
    System.out.println(“在“+contentFile.getName()+”中添加了内容“+f.getName()+”);
    }
    }
    System.out.println(“--------------------------------------------------------------------------------------------------\n”);
    }
    捕获(例外情况除外){
    IsSuccess=false;
    log.error(例如getMessage());
    System.err.println(例如getMessage());
    }
    捕获(可丢弃的thex){
    System.err.println(thex.getMessage());
    }
    最后{
    out.close();
    }
    
    您可以使用While Controller下的CSV数据集配置来读取和发送预先创建的测试文档名称

    这将看起来像:

  • 创建不同测试文档的集合,以便随您的请求一起发送
    可选:将创建的文档作为jmeter变量存储到文件夹的路径,以便在脚本中使用
  • 创建测试文档列表
    您可以在BeanShell Sampler中执行此操作,代码如下所示
  • 增加While控制器,循环发送测试文件
    CSV数据集配置为While Controller as child-从列表中读取测试文档名称
  • 详细说明:

    ${uuu javaScript(“${testFile}”!=”,)}
    -读取列表直到文件结束

    生成测试文件列表的BeanShell采样器代码:

    import java.text.*;
    导入java.io.*;
    导入java.util.*;
    字符串[]params=Parameters.split(“,”);
    字符串contentList=params[0];
    字符串testDataDir=params[1];
    File dir=新文件(System.getProperty(“user.dir”)+File.separator+testDataDir);
    BufferedWriter out=null;
    试一试{
    如果(!dir.exists()){
    抛出新异常(“目录”+dir.getName()+“未找到”);
    }
    File contentFile=新文件(System.getProperty(“user.dir”)+File.separator+contentList);
    if(contentFile.exists()){
    contentFile.delete();
    }
    FileWriter fw=新的FileWriter(contentFile,true);
    out=新的缓冲写入程序(fw);
    System.out.println(“\n---------------------------------------------------------------------------------------------------------------”;
    System.out.println(“内容列表:\n”);
    如果((dir.exists())&&&(dir.listFiles()!=null)&&(out!=null)){
    对于(文件f:dir.listFiles()){
    if(contentFile.length()==0){
    out.write(f.getName());
    }否则{
    out.write(“\n”+f.getName());
    }
    out.flush();
    System.out.println(“在“+contentFile.getName()+”中添加了内容“+f.getName()+”);
    }
    }
    System.out.println(“--------------------------------------------------------------------------------------------------\n”);
    }
    捕获(例外情况除外){
    IsSuccess=false;
    log.error(例如getMessage());
    System.err.println(例如getMessage());
    }
    捕获(可丢弃的thex){
    System.err.println(thex.getMessage());
    }
    最后{
    out.close();
    }