在使用JMeter做上传文件接口自动化过程中,需要将接口自动化任务上传到公司测试服务器执行,因此File Upload面板下的File Path不能直接输入本地电脑的文件路径;尝试在File Path输入相对路径,如../data/file.pdf
执行脚本报错:java.io.FileNotFoundException
网上搜索了一圈相对路径的解决方案,无法解决该问题,最后决定使用绝对路径的方案解决该问题:
1)在文件上传接口请求添加BeanShell PreProcessor;
2)在BeanShell PreProcessor获取脚本的当前路径;
3)获取脚本的上级目录,并设置为变量;
import org.apache.jmeter.services.FileServer;
import java.io.File;
//获取当前脚本执行路径及系统分隔符,此变量解决了跨平台的路径问题
String JmeterPath = FileServer.getFileServer().getBaseDir();
//创建file对象
File file = new File(JmeterPath);
//获取父目录
String strParentDirectory = file.getParent();
vars.put("path",strParentDirectory);
4)组装上传文件的绝对路径。