当前位置: 首页 > 知识库问答 >
问题:

使用JSR223 Sampler/Groovy打开JMeter文件

潘宸
2023-03-14
import org.apache.jmeter.services.FileServer;

String path = FileServer.getFileServer().getBaseDir() + "\\requestBody.txt"

String file = new File(path).getText('UTF-8')
2021-02-18 15:46:17,708 ERROR o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script Load SOAP Request Config, message: javax.script.ScriptException: javax.script.ScriptException: java.io.FileNotFoundException: C:\Users\MatthiasWalk\Documents\Workspace\JMeter\requestBody.txt (The system cannot find the file specified)
javax.script.ScriptException: javax.script.ScriptException: java.io.FileNotFoundException: C:\Users\MatthiasWalk\Documents\Workspace\JMeter\requestBody.txt (The system cannot find the file specified)
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:158) ~[groovy-jsr223-3.0.7.jar:3.0.7]
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) ~[java.scripting:?]
    at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:219) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.protocol.java.sampler.JSR223Sampler.sample(JSR223Sampler.java:72) [ApacheJMeter_java.jar:5.4.1]
    at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:638) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256) [ApacheJMeter_core.jar:5.4.1]
    at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: javax.script.ScriptException: java.io.FileNotFoundException: C:\Users\MatthiasWalk\Documents\Workspace\JMeter\requestBody.txt (The system cannot find the file specified)
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:320) ~[groovy-jsr223-3.0.7.jar:3.0.7]
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:155) ~[groovy-jsr223-3.0.7.jar:3.0.7]
    ... 8 more
Caused by: java.io.FileNotFoundException: C:\Users\MatthiasWalk\Documents\Workspace\JMeter\requestBody.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open0(Native Method) ~[?:?]
    at java.io.FileInputStream.open(FileInputStream.java:219) ~[?:?]
    at java.io.FileInputStream.<init>(FileInputStream.java:157) ~[?:?]
    at org.codehaus.groovy.runtime.ResourceGroovyMethods.newReader(ResourceGroovyMethods.java:1797) ~[groovy-3.0.7.jar:3.0.7]
    at org.codehaus.groovy.runtime.ResourceGroovyMethods.getText(ResourceGroovyMethods.java:579) ~[groovy-3.0.7.jar:3.0.7]
    at org.codehaus.groovy.runtime.dgm$1042.invoke(Unknown Source) ~[groovy-3.0.7.jar:3.0.7]
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:247) ~[groovy-3.0.7.jar:3.0.7]
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) ~[groovy-3.0.7.jar:3.0.7]
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) ~[groovy-3.0.7.jar:3.0.7]
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) ~[groovy-3.0.7.jar:3.0.7]
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139) ~[groovy-3.0.7.jar:3.0.7]
    at Script8.run(Script8.groovy:5) ~[?:?]
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:317) ~[groovy-jsr223-3.0.7.jar:3.0.7]
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:155) ~[groovy-jsr223-3.0.7.jar:3.0.7]
    ... 8 more

路径似乎是正确的,文件存在,我检查了它的尾随/前导空白。

我错过了什么?

共有1个答案

杨成礼
2023-03-14

我无法复制您对存在的文件的问题,并且我的用户对此文件具有读取权限:

因此,我建议您仔细检查文件路径和用户访问详细信息。

还有

 类似资料:
  • 问题内容: 作为一个小项目,我认为制作文本编辑器会很酷。我目前无法打开文件。这是我打开文件的代码(是,打开是): 尝试块给我带来了麻烦。Eclipse表示未定义type 。似乎也未定义。有另一种方法可以解决此问题,或另一种工作原理相同的方法吗? 问题答案: 你需要调用在一旦返回,所以更改您的代码:

  • 错误是 我将下面的librairies导入到JMeter中: Apache POI 3.17 Apache POI-OOXML 3.17 Apache Commons IO 2.6 OOXML模式1.3 XMLBeans-2.3.0.jar Commons-Collections4-4.1.jar 提前多谢 致以最诚挚的问候 更新1

  • 在JMeter中,我想使用客户端证书,而无需转换证书的所有开销,并且不要忘记在JMeter重启后单击SSL管理菜单。 我希望能够灵活地在需要的地方使用不同的证书。 这里的Java解决方案看起来非常有前途。我尝试在Groovy中使用JSR223预处理器。第一行失败。它无法导入标准Java类。 使用标准Java类需要做什么? 整个想法是基于SoapUI中使用的解决方案。 像这样的东西在JMeter中工

  • 问题内容: 如何为应用添加 PDF文件 ,您可以单击一个按钮查看该文件,完成后又回到原来的屏幕? 问题答案: 如果您只想查看PDF文件,则可以将其加载到UIWebView中。 斯威夫特4.1: 如果您想实现更多目标,最好使用PSPDFKit框架。

  • 我在JMeter中有一个Config元素,特别是用户定义的变量。 我有变量用户与值贾斯汀,我怎么能在groovy代码(一个JSR223断言)中使用这个变量?

  • 问题内容: 我想使用groovy脚本从Maven执行jmeter测试,但出现以下错误。为了设置jmeter和maven,我做了这里描述的操作。 我是否应该将groovy函数和实体打包到jar中,然后复制到jmeter的lib目录中,然后仅将那些groovy脚本放在包含采样器代码的jmx文件旁边? 问题答案: 我找到了答案: 我需要将要在测试中使用的库打包到jar中,并将其放入目录中 我必须对齐Sa