SoapUI中使用Type是Groovy的DataSource

1.如今有一个request返回了一个list,以下图:oop

如今想要遍历每个masterportfolioid,做为该TestCase中其余TestStep的参数,因此准备添加一个DataSource,这时候最适合用的是Groovy Type的DataSource。spa

2.添加的DataSource以下图:进程

意思是:遍历response中的data节点,而后把每一个节点的值依次存入DataSource的变量”portfolioId“里面。get

3.添加一个DataSource Loop,以下图:io

将DataSource Step选成该DataSource,并将Target Step选成该Loop中的第一个REST类型的Test Step(不然会是死循环).ast

4.在须要用到DataSource中的变量时,要这么调用:${DataSource#portfolioId}.变量

 

扩展:扩展

对Groovy DataSource中定义的参数赋值时须要注意利用“row”这个变量,要否则根本获取不到参数列表,还致使SoapUI死机(不知道是否是此时认为参数列表长度无限大,死机了)。循环

1.添加一个DataSource,而且简单的为设定的参数foo赋值,而后保持默认的查询起止行数,查询foo的参数值列表:遍历

此时在参数值列表中并未看到任何的值,并且SoapUI还卡死了,只能杀掉进程。

2.如果在上述查询值列表的时候设置显示的结果行数2是“2”,看看查询结果:

若我设置显示结果的行数是“10”,此时在参数列表结果控制台就会显示10个“bar”。

比较这几个步骤,看出差异了吧?

我仅仅赋值了一次,可是若设置多个查询行数,就会有多个参数行返回,因此若是设置查询行数是0,就是显示全部行数,此时确定是死循环。。。

因此为了使获得的参数列表可控,咱们须要利用Groovy DataSource中的“row”变量,灵活控制参数结果。

下图就是利用row来控制赋值的次数,此时若是查询结果行数是“0”,就会显示全部的foo参数值行数,即“3”。懂了吧?

相关文章
相关标签/搜索