如何在测试中创建测试套件和测试用例 SoapUI

⚡ 智能摘要

创建 SoapUI 项目、测试套件和测试用例实现了结构化的 SOAP Web 服务测试。本演练将讲解 SOAP 协议基础知识、WSDL 导入、请求执行、断言设置以及响应日志分析,以实现可靠的功能测试和回归测试。

  • 🧠 SOAP Foundation: SOAP 是一种基于 XML 的、平台无关的协议,通过 HTTP 传输,用于在不同的系统之间交换消息。
  • 📁 项目创建: 将 WSDL 导入到新文件中 SoapUI SOAP 项目旨在为每个操作自动生成示例请求。
  • 🗂️ 测试套件设置: 右键单击项目根目录,添加测试套件,将相关的测试用例分组以便有序执行。
  • 🧪 测试用例步骤: 添加 SOAP 请求步骤,选择目标操作,并配置标准断言,例如架构合规性和 SOAP 故障检查。
  • 📊 响应检查: 使用 RAW 选项卡和日志窗格(SoapUI 日志(HTTP 日志、错误日志、内存日志)用于验证 HTTP 状态代码并排查请求故障。

如何在测试中创建测试套件和测试用例 SoapUI

了解 SOAP 协议

在创建一个之前 SoapUI 测试用例:回顾 SOAP 协议的基础知识很有帮助。清楚地了解 SOAP 请求和响应如何在系统之间传递,可以更轻松地使用它。 SoapUI 为了有效地测试它们。

肥皂代表 简单对象访问协议以下是 SOAP 协议的核心属性:

  • 它是一种基于 XML 的协议,用于在两个不同的系统之间进行通信。
  • 它与平台和语言无关。这是一个使用以下方式开发的系统: Java 可以与用 .NET 开发的程序进行通信。
  • SOAP 请求和响应通过 HTTP 传输。

了解 SOAP 消息格式

SOAP消息是一个普通的XML文档,包含以下元素。消息可以是请求,也可以是响应。

SOAP 消息格式
SOAP 消息格式

在掌握了 SOAP 基础知识之后,下一步是构建…… SoapUI 项目结构、测试套件和测试用例是验证给定 Web 服务所必需的。以下演练将使用…… SoapUI 项目示例:创建一个新的 SOAP 项目。

创建 SOAP 项目 SoapUI

SOAP 项目包含导入的 WSDL 定义以及每个操作生成的所有示例请求。

第三步: 根据项目类型,导入 SOAP 或 REST 协议。在本例中,创建一个新的 SOAP 项目。

创建新的 SOAP 项目

第三步: 请使用以下 SOAP 请求 URL: http://www.dneonline.com/calculator.asmx?wsdl

  1. 请输入项目名称。
  2. 输入 WSDL 请求的路径(在本例中为 http://www.dneonline.com/calculator.asmx?wsdl)。
  3. 点击 OK.

输入 SOAP 项目名称和 WSDL 路径

注意:

  • 创建所有操作的示例请求: 为 WSDL 中的每个操作生成一个示例请求。默认情况下,输入 WSDL 地址时启用此功能;如果不需要,可以取消选中。
  • 为导入的 WSDL 创建测试套件: 添加一个 SoapUI 项目内针对导入的 WSDL 的测试套件。
  • 相对路径: 将所有文件保存到项目文件之后,以便于移植。

第三步: 使用上述 WSDL 创建 SOAP 项目后,将两个操作导入到项目中。

导入的 SOAP 项目 Opera系统蒸发散

第三步: 展开第一个请求,右键单击 添加,然后点击 新请求.

向 SOAP 项目添加新请求

然后点击 OKSOAP 请求以 XML 格式显示。

SOAP 请求 XML 格式

  1. 输入值 intAintB.
  2. 点击 提交表单 按钮。
  3. 响应 XML 显示在右侧窗格中。

提交 SOAP 请求并查看响应

为什么创建测试用例而不是直接发送请求?

可以直接发送单个操作的请求,但当需要测试多个输入组合时,这种方法很快就会遇到瓶颈。例如,从 5+5 切换到 4+4 每次都需要修改请求。而使用包含测试用例的测试套件,可以在不更改原始操作的情况下,保持每个场景的可重用性。

如何在……中创建测试套件 SoapUI

测试套件是一个包含相关测试用例的容器。请按照以下步骤创建测试套件。

步骤 1)右键单击项目根目录。

在项目中,右键单击项目根目录,创建测试套件。

在“创建测试套件”中 SoapUI - 右键单击​​项目

步骤 2)输入测试套件详细信息。

输入测试套件名称并单击 OK.

输入测试套件名称

步骤 3)验证创建的测试套件。

新的测试套件将显示在导航窗格中,如下图所示。

验证已创建的测试套件

步骤 4)打开测试套件。

测试套件窗口在右侧窗格中打开。由于目前还没有任何测试用例,所有操作选项均处于禁用状态。

打开空白测试套件窗口

如何在……中创建测试用例 SoapUI

测试用例存在于测试套件中,并将用于测试 Web 服务的各个测试步骤分组在一起。

第三步: 在测试套件中,右键单击测试套件并选择“创建多个测试”即可创建多个测试。 新测试用例.

创建新的测试用例 SoapUI

第三步: 指定名称 测试用例 并点击 OK.

输入测试用例名称

第三步: 创建的测试用例最初没有步骤,如下所示。

零步骤测试用例

注意: 添加测试用例时,每种测试类型都包含零个测试步骤。随着步骤的增加,括号内的数字会自动更新。

功能测试步骤属于 测试步骤执行步骤进入 负载测试安全检查就位于 安全测试.

第三步: 右键单击即可插入不同的测试步骤类型 测试步骤 并选择相应的选项。对于 REST Web 服务,请选择 REST 测试请求,而不是 SOAP 请求。

插入测试步骤类型

添加测试步骤 SoapUI

在测试用例中添加一个测试步骤,以验证导入的 SOAP 请求。

第三步: 添加一个新的步骤 SOAP 请求 如下所示。

添加 SOAP 请求测试步骤

第三步: 输入步骤名称并单击 OK.

输入测试步骤名称

第三步: 此时会弹出一个对话框,供用户选择要执行的操作。所有可用的操作都会列出供用户选择。

  • 这里出现了许多操作。除了 SOAP 版本不同之外,这些操作都相同:CalculatorSoap 使用 SOAP 版本 1.1,而 CalculatorSoap12 使用 SOAP 版本 1.2。
  • 在这种情况下,版本并不重要,所以两者都可以选择。

    选择 SOAP Opera调用

  • 选择操作后,单击 OK.

    确认 Opera选择

第三步: 添加测试用例时,可以应用标准断言。断言(也称为检查点或验证点)将在下一教程中介绍。

创建测试用例时可以添加以下检查点。以下示例创建了一个未启用任何验证点的测试用例。

标准版 SoapUI 断言

  1. 测试运行后,验证响应消息是否为 SOAP 格式。
  2. 验证响应模式是否有效。
  3. 验证 SOAP 响应是否包含 FAULT 元素。

第三步: 创建测试用例时,请求 XML 如下所示。XML 的结构在截图中进行了说明。

请求 XML 结构

第三步: 由于新增了一个测试步骤,测试步骤计数现在加一。添加负载测试和安全测试步骤后,相应的计数器将自动递增。

测试步骤计数器递增

手动发送请求并读取响应 SoapUI

第三步: 下面的例子将两个整数相加。

  • intA — 5
  • intB — 5

下一篇:

  1. 请将以下内容替换请求 XML 中的问号。
  2. 更新相应的 XML 标签后,单击 提交申请 检查响应。

手动发送包含 intA 和 intB 的请求

第三步: 请求提交后,Web 服务器会处理该 Web 服务并返回响应,如下所示。

回答证实 5 加 5 等于 10。

SOAP 响应显示加法结果

了解 SOAP 响应和日志面板

如前所述,SOAP 消息通过 HTTP 传输。检查原始消息有助于了解 SOAP 请求和响应是如何通过 HTTP 传递的。

第三步: 点击 RAW 选项​​卡中 SoapUI 请求窗口。

  1. 请求通过 POST 方法发送到 Web 服务器。
  2. SOAP 请求包含在 HTTP 消息的正文中。

SOAP 请求 RAW 选项卡

第三步: 现在点击 RAW 选项​​卡中 SoapUI 响应窗口用于了解响应是如何通过 HTTP 传递的。

  1. 请求处理完毕后,将显示 HTTP 响应代码 (200),表示成功。
  2. SOAP 响应以 HTTP 消息正文的形式返回给客户端。

SOAP 响应 RAW 选项卡,HTTP 200

下表总结了常见的 HTTP 响应代码,以便快速调试。

HTTP Code 描述
1xx 信息性: 请求已收到,正在处理中。
2xx 成功: 行动已成功接收、理解和接受。
3xx 重定向: 还需要采取进一步措施才能完成请求。
4xx 客户端错误: 请求包含错误语法或无法满足。
5xx 服务器错误: 服务器未能处理看似有效的请求。

第三步: 测试用例窗口还会显示请求和响应的其他元数据。

测试用例窗口元数据

  1. 表示发送的请求中没有标头。
  2. 表示发送到 Web 服务器的请求中不包含任何附件。
  3. 表示响应中包含 10 个标题项,点击即可查看。
  4. 表示回复邮件中没有附件。

日志窗格

日志窗格显示客户端和服务器之间交换的完整信息。下面介绍最常用的日志选项卡。

SoapUI 日志窗格选项卡

SoapUI 日志: 显示来自 Web 服务器的响应信息。相同的数据存储在 soapui.log 文件中。 SoapUI bin 目录。

SoapUI 日志标签

HTTP 日志: 显示所有HTTP数据包传输。RAW视图中显示的所有信息也会记录在HTTP日志中。

HTTP 日志选项卡

错误日志: 显示整个项目会话期间遇到的所有错误。相同的信息存储在 soapui-errors.log 文件中。 SoapUI bin 目录。

内存日志: 监控内存消耗并以图表形式显示。这在运行内存密集型操作时非常有用。

内存日志标签页

测试套件、测试用例和测试步骤都已就绪,并且收到了成功的响应,下一步就是验证响应。断言类型将在下一篇教程中介绍。

常见问题

测试套件是一个容器,它将相关的测试用例分组在一个容器内。 SoapUI 项目。测试用例是包含一个或多个测试步骤(例如 SOAP 请求、REST 请求或断言)的单个场景。

是的。 SoapUI 支持 SOAP 和 REST 测试。创建新项目时,对于基于 WSDL 的服务,请选择“新建 SOAP 项目”;对于 REST API,请选择“新建 REST 项目”。测试步骤包括 REST 测试请求、JDBC 请求等。 Groovy 脚本。

打开测试套件,然后点击绿色的播放按钮。 SoapUI 测试用例将按顺序运行。您也可以在“测试套件属性”选项卡下配置并行或顺序执行。

是的。可以使用“属性”步骤、“属性传输”步骤或“数据源”步骤(SoapUI Pro)允许通过同一个测试用例驱动多个输入。这对于跨多种输入组合的数据驱动测试非常有用。

AI 助手可以读取 WSDL 或 OpenAPI 规范,并建议符合实际的输入组合、边界情况和断言模式。这些建议可以导出为 SoapUI XML 或 Groovy 脚本可以减少构建大型测试套件时的人工工作量。

是的。人工智能工具可以解析 SoapUI 日志和 HTTP 日志条目会将重复出现的错误集中起来,并突出显示可能的根本原因,例如模式不匹配或身份验证失败。这有助于加快回归测试周期和大型夜间运行期间的问题排查速度。

总结一下这篇文章: