我有两个get api来获取所有的文件夹,一个在onprem上,另一个在cloud上。(文件夹ID,文件夹标题,cld文件夹ID,cld文件夹标题),现在,我必须在onprem和cloud的另一个getapi中传递此文件夹id,这样我就可以获取文件夹中的内容,然后进行比较,以检查内容是否一样的。
因此,我使用了foreach控制器(每个用于onprem)和cloud get api来获取每个文件夹中的内容,并将它们嵌套起来,cloud forach控制器位于每个控制器的onprem内部
onprem foreach参数如下所示:
输入变量:folderid(使用json提取器提取)
起始索引:0
循环结束索引:${文件夹ID_匹配编号}
输出变量为folderidd
然后使用getapi获取相应文件夹中所有内容的id和标题(使用jsonextractor获取extractesd)。
要获取onprem上的文件夹中的内容,URL类似于:https://abc.onprem.com/${folderidd}
然后在getapi之后的每个控制器中插入云的foreach控制器
对于云,与上述相同,foreach控制器详细信息和输出ID为cld_folderidd
要获取云上文件夹中的内容,URL如下所示:https://abc.cloud.com/${cld_folderidd}
在这个http请求中,我提取了id和title,这样我就可以使用beanshellAssert来比较它们。
在执行脚本时,根据云中的所有文件夹检查onprem上的第一个文件夹,主要问题是我只想将onprem的第一个文件夹与云的第一个文件夹进行比较,将onprem的第二个云与云的第二个文件夹进行比较,或者只比较标题名称相同的文件夹。
因此,我已经插入了一个if控制器在云为每个控制器之前,获取文件夹内容请求.和if控制器的条件是这样的:文件夹标题:
在这里,我无法检查文件夹ID,因为它在云中不是固定的,将生成并分配一个随机数,这将不同于onprem文件夹ID
但这仍然是不工作,再次一个onprem文件夹正在与云上的所有文件夹进行比较,请建议我的东西,这样我就可以只检查一个文件夹的onprem与云上的一个文件夹!!
1条答案
按热度按时间vhmi4jdf1#
你不需要使用“嵌套的”ForEach Controller,你需要使用单个ForEach Controller。
为了获得云的相关变量,您可以使用__intSum()和__V()函数组合,即类似于:
更多信息:Here’s What to Do to Combine Multiple JMeter Variables
另外,请注意,使用Beanshell是某种形式的性能反模式,请考虑改用JSR223 Assertion和Groovy。