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

MissingPropertyException:在Apache jmeter中没有这样的属性:类的basePath:Script466

邓仲卿
2023-03-14

在Apache jmeter项目中,我只需要在两个线程组之间共享几个变量。我发现变量不能在线程组之间共享,我必须使用属性。我在第一个线程组的JSR223预处理器中编写了下面的脚本来设置属性值。它运行没有任何异常

@Grab('org.yaml:snakeyaml:1.17')

import org.yaml.snakeyaml.Yaml;
import org.apache.jmeter.services.FileServer;

String baseDir = FileServer.getFileServer().getBaseDir()

Yaml ymlparser = new Yaml()

Map config = ymlparser.load((baseDir+"/config/tool.yaml" as File).text)

String base_path = baseDir + "/data/" + trafficConfig.find{it.key=="name"}?.value

${__setProperty(basePath, base_path)};

然后,我从第二个线程组中的JSR223预处理器读取属性值,如下所示。

${__property(basePath, base_path)}
log.info( base_path );

它将通过jmeter日志中的以下异常。

2019-11-02 18:54:19,353错误O.A.J.M.JSR223预处理器:JSR223脚本中的问题,JSR223预处理器javax.script.scriptException:javax.script.scriptException:groovy.lang.missingPropertException:No这样的属性:basePath for class:Script470 at org.codehaus.groovy.JSR223.groovyScriptEngineimpl.eval(GroovyScriptEngineimpl.java:162)~[groovy-all-2.4.16.jar:2.4.16]at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233)~[?jmeter.util.jsr223TestElement.processFileOrScript(jsr223TestElement.java:225)~[apacheJMeter_core.jar:5.1.1 r1855137]在org.apache.jmeter.modifiers.jsr223preprocess.process(jsr223preprocess.java:44)[apacheJMeter_corements.jar:5.1.1 r1855137]在org.apache.jmeter.jmeter.jsr223preprocess.jar:5.1.1 r1855137]在org.apache.jmeter Threads.jmeterThread.ExecutesAmplePackage(jmeterThread.java:537)[apachejmeter_core.jar:5.1.1 r1855137]at org.apache.jmeter.threads.jmeterthread.processSampler(jmeterthread.java:486)[apachejmeter_core.jar:5.1.1 r1855137]在org.apache.jmeter.threads.jmeterthread.run(jmeterthread.java:253)[apachejmeter_core.jar:5.1.1 r1855137]在java.lang.thread.run(thread.java:748)[?:1.8.0_221]

共有1个答案

毕嘉
2023-03-14

使用道具设置属性

props.put("basePath", base_path);

不要在JSR223组件中使用${}语法

 类似资料:
  • docx4j从2.8.0更新到3.1.0后,我对以下代码有问题: 这些代码在2.8.0版本中运行良好,但是在3.1.0版本中,当调用行wml.save(targetFile)时,我得到了一个异常。我不能进入这段代码,因为我在进入之前立即得到以下异常: 我正在使用版本 1.7.7 的 slf4j-api(对于 docx4j 3.1.0,标准依赖项是 slf4j-api 的 1.7.5),而 slf4

  • 我已经创建了多分支管道(声明式),并将jenkinsfile放在bitbucket repo中。配置为触发内置管道的挂钩。当开发人员提交代码管道时,它抛出以下错误。 [Bitbucket]生成结果通知groovy。lang.MissingPropertyException:对于org上的class:WorkflowScript,没有这样的属性:any。科德豪斯。棒极了。运行时。脚本字节码适配器。在

  • 我有一个Groovy测试类 在该类中有以下测试用例: 以及如下所示: 现在,当我运行这个测试用例时,我在调用时收到以下错误消息: 棒极了。lang.MissingPropertyException:类:ecs没有此类属性:msg1。MsgDispatcherTest 你知道我错过了什么吗?

  • 我有一个带有Spring Security核心和多租户单db插件的grails 2.1.0应用程序,运行良好。此应用程序的要求之一是将并发登录限制在一个。为此,我尝试在Bootstrap中使用SpringSecurityUtils来注册过滤器。

  • 我在IntelliJ Ultimate 2017.1.5中有一个基于gradle的groovy项目。我正在使用groovy 2.4.4。我的想法是用gradle 4.0.2运行gradle。 Gradle“webclient”项目刷新失败 错误:对于类:org,没有这样的属性:from。格拉德尔。应用程序编程接口。内部的任务。DefaultTaskOutputs$TaskOutputUnionFi