使用Jmeter的java.io.FileNotFoundException - 使用beanshell预处理器

时间:2015-02-24 04:06:06

标签: file-io jmeter beanshell

我遇到Jmeter问题,使用BeanShell PreProcessor对输入文件进行编码,然后将编码文件包含在“请求发送文件”中。

Jmeter设置


  • HTTP请求(发送带有请求的文件 - $ {file1})
    • BeanShell PreProcessor

BeanShell PreProcessor

import org.apache.commons.io.FileUtils;
import org.apache.commons.codec.binary.Base64;
String file1 = FileUtils.readFileToString(new File("D:/File/test.txt"),"UTF-8");
vars.put("file1",new String(Base64.encodeBase64(file.getBytes("UTF-8"))));

错误消息

java.io.FileNotFoundException: ${file1} (The system cannot find the file specified)

1 个答案:

答案 0 :(得分:1)

如果您尝试执行以下操作:

  1. 将文件读入字符串
  2. 将内容编码为Base64
  3. 将编码内容保存到其他文件
  4. 将新文件路径保存到JMeter变量
  5. 您的Beanshell代码应如下所示:

    String file1 = FileUtils.readFileToString(new File("D:/File/test.txt"), "UTF-8");
    FileUtils.write(new File("D:/File/testbase64.txt"),new String(Base64.encodeBase64(file1.getBytes("UTF-8"))));
    vars.put("file1","D:/File/testbase64.txt");
    

    您的代码段是

    1. 尝试将编码文件内容放入file JMeter变量
    2. 最后一行file.getBytes()中的拼写错误应更改为file1.getBytes()
    3. 有关Apache JMeter中bsh脚本的更多信息,请参阅How to use BeanShell: JMeter's favorite built-in component指南。