问题描述
我添加了 JSR223 预处理器以指向需要由 http 请求选择的文件。当我循环运行请求时,它每次都需要选择不同的文件,因此文件位置有点复杂。所以,我尝试了以下内容: filePath in JSR223
但是,这会引发错误。我应该使用两个反斜杠吗?这也会引发错误。
${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}\FiletoUpload\
但是,我需要在每个线程上访问不同的文件夹,因此通过 JSR223 脚本获取文件的方法很复杂。有没有更简单的方法?
解决方法
-
首先starting from JMeter 3.1 you're supposed to be using JSR223 Test Elements和Groovy language所以考虑迁移到__groovy() function
-
其次,您需要使用三重斜线,因为您需要:
-
用另一个反斜杠转义 Java 字符串中的每个反斜杠
-
第三个反斜杠是处理 JMeter 函数转义元字符(例如,如果你的函数包含逗号,你需要用反斜杠来转义它,如
\,
${__groovy(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir() + '\\\Test Plan.jmx',)}
或者您可以使用正斜杠:
${__groovy(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir() + '/Test Plan.jmx',)}
${__groovy(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir() + System.getProperty('file.separator') + 'Test Plan.jmx',)}
-