jmeter-如何合并多个变量数组?

时间:2018-10-09 21:03:53

标签: groovy jmeter jsonpath beanshell

我有一个ForEach控制器,在其中我调用一个端点以返回guid变量列表(例如inspectionId)。我使用JSON提取器(JSONPath)将它们存储到1个变量-InspectionIds中。由于存在多个值,因此最终会创建一个数组,当我在另一个控制器的链上使用它们时,该数组将完美工作。由于工作流程的要求,我需要合并所有InspectionIds实例,然后继续使用下一个控制器。但是由于数组是在ForEach控制器内部创建的,因此最终在该控制器的每次迭代中都被覆盖。因此,我最终得到了控制器的最后结果。

我无济于事地研究了Groovy和BeanShell Processor,所以我寻求您的帮助。

以下是一些屏幕截图-

JSON Extractor for inspectionIds

Variable Debug Results

1 个答案:

答案 0 :(得分:0)

根据JMeter Scoping Rules

,很可能您将JSON提取器放置在错误的位置
  1. 如果您将JSON提取器作为样本的子代,该样本会返回您的inspectionIds-它将仅应用于此采样器

    JMeter Scoping Rules - child

    在上述设置中,JSON提取器仅应用于Sampler 1

  2. 如果您的JSON提取器与返回inspectionId的请求位于同一个级别,则它将应用于此范围内的该采样器和所有其他采样器(相同级别或以下)

    JMeter Scoping Rules

    在上述设置中,JSON提取器适用于Sampler 1Sampler 2。由采样器1创建的任何JMeter Variables将被采样器2 覆盖。如果您将Debug Sampler用于“变量调试”测试元素,则同样适用。