如果SoapUI中的断言失败,则返回错误响应

如果SoapUI中的断言失败,则返回错误响应,soap,groovy,soapui,soap-client,Soap,Groovy,Soapui,Soap Client,如果在SoapUI中断言失败,我想返回一条自定义错误消息 我有书面的断言。即使断言失败,我总是得到OK响应 我尝试了以下脚本: def assertionList = [] def idNotNull = (id!=null) ? "(id is not null" : assertionList.add("(id is null") if(!assertionList.isEmpty()) { return "exceptionResponse" } assert assertio

如果在
SoapUI
中断言失败,我想返回一条自定义错误消息

我有书面的断言。即使断言失败,我总是得到OK响应

我尝试了以下脚本:

def assertionList = []

def idNotNull = (id!=null) ? "(id is not null" : assertionList.add("(id is null")

if(!assertionList.isEmpty())
{
    return "exceptionResponse"
}
assert assertionList.isEmpty() : assertionList.toString()
但这将在执行assert之前返回。因此,尽管断言应该失败,但它还是被传递了


有什么方法可以实现这一点吗?

这是因为脚本只返回一条消息,但不会使它失败。此外,
return
不应在此处使用。由于存在
return
,因此代码中的
断言
语句从未到达

以下是您需要做的:

有两个选项可供选择,如下脚本所示

  • 使用If-If条件失败,然后显示错误
  • 使用断言-显示断言失败时的错误消息
  • 下面是完整的groovy脚本,请注意,在您提供的脚本中找不到
    id
    property,因此添加它是为了避免属性丢失错误

    def断言列表=[]
    定义id
    def idNotNull=(id!=null)?“(id不为空”:断言列表.add(“(id为空”)
    /**
    *您可以使用以下两个选项之一
    */
    //选项1:如果条件失败,则使用“错误”
    //不需要像您那样使用isEmpty()或null,默认情况下它将检查
    if(断言列表){
    抛出新错误(assertionList.toString())
    }
    //选项2:使用断言
    assert 0==assertionList.size():assertionList.toString()