SoapUI中是如何断言的呢(四)
何时使用内置断言?
当响应短时,可以使用那些内置断言之一对其进行验证。
如果从Web服务器发送的响应本质上始终是静态的,我们也可以使用内置声明。如果它是动态的,我们将无法使用内置断言来断言。
当不可避免地使用诸如超时断言和安全断言之类的内置断言时。
对于无需重复测试的一次性用法,内置断言非常有效。
断言选项
可以通过下面突出显示的控制面板来最好地控制创建的断言。
创建的断言允许测试人员从断言工具箱中配置以下内容。
选项 |
描述 |
选定的断言将顺序上移。 |
|
选定的断言将顺序向下移动。 |
|
删除选定的断言 |
|
重新配置/编辑选定的断言。 |
以下是SOAP UI的PRO版本独有的功能。PRO版本还可以帮助我们对断言进行分组,以便可以为创建的断言添加一层以上的验证。
-
AND:所有断言均被评估为VALID断言,这将导致PASSED组条件。或:组中至少一个断言必须为VALID才能断言组PASSED条件。
专业版还允许克隆断言:此选项使测试人员可以将断言复制到相同或不同项目中的不同测试步骤。
禁用/启用断言:此选项允许禁用或启用任何分组或未分组的断言。如果一个断言被禁用,它会变灰,并且在执行一个测试用例时,将不执行被禁用的断言。
取消组合断言:如果测试人员决定取消组合的断言,则可以将其取消组合。
各种断言类型中可用的方法的完整列表
断言机制 |
描述 |
物业内容 | |
包含 |
搜索指定字符串的存在。它还支持正则表达式。 |
不包含 |
搜索指定字符串的不存在。它还支持正则表达式。 |
XPath匹配 |
使用XPath表达式选择目标节点及其值。 |
XQuery匹配 |
使用Xquery表达式从target属性中选择内容。 |
合规性,状态,标准 | |
HTTP下载所有资源 |
下载后验证HTML文档,它对包含HTML的任何属性都适用。 |
无效的HTTP状态代码 |
验证HTML响应是否包含不在已定义代码列表中的状态代码。 |
不是SOAP错误 |
验证最后收到的消息是否不是SOAP Fault。很明显,它仅适用于SOAP测试步骤。 |
架构合规 |
验证最后收到的消息是否符合WSDL或WADL标准架构定义。适用于SOAP和REST测试步骤。 |
SOAP故障 |
验证最后收到的消息是否为SOAP错误。它与“ NOT SOAP”故障断言相反。 |
SOAP响应 |
验证最后收到的响应是否是有效的SOAP响应,并且仅对SOAP测试请求步骤有效。 |
有效的HTTP状态代码 |
验证HTML响应是否包含已定义代码列表中的状态代码。它与“无效的HTTP状态代码”声明相反。 |
WS-寻址请求 |
验证最后收到的请求是否包含适当的WS-Addressing标头。 |
WS-寻址响应 |
验证最后收到的响应是否包含适当的WS-Addressing标头。 |
WS-安全状态 |
验证最后收到的消息是否包含有效的WS-Security标头,并且仅对SOAP请求有效。 |
脚本 | |
脚本断言 |
允许用户执行自定义脚本以执行用户定义的验证。 |
服务水平协议 | |
响应SLA |
验证最后收到的响应的响应时间是否在定义的限制内。 |
JMS | |
JMS状态 |
验证测试步骤的JMS请求是否已成功执行,并且对于具有JMS端点的测试步骤而言是否成立。 |
JMS超时 |
验证测试步骤的JMS响应是否花费的时间不超过指定的持续时间。 |
安全 | |
敏感信息公开 |
验证响应消息是否未公开有关目标系统的敏感信息。我们可以将此断言用于REST,SOAP和HTTP测试步骤。 |
常见错误和故障排除
使用正确的名称空间。名称空间应该是Web服务所在的URL。
如果在开发脚本断言时抛出错误,请使用“ log.info”来打印变量的内容
如果没有得到所需的输出,请验证请求中是否传递了有效的输入。
例如,在货币转换器中,如果您将'intA'输入为非整数的'x',则输出将引发错误代码为'SOAP-Client',这意味着问题出在从客户端。
确保在使用XPATH和XQuery断言时使用正确的语法。使用上述断言时,请勿使用dot(。)代替冒号(:)。语法是// namespace:Tagname而不是//namespace.tagname。这样,即使标签名称正确,您也可能会收到一条消息“当前响应中没有匹配项”。