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」。懂了吧?