SoapUI - 断言
断言可以解释为检查点或验证点。一旦请求发送到 Web 服务器,就会收到响应。需要验证响应是否包含预期的数据。为了验证响应,SoapUI 具有断言功能。
注意事项
断言用于验证 TestStep 在执行期间收到的消息。
它将消息的一部分或整个消息与某个预期值进行比较。
可以将任意数量的断言添加到 TestStep,每个断言验证响应消息的不同方面和内容。
TestStep 执行后,其所有断言都将应用于收到的响应,如果其中任何一个断言失败,则 TestStep 在 TestCase 视图中被标记为失败。
失败的条目显示在测试执行日志中。
断言类型
SoapUI 支持多种响应断言。
以下是 SoapUI 支持的断言列表。
断言 | 描述 |
---|---|
属性内容 | |
Contains | 检查指定字符串是否存在。它也支持正则表达式。 |
Not Contains | 检查指定字符串是否存在。它也支持正则表达式。 |
XPath Match | 使用 XPath 表达式选择目标节点及其值。将 XPath 表达式的结果与预期值进行比较。 |
XQuery Match | 使用 Xquery 表达式从目标属性中选择内容。将 XQuery 表达式的结果与预期值进行比较。 |
合规性、状态、标准 | |
HTTP 下载所有资源(HTTP DOwnload All Resource) | 下载所有引用为 HTML 文档的资源(图像、脚本等)并验证它们是否可用。适用于任何包含 HTML 的属性。 |
无效的 HTTP 状态代码(Invalid HTTP Status Codes) | 检查目标 TestStep 是否收到 HTTP 结果,其状态代码不在定义的代码列表中。适用于任何接收 HTTP 消息的 TestStep。 |
非 SOAP 故障(Not SOAP Fault) | 验证最后收到的消息不是 SOAP 故障。适用于 SOAP TestSteps。 |
架构合规性(Schema Compliance) | 验证最后收到的消息是否符合相关的 WSDL 或 WADL 架构定义。适用于 SOAP 和 REST 测试步骤。架构定义 URL 支持属性扩展(例如 ${#System#my.wsdl.endpoint}/services/PortType? wsdl)。 |
SOAP 故障(SOAP Fault) | 验证最后收到的消息是否为 SOAP 故障。适用于 SOAP TestSteps SOAP 请求 - 验证最后收到的请求是否为有效的 SOAP 请求。仅适用于 MockResponse 测试步骤。 |
SOAP 响应(SOAP Response) | 验证最后收到的响应是否为有效的 SOAP 响应。仅适用于 SOAP TestRequest 步骤。 |
有效 HTTP 状态代码(Valid HTTP Status Codes) | 检查目标 TestStep 是否收到具有定义代码列表中的状态代码的 HTTP 结果。适用于接收 HTTP 消息的任何 TestStep。 |
WS-Addressing 请求(WS-Addressing Request) | 验证最后收到的请求是否包含有效的 WS-Addressing 标头。仅适用于 MockResponse TestSteps。 |
WS-Addressing 响应(WS-Addressing Response) | 验证最后收到的响应是否包含有效的 WS-Addressing 标头。仅适用于 SOAP TestRequest 步骤。 |
WS-Security Status | 验证最后收到的消息是否包含有效的 WS-Security 标头。适用于 SOAP 测试步骤。 |
Script | |
脚本断言(Script Assertion) | 允许用户执行自定义脚本来执行用户定义的验证。仅适用于 TestSteps(即不适用于属性) |
SLA | |
响应 SLA(Response SLA) | 验证最后收到的响应的响应时间是否在定义的限制内。适用于脚本 TestSteps 和发送请求并接收响应的 TestSteps。 |
JMS | |
JMS 状态(JMS Status) | 验证目标 TestStep 的 JMS 请求是否成功执行。适用于具有 JMS 端点的请求 TestSteps。 |
JMS 超时(JMS Timeout) | 验证目标 TestStep 的 JMS 语句所用时间不超过指定的持续时间。适用于具有 JMS 端点的请求 TestSteps。 |
安全性 | |
敏感信息暴露(Sensitive Information Exposure) | 验证响应消息是否不暴露有关目标系统的敏感信息。我们可以将此断言用于 REST、SOAP 和 HTTP TestSteps。 |
JDBC | |
JDBC 状态(JDBC Status) | 验证目标 TestStep 的 JDBC 请求是否成功执行。仅适用于 JDBC TestSteps。 |
JDBC 超时(JDBC Timeout) | 验证目标 TestStep 的 JDBC 语句所用时间不超过指定的持续时间。仅适用于 JDBC TestSteps。 |