SoapUI之接口数据传递(TestCase、TestSuite传递)
SoapUI中使用Conditional Goto TestStep
摘要: How to use Conditional Goto TestStep instead of Groovy Script
Background: 在SoapUI的TestStep中,Groovy Script可以实现大多数种类的测试场景,但是一个Project中Script太多会拖慢运行速度和效率,所以SoapUI自带了其他种类的TestStep,例如“Conditional Goto” :
1.Right click one TestStep->Right click->Add Step->Conditional Goto.
2.在弹出的界面做下图所示4步操作:
- 添加一个Condition变量,名字不限,见名知义即可;
- 点击视图选择器,选择作为条件的变量:点击后SoapUI就会自动弹出上一个Request Method Test Step的Response Json View,双击选择需要作为跳转标志的字段,那对应的XPath Expression就会填充到上方的空白处;
- 为选择的变量添加跳转条件:上图的意思是“选择的status字段是IN_CALCULATION的时候跳转到指定的Target step”;
- 在下拉列表中选择跳转条件满足时需要跳转到的Target Step:上图中需要循环执行“GetTableData_PAAPI”,所以条件是这个Step的某个字段,条件满足时继续执行该Step。
注意:
- Conditional Goto步骤在实际运用中的意思是:当上一个REST Test Step的满足某一个条件时,就跳转到该Test Case中的某个Target Step。
- 用Conditional Goto步骤实现轮询时,因为该Step有自己设定的间隔时间(应该是几十毫秒),可能跟界面上轮询时间不同,所以为了模拟真实界面错做,就需要在改步骤前面加上Sleep Test Step(默认休眠时间是1000ms)。
- 若需要跳转的条件跟上一个REST Test Step返回结果无关,此时该TestStep无效。这种情况下可以添加一个Groovy Script,在Script中判断条件是否为true,若为true,则goto某TestStep:
if(context.expand('${DataSource#bmkId}') == ""){
testRunner.gotoStepByName("GetOwnershipData_PAAPI VS DataAPI")
}
所以在用工具的时候,要根据自己的业务需求灵活选择Test Step。