如何在Jmeter中的同一线程中将响应从一个beanshell采样器传递到另一个beanshell采样器

时间:2019-01-17 23:26:48

标签: jmeter beanshell

我正在从beanshell到api进行dme2调用,并且从中获得响应,例如{“ stagedcustomerId”:“ 165ce369-a9fb-4d42-b8f0-f119a6ae20eb”} 所以现在我只想将客户id值传递给另一个beanshell采样器,以便在下一个api调用中作为jmeter中同一线程中请求主体中的参数之一。

请提出在这种情况下我们该怎么办。有什么办法可以做beanshell后处理器?

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用SampleResult的简写形式来定义Beanshell Sampler响应数据,例如:

    SampleResult.setResponseData("{\"stagedcustomerId\":\"165ce369-a9fb-4d42-b8f0-f119a6ae20eb\"}","UTF-8")
    
  2. 完成后,您可以添加一个JSON Extractor作为Beanshell Sampler的子项,并按以下方式进行配置:

    enter image description here

  3. 就这样,现在您将能够在其他Beanshell Sampler中以String id = vars.get("id");的形式或在任何其他测试元素中以${id}的形式访问提取的值。

    enter image description here


也请注意,starting from JMeter 3.1 it's highly recommended to use JSR223 Test Elements and Groovy language用于编写脚本,因此请考虑在下一个可用机会上重构测试。