首页 文章

无法移动到变量完全响应 - Groovy Jmeter

提问于
浏览
0

我在Jmeter中遇到过我无法解决的问题 . 我想创建一个发送请求并获得响应的测试 . 响应是url编码 . 所以首先我需要将响应放在变量中,而不是url解码它 . 1.我创建正则表达式并将响应放在变量名称"full_response"中,它按预期保存,如您在结果中看到的那样 . 2.我创建了一个groovy采样器步骤,只想传递"full_response"并打印它,知道它传递好了 . 它并不打印所有响应只是3个字母 . (我认为因为响应是URL ENCODE) . 有人可以建议如何将此变量传递给groovy脚本?而不是打印吗?目的是url解码结果并对其进行断言!!我如何将结果放在groovy采样器中的"reponse_before_decode"变量中,而不是将其解码为url . 在调试采样器中我 not 看到我在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);

enter image description here

enter image description here

enter image description here

enter image description here

1 回答

  • 1
    • 永远不要像 ${full_response} 那样在Groovy脚本中引用JMeter变量或函数,而是使用 vars.get('full_response') ,因为它可能与GStringTemplates冲突

    • 您不需要正则表达式提取器临时步骤,您可以从JSR223采样器访问以前的采样器结果,如:

    def reponse_before_decode = ctx.getPreviousResult().getResponseDataAsString()
    

    其中 ctx 代表JMeterContext类实例

相关问题