jmeter:如何在循环内使用while循环

时间:2014-11-24 17:41:19

标签: loops csv while-loop jmeter

我的JMeter计划是

-- Loop controller (set to 3)
  -- while controller(set to "${Dataitems}" != "<EOF>")
    -- using CSV for  reading the data items
    -- HTTP requests

现在的问题是,在完成while循环后,线程正在停止。我知道这是在CSV配置中控制的“在EOF上停止线程”= true将使线程停止。但是我的要求是在迭代我的csv之后,我希望控制传递给外部循环,它将根据我在案例3中提供的变量运行,因此所有请求都将针对我在csv中提供的所有数据项运行三次。

实现我试图设置

  1. “在EOF上停止线程”= false,然后它开始运行lopp forintinte次
  2. “在EOF上停止线程”= $ {Var1},其中var1在测试计划中声明,但仍然循环运行无限次
  3. 有些人可以提供有关如何将控制从while循环切换到外循环的见解吗?

    非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如您所知,虽然控制器将继续运行,直到条件失败。

不幸的是,在您的情况下,您需要设置以下条件以重复CSV文件值。

'Recycle on EOF?' to TRUE

所以,虽然控制器永远不会退出,因为你不能在那里使用任何条件(以满足你的要求)。

我认为让你的要求有效的唯一方法是 - 使用2个循环控制器。

(外部)循环控制器(如你所说设置为3)

(内部)循环控制器(设置为CSV中的行数)

我得到这样的输出。我的CSV文件有3行,其值为A,B,C。它们被外环控制器调用3次。

enter image description here

如果您不想在循环控制器中硬编码,请使用变量&amp;使用beanshell查找行数并将值设置为变量。