我在soapUI中使用excel数据源。 我的数据源中的一些单元格是空白的
例如,并非所有用户都有packageID:
user age packageID
a 18
b 21 123456
c 11
我想添加条件转到步骤,如果packageID为空,请转到目标步骤
我试过了:
${DataSource# packageID} == null
但失败了,记录:
缺少匹配条件
答案 0 :(得分:2)
所需的解决方案是有条件转到评估:
'${DataSource#packageID}'='false'
或
matches('${DataSource#packageID}','false')
注意:
答案 1 :(得分:1)
在SOAPUI中,条件转到步骤中的条件必须是XPath表达式,XPath等于运算符是=
。因此,请使用一个相等的符号=
代替==
。我没有SOAPUI PRO因此我无法添加datSource而我无法尝试,但我认为您可以使用empty
或exists
XPath实现此目的功能,试试:
exists(${DataSource#packageID}) = false
或
empty(${DataSource#packageID})
编辑:
如果上面的答案不起作用,你可以尝试使用groovy进行条件步骤,在testCase中添加一个groovy testStep并尝试使用这个脚本:
if( context.expand('${DataSource#packageID}') == null)
testRunner.gotoStepByName( "Request 1")
else
testRunner.gotoStepByName( "Request 2")
希望这有帮助,
答案 2 :(得分:1)
条件Goto基于上一次成功测试步骤响应而工作,但它并未考虑dataSource步骤。所以这对你不起作用。
此外,该值很可能不是null,而是空字符串。因此,您需要检查""
。但为了安全起见,您可以使用|
并检查两者。
解决方案如下所示:
groovy脚本看起来像这样(为了调试目的添加了日志记录):
def packageID = context.expand('${DataSource#packageID}')
if(packageID == "" | packageID == null)
{
log.info("Empty value found for: " + packageID);
testRunner.gotoStepByName( "DataSource Loop")
}
else
log.info("Coninue for: " + packageID);