我在Jmeter中遇到过我无法解决的问题。 我想创建一个发送请求并获得响应的测试。 响应是url编码。 所以首先我需要将响应放在变量中,而不是url解码它。 1.我创建了正则表达式并将响应放在变量名称“full_response”中,它按预期保存,如您在结果中看到的那样。 2.我创建了一个groovy采样器步骤,只想传递“full_response”并打印它,以便知道它已通过OK。 它并不打印所有响应只是3个字母。 (我认为因为响应是URL ENCODE)。 有人可以建议如何将此变量传递给groovy脚本?而不是打印吗? 目的是url解码结果并对其进行断言!! 我如何将结果放在groovy sampler中的“reponse_before_decode”变量中,而不是url解码它。 在调试采样器中我不看到我在groovy采样器中创建的response_before_decode变量 是因为回应是特殊的字符吗?而且我不能完整地传递它>? (参见正则表达式的完整响应变量中的响应) 问候
def reponse_before_decode = args[0] as String;
def reponse_before_decode_2 = args[0];
System.out.println ("re" + '$full_response');
System.out.println ("full" + reponse_before_decode_2);
System.out.println ("full" + reponse_before_decode);
答案 0 :(得分:1)
${full_response}
之类的Groovy脚本中引用JMeter变量或函数,而是使用vars.get('full_response')
,因为它可能与GStringTemplates冲突您不需要正则表达式提取器临时步骤,您可以从JSR223采样器访问以前的采样器结果,如:
def reponse_before_decode = ctx.getPreviousResult().getResponseDataAsString()
其中ctx
代表JMeterContext类实例
x-www-form-urlencoded
字符串。请参阅Apache JMeter Functions - An Introduction以熟悉JMeter Functions概念。