2016-10-17 20 views
0

。我用不同的数据集打了多个“发布”电话。每次通话都会产生唯一的ID作为回复。我想再次通过每个唯一的ID以5分钟的间隔“打电话”。我已经提取正则表达式提取独特的ID。问题是,我只能通过最后一个唯一的ID来“打电话”,而不是每个唯一的ID。有没有一种方法可以创建动态正则表达式键并将其下游值用于进一步使用? enter image description here无法传递Jmeter邮寄呼叫的动态响应,以致于对JMeter不熟悉电话

回答

0

确实有多种方法可以解决这个问题。命名一对夫妇:

  1. 捕获每个不同的POST响应ID作为唯一变量,这些变量可用于未来的GET调用,每个调用都需要一个唯一的ID。 示例:ID1,ID2,ID3等......
  2. 为每个POST/GET方案创建单独的线程组。 JMeter变量只对线程组是本地的,所以它们将相互隔离。如果需要,这也可以同时运行它们。
  3. 使用变量(排序计数)在每个POST上递增并将其附加到公共变量名称。 示例:ID $ {count}。您将不得不添加一个Beanshell预处理器来增加每个HTTP请求采样器中的计数变量。

int count = Integer.parseInt(vars.get("count")); count = count + 1; vars.put("count", count.toString());

然后,您可以迭代,直到使GET请求时,在一段时间控制器达到计数的值,或者你可以递减计数。只要满足While语句的条件,两者都可以发挥相同的功能。此外,您可以使用循环控制器和count作为迭代次数,并且只需要在循环的整个生命周期内增加另一个计数。

0

也许最简单的方法将使用一个递增的后缀,如:

  1. 添加__counter()功能作为一个后缀为贵“参考名称”像

    counter postfix

  2. 每次定期表达式提取器将被调用,将创建一个新的batchid_N变量,其中N是由__counter()函数生成的递增数字

    Variables originated from counter

  3. 你将能够在需要时访问这些变量值${batchid_1}${batchid_2}等。还有通过像__V()功能使用另一个JMeter的函数或变量作为后缀值的可能性:

    • ${__V(batchid_${yourVar})} - 与${yourVar}可变

    • ${__V(batchid_${__counter(,)})}结合“batchid_”前缀 - 结合“batchid_”前缀与__counter()函数

参见How to Use JMeter Functions一个有关上述和其他JMeter功能的更多信息,请参见本文。