如何使用JMeter';JSR223中Groovy类中的内部方法(vars.get()等)
我在JSR223预处理器中编写Groovy脚本,如下所示如何使用JMeter';JSR223中Groovy类中的内部方法(vars.get()等),groovy,jmeter,jsr223,Groovy,Jmeter,Jsr223,我在JSR223预处理器中编写Groovy脚本,如下所示 import groovy.json.JsonSlurper; 类jmeter{ def parsingJSON(字符串文件名){ def payload=新文件(fileName).getText(); def jsonSlurper=新的jsonSlurper() def object=jsonSlurper.parseText(有效负载) vars.put(“myVar”,object.event\u id) 返回object.e
import groovy.json.JsonSlurper;
类jmeter{
def parsingJSON(字符串文件名){
def payload=新文件(fileName).getText();
def jsonSlurper=新的jsonSlurper()
def object=jsonSlurper.parseText(有效负载)
vars.put(“myVar”,object.event\u id)
返回object.event\u id
}
}
def running=new jmeter()
运行。PrjJSON(“C:/Ups/Pultult.JSON”)如果您想以最小的更改保持代码结构,请考虑引入一个单独的类,该类包含静态变量,这些变量将在Groovy脚本中随处可见。p>
比如:
import groovy.json.JsonSlurper
class Global {
static vars = [:]
}
Global.vars.jmeterVars = vars
class jmeter {
def parsingJSON(String fileName) {
def payload = new File(fileName).getText();
def jsonSlurper = new JsonSlurper()
def object = jsonSlurper.parseText(payload)
Global.vars.jmeterVars.put("myVar", object.event_id)
return object.event_id
}
}
def running = new jmeter()
running.parsingJSON("C:/Users/payload.json")
更多信息:
如果要添加变量,需要将当前JMeterVariables
对象传递给jmeter对象
以下代码将变量aaa
添加到现有JMeter变量中
import org.apache.jmeter.threads.JMeterVariables;
class jmeter {
JMeterVariables vars;
jmeter(JMeterVariables vars) {
this.vars = vars;
}
public addvar() {
vars.put("aaa","bbb");
}
}
def running = new jmeter(vars);
running.addvar();
因此Intellij RecogniteJMeterVariables
您必须从JMeter的lib\ext文件夹中添加ApacheJMeter_core.jar
,谢谢@Dmitri,我刚刚尝试了您的想法,但出现了一个错误。我更新了我编写的代码和主线程中的错误消息。谢谢。你试过我的答案了吗?你能提供反馈吗?嗨,对不起,我没有注意到你修改了答案。我只是尝试一下,刚刚更新了上面线程中的结果。Intellij很好,但JMeter仍然不喜欢它。不知道为什么。谢谢:)