2017-01-17 115 views
1

我有根文件夹,它是id。要进入任何文件夹,我需要使用Json在其正文中创建POST请求,其中包括我想要访问的文件夹的ID。作为POST请求后的响应,我正在获取文件夹列表。接下来的问题是 - 如何使用WHILE Con​​troller和POST请求迭代整个文件夹树(访问每个文件夹)?使用Jmeter请求循环遍历文件夹和子文件夹

+0

请用2个JSON响应来更新你的问题:1.当有文件夹时2.当没有文件夹(你点击叶文件夹),所以我们可以拿出相关的While Controller条件。同时检查[在JMeter中使用While控制器](https://www.blazemeter.com/blog/using-while-controller-jmeter)文章。 –

+0

@Dmitri除了我有文件夹中的文件夹。所以,当我在JSON响应中没有文件夹时(我在叶文件夹中),我仍然有文件列表。所以我的回应是相同的,但在结果数组我没有文件夹ID。 – neckobik

回答

0

用Jmeter实现递归是非常困难的。所以我用List来存储我的子文件夹的列表,并且当我访问了所有的子文件夹列表项时,我将它从主List中删除。这对于不大量的文件夹树级别可以正常工作。 BeanShell被用来描述逻辑。

0

遵循以下步骤:

  1. 首先,添加HTTP Request采样,建立与父文件夹ID POST请求。 (请参考image1)
  2. Regular Expression Extractor作为孩子添加到HTTP采样器上方(请参阅image2)。配置正则表达式提取器以从HTTP响应中捕获所有子文件夹ID。 (参照imag2)
  3. 添加For Each Controller通过所有捕获的子文件夹的ID进行迭代。(参照图像3)
  4. 添加HTTP取样器作为子为每个控制器。 (参考image4)
  5. 添加Debug Sampler(了解变量值,使用正则表达式捕获)和View Results Tree侦听器(捕获HTTP请求和响应)来调试脚本。一旦脚本正在工作,请将其删除。

以下图片以google.com为例生成。请根据您的Web应用程序更改值。

IMAGE1: enter image description here

图像2: enter image description here

的Image3: enter image description here

图像4: enter image description here

图像5: enter image description here

+0

好吧,只有文件夹树有一个级别,你的解决方案才是好的。根文件夹和根文件夹中的文件夹。但是,如果我们有更多的级别,您将无法使用您提供的解决方案访问Root子文件夹的每个子文件夹。 – neckobik

+0

这是递归问题。很难在我的最后模拟出问题。你可以分享网址吗? –

相关问题