SoapUI教程

SoapUI 断言

SoapUI Assertions

什么是 Assertions?

Assertions 是适用于声明验证结果的验证规则,并检查目标网站是否服务的工作方式与预期结果相同。可以通过在每个验证参数上使用检查点或验证点来理解断言。例如,当我们向 Web 服务器发送请求时,Web 服务器接收请求并生成响应。现在,我们必须使用包含与我们预期相同的结果的断言规则来验证服务器响应结果。因此,我们使用断言来验证响应。

断言的特征

断言包含验证规则,用于验证服务器在执行测试步骤期间收到的响应。 在断言中,我们可以定义应验证的响应消息或整个消息的特定部分。 我们可以指定任意数量的断言验证规则,以验证结果不同方面的测试步骤。 如果任何测试步骤不符合接收到的响应结果,断言测试结果将使测试步骤失败。它在测试执行日志中以红色表示。

断言类型

以下是中使用的断言列表类型SoapUI 工具。
Property Content Compliance Status Standard Script SLA JMS Security

属性内容

用于检查触发特定服务请求后收到的响应中存在的属性。
Contains Assertion: 用于验证响应xml中是否存在指定的字符串。此外,我们可以定义正则表达式来检查表达式是否存在。 Non-Contains Assertion: 用于验证响应 xml 中指定字符串不存在。此外,我们可以在 Not Contains 中定义正则表达式来检查表达式是否存在。 XPath Match Assertion: XPath 匹配用于从目标属性中选择特定内容,并将 XPath 表达式的结果与响应 xml 中的预期值进行匹配。 XQuery Match: XQuery 表达式类似于 XPath Match,用于从目标源中选择内容,并将 XQuery 表达式结果与响应 XML 中的预期值进行比较或匹配。 Scripting Assertion: 脚本断言使用户能够运行自定义脚本来执行用户定义的验证。

合规性、状态和标准

用于检查响应 XML 中的故障消息和模式合规性的状态。
HTTP 下载所有资源: 用于验证下载资源后可用的所有 html 文档,如图像、脚本等。 无效的 HTTP 状态代码: 无效的 HTTP 状态代码用于验证目标测试步骤是否收到了一个结果,其 HTTP 代码在定义的 HTTP 代码列表。 Not Soap Fault: 顾名思义,not soap 故障用于确定最后收到的消息中不存在soap 故障。 Soap Response: 用于验证最后收到的消息是否为 Soap 响应消息,并且它只能应用于任何 Soap 请求的TestSteps。 Soap Fault: 它用于查找上次接收到的消息中存在的任何soap 故障。它仅适用于 Soap 测试步骤以及 MockResponse 测试步骤。 WS-Security: 用于检查最后收到的消息是否具有有效的 WS-Security 标头。 Mock 响应测试步骤仅支持它。 Schema Compliance: 架构合规性用于检查最后收到的 XML 消息是否遵循 WSDL 或 WADL 合规性定义。 SOAP 和 REST 测试步骤都使用架构合规性。 WS-Addressing Request: 用于验证最后提交的请求是否具有正确的 WS 寻址标头。 Mock 响应测试步骤仅支持它。 WS-Addressing Response: 用于验证最后收到的响应 XML 消息是否具有正确的 WS 地址标头。 Soap 请求测试步骤仅支持它。

脚本

Script Assertion: 脚本断言用于创建在响应 XML 文件中执行用户定义的验证规则的自定义脚本。

安全

Sensitive Information Exposure: 用于验证接收到的 XML 响应消息,不会向目标系统泄露敏感信息。

服务等级协议

Response SLA: 响应 SLA​​ 用于验证最后收到的消息的响应时间是否在指定的时间限制内。此外,可以使用脚本测试来实现 SLA,这些测试将脚本请求发送到服务器并接收响应。

JMS

JMS Status: 用于检查测试阶段的JMS请求是否已成功执行,对带有JMS端点的测试步骤有好处。实现它是为了使用 JMS 端点处理测试步骤请求。 JMS Timeout: JMS 超时用于验证 JMS 指定的测试步骤的描述所花费的时间不会超过指定的持续时间。

JDBC

JDBC Status: JDBC 状态用于验证指定测试步骤的请求在 SoapUI 测试工具中是否成功执行。它只能实现到 JDBC TestSteps。 JDBC Timeout: JDBC 超时用于验证指定测试步骤的 JDBC 语句花费的时间没有超过指定的时间限制。

包含断言

它用于搜索响应中存在的指定字符串XML 文件。此外,它还使用正则表达式来检查字符串或文本。
以下是创建包含断言的步骤:
第 1 步: 初始,断言选项卡中没有断言。因此,点击(+) 图标添加新断言,如下所示。
SoapUI Assertions
我们还可以在断言选项卡中检查添加的断言数量。
第 2 步: 从添加断言类别中选择适当的断言,例如属性内容 然后选择属性内容的类型,如Contains,如下图所示。
SoapUI Assertions
第 3 步: 点击添加按钮后,它会显示一个包含断言的弹出对话框。
SoapUI Assertions
指定我们想要与现有网络响应匹配的字符串或值。
第 4 步: 点击确定按钮后,它会将控制权转移给求和 窗口,如下图。
SoapUI Assertions
在上图中,包含 是有效,因为求和的响应与包含字符串匹配。如果包含无效,则显示错误消息。

Not-Contains Assertion

用于搜索不存在的指定Web 响应 xml 文件中的字符串或文本。以下是创建 Not-Contains Assertion 的步骤:
第 1 步: 要验证 Not-Contains Assertion,请点击(+)图标以添加新断言。
第 2 步: 选择属性内容,然后单击不包含断言,如下图。
SoapUI Assertions
第三步: 点击Add 按钮,显示NotContains Assertions 的弹出对话框。
SoapUI Assertions
步骤 4: 指定 Web 响应 XML 文件或求和请求中不存在的内容或字符串,然后单击 确定 按钮检查验证,如下图。
SoapUI Assertions
验证define statem ent 整数 A 是否存在。如果该语句存在,则显示错误消息,如果当前内容中不存在定义的字符串,则不包含的条件为VALID,如上图所示。

XPath Match Assertion

XPath 匹配用于从目标属性中选择特定内容,并将 XPath 表达式的结果与响应 xml 中的预期值进行匹配。
以下是验证 XPath 匹配断言的步骤:
第 1 步: 要验证 XPath 匹配断言,请单击(+) 图标以添加新断言。
步骤 2: 选择属性内容,然后单击 XPath 匹配 断言,如图所示
SoapUI Assertions
第3步: 点击 >Add 按钮,它显示 XPATH 窗口的配置。
SoapUI Assertions
第 4 步: 要在 XPath 匹配配置中声明 XML 命名空间,请单击填充两个 XML 名称的声明按钮XPath 中的空格,如下图。
SoapUI Assertions
这里是使用的命名空间的声明XPath 匹配:
declare namespace soap='http://www.w3.org/2003/05/soap-envelope';
declare namespace ns1='http://tempuri.org/';
    
步骤 5: 填充 XML 命名空间后,输入 XPATH 节点为 //ns1:AddResult,,用于搜索和验证 AddResult> & .
SoapUI Assertions
步骤 6: 在 XPath 表达式中添加 //ns1:AddResult 后,现在单击 从内容中选择,从当前响应中搜索一个值,如下所示。
SoapUI Assertions
第七步: 点击保存后按钮,它显示了下图,其中我们可以看到 VALID 的 XPath 匹配断言。
SoapUI Assertions

XQuery Match

XQuery匹配相似除了它使用 XQuery 表达式从目标响应代码中选择字符串并将 XQuery 表达式的结果与预期值进行比较之外。
以下是使用 XQuery 匹配断言的步骤.
第 1 步: 要验证 XQuery 匹配断言,请单击(+) 图标以添加新断言。
第 2 步: 选择 Property Content,然后单击 XQuery Match 断言,如下所示。
SoapUI Assertions
第 3 步: 点击添加按钮后,它显示XQuery Match 的配置。
SoapUI Assertions
第 4 步: 在 XQuery 匹配配置中声明 XML 命名空间,单击填充两个 XML 命名空间的声明按钮在 XQuery 中,如下所示。
SoapUI Assertions
这里是在XQuery 匹配:
declare namespace ns1='http://tempuri.org/';
declare namespace soap='http://www.w3.org/2003/05/soap-envelope';
    
步骤 5: 填充 XML 命名空间后,现在定义 XQuery 表达式,用于选择和检索与 XQuery 表达式匹配的值,如下所示:
以下是获取结果的查询结构。
<resultData>
{
for $x in //ns1:AddResult
return $x
}
</resultData>
    
SoapUI Assertions
第六步: 定义好表达式后,点击从当前选择按钮,从当前响应XML文件中检索并匹配内容,如下所示。
SoapUI Assertions
以下是从 XML 响应中检索数据。
<resultData>
  <AddResult xmlns="http://tempuri.org/" xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">20</AddResult>
</resultData>
    
第 7 步: 点击保存按钮后,显示下图,我们可以看到XQuery匹配断言VALID.
SoapUI Assertions
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4