SOA 回归测试简介:实践方法





0/5 (0投票)
通过自动化数据源和记录基线测试来学习 SOA 回归测试技术。
一、引言
“回归”意味着倒退。软件回归测试是指识别由于更改程序模块而可能引入的意外错误或缺陷的方法。程序模块因不再像以前一样工作而“回归”。软件开发是一个迭代过程,开发人员团队不断修改程序模块以满足不断变化的系统需求。典型的具有 *N* 个模块的软件系统具有 *N2* 个依赖项。修改模块中引入的缺陷可能会对整个系统产生重大影响。
回归测试有助于识别选定产品版本与产品先前版本(称为基线)之间的变化。基线是可取产品行为的记录快照。然后使用此预期行为来确保由于程序模块中引入的更改而没有破坏系统中的任何内容。建立回归测试框架对于构建可靠和稳定的软件产品至关重要。
Web 服务——现代面向服务架构 (SOA) 的基础——是自包含的、模块化的应用程序,可以通过网络进行描述、发布、查找和调用。Web 服务与操作系统、硬件平台、通信协议或编程语言无关。大多数 IT 资产,如应用服务器、RDBMS、CRM/ERP 应用程序和 SaaS 产品,现在都将其接口发布为 Web 服务描述语言 (WSDL) 接口,可用于 SOAP/XML 消息传递。通过使用 SOAP 进行系统到系统消息传递和 WSDL 进行接口描述,IT 专业人员现在在跨企业域集成 IT 资产方面拥有前所未有的灵活性。正是 Web 服务提供的分布式计算的这种灵活性使得开发和部署一个健壮、弹性且可靠的面向服务架构变得具有挑战性。
质量保证专业人员在对面向服务架构执行回归测试时面临独特的挑战。面向服务架构的基本优势是跨分布式、技术无关基础设施的服务重用。在成功的 SOA 部署中,服务的数量和重用应持续增加。随着 SOA 中服务数量及其重用量的增加,由于分布式环境中服务的相互依赖性,测试服务的难度急剧增加。如果其中一个服务的预期行为发生变化,所有依赖服务都将表现出错误行为。因此,SOA 架构师、开发人员和质量保证专业人员现在负责调整其测试技术,选择合适的测试工具并开发 Web 服务领域专业知识,以使其 SOA 部署可靠、安全地交付业务价值。
在本文中,我们将通过实践方法描述 SOA 回归测试技术,该方法将引导您了解
- 设置简单的 Web 服务消费者(客户端)和生产者(服务器)环境。
- 建立外部 MS Excel 数据源以驱动测试场景。
- 记录可接受的基线运行。
- 通过更改生产者服务来模拟回归。
- 重新运行外部测试数据并识别生产者服务回归。
完成以下动手实践后,质量保证专业人员、开发人员和架构师将在其面向服务架构中建立和扩展回归测试套件方面打下坚实的基础。
二、设置概览
为了动手理解 SOA 回归测试,我们首先将构建一个包含四个操作的简单 Web 服务,例如 *Multiply*、*Divide*、*Echo* 和 *Concat*。首先,下载以下组件:
- Microsoft .NET WebMatrix:此安装程序包括用于构建 Web 服务的 IDE 和轻量级 Web 服务器。下载并安装 WebMatrix。
- Web 服务文件:解压此文件。它包含 *SampleWS.asmx*,将使用 .NET WebMatrix 打开。
- Crosscheck Networks SOAPSonar Enterprise Edition: 下载并安装 SOAPSonar,这是一个基于 .NET 的 SOAP 客户端,用于全面的 Web 服务测试。
组件可以安装在具有适中资源的 Windows 2000/XP/2003/Vista 机器上。下图显示了一个典型的 Web 服务部署,具有消费者-生产者交互模型。生产者是 .NET WebMatrix 服务器,它提供了一个具有四个操作(*Multiply*、*Divide*、*Echo*、*Concat*)的 Web 服务,应用程序可以调用,通常是通过 HTTP(S) 远程调用。此外,它还生成定义 Web 服务接口的 WSDL 文件。此文件为消费者 SOAPSonar 提供了所有必要信息,以便向目标 Web 服务发送 SOAP 请求。SOAPSonar 消费并解释生产者发布的基于 WSDL 的 API,并调用 Web 服务。
三、构建一个简单的 Web 服务
按照以下步骤构建您的第一个 Web 服务
- 转到:*开始 > 所有程序 > Microsoft ASP .NET Web Matrix > ASP .NET Web Matrix*。
- 将弹出一个屏幕。点击取消。
- 转到:*文件 > 打开文件* 并选择 *SampleWS.asmx*。您将看到以下 C# 代码
- 点击 IDE 中的 *开始* 按钮,如下图所示
- 系统将提示您在端口 8080 上启动 Web 应用程序(如果提示使用不同的端口,请更改为端口 8080)。确保您的本地防火墙已关闭。
- 将出现一个带有操作列表的 Web 浏览器。您可以单击操作名称并开始试验您的第一个 Web 服务。
四、设置测试客户端
要设置测试客户端,请执行以下步骤
- 将发布在 .NET WebMatrix 端点 https://:8080/SampleWS.asmx?WSDL 的 WSDL 加载到 SOAPSonar 中,如下图所示。单击
提交更改,然后单击
执行测试。您将在 *响应* 面板中看到 SOAP 响应,如下图所示。
- 通过转到 *文件 > 另存为项目* 保存项目。
WSDL 加载到测试客户端 SOAPSonar 后,您现在拥有一个简单的消费者 (SOAPSonar) 到生产者 (webMatrix) 框架设置,可以执行全面的 SOA 测试。
五、自动化数据输入
当涉及大量输入值时,为 SOAP 消息输入值可能是一项手动任务。通过使用包含输入值的外部数据源,如 RDBMS、Excel 电子表格或平面文件,可以自动化手动任务。在本节中,我们将开发一个使用外部 Excel 数据源的测试套件。
在开始本实验之前,用户应确保将 SOAPSonar 切换到 QA 模式。这可以通过选择 SOAPSonar 左上角的模式菜单来完成。
- 创建并填充一个 Excel 电子表格 *TestData.xls*,第一行标记为 *A* 和 *B*。在此电子表格中填充值。示例如下所示。
- 在项目树的配置节点下,选择数据源,如下图所示。选择 *添加新的自动化数据源 > Excel 数据源*。浏览到 *TestData.xls* 并单击
提交更改。验证 Excel 电子表格是否已正确加载,单击下方屏幕上的
图标。电子表格的数据内容将弹出,其中包含来自电子表格的 *A* 和 *B* 值。
- 对于 *Multiply* 操作,从自动化数据源 (ADS) 填充测试套件 *Multiply_1* 变量 *A* 和 *B*。通过单击输入字段 *A* 和 *B* 旁边的
弹出 ADS 对话框,如下图所示。一旦您选择 ADS 变量作为 Multiply_1 的输入,每个字段将出现以 *$ads:* 开头的唯一数据源引用 ID。单击
提交。
- 转到 *运行视图* 并将 Mutliply_1 测试套件拖放到默认组下,如下图所示。单击
提交。单击
运行测试用例。测试套件执行后,单击 *查看详细日志结果*。我们的电子表格中有九对 *A, B*,测试用例迭代所有九个值并按预期相乘输入。
- 从电子表格 *TestData.xls* 中删除一行。重新运行测试用例。现在测试套件运行八次。
测试人员可以通过简单地指向数据源(如 Excel 电子表格或 RDBMS)来生成全面的测试套件值。这消除了手动输入测试用例值的需要。您现在应该已经熟悉使用外部数据源自动化测试套件。
六、SOA 回归测试
一旦 SOA 测试人员构建了自动化测试套件,下一步是确定目标 Web 服务操作是否按预期运行。接着记录操作的基线响应集,然后定期运行测试套件以确保 Web 服务操作没有回归。在本节中,我们将记录基线回归响应,修改 Web 服务代码,然后重新运行测试套件以突出显示目标 Web 服务回归问题。
- 转到 *运行视图*,然后单击 *生成新的回归基线响应集*,如下图所示。
- 选择默认值 *整个文档的 XML Diff* 作为基线成功标准,如下图所示。这将运行 Excel 数据源并将响应值记录为基线。在 *测试套件回归基线编辑器* 中查看基线值,然后按 *确定* 继续。
- 在 Microsoft ASP.NET Web Matrix 中,将 Multiply 操作更改为新操作,例如 *a * b * 2*。这模拟了现在应该由记录的回归响应集检测到的操作更改。操作更改如下所示。更改操作后务必保存文件。
- 在 SOAPSonar 中,在运行视图下,更改套件设置,选择 *使用保存的回归基线成功标准* 单选按钮,如下图所示。
- 通过单击
重新运行测试套件。由于新操作 Multiply 的操作是 *a * b * 2* 而不是原始操作 *a * b*,所有响应都失败了,因为返回值是基线 Multiply 返回值的两倍。
在实时运行监视器上单击 *查看详细日志结果*。所有测试都显示测试结果为 *失败*,表明目标 Web 服务引入了系统性回归问题。因此,Web 服务操作 *Multiply* 已经回归。
七、结论
基于 Web 服务的 SOA 的前景在于跨分布式环境的可重用性。Web 服务开发的简易性以及服务之间的相互依赖性给 SOA 测试人员带来了沉重负担,以确保 Web 服务健壮、可靠、安全和可扩展。严格的回归测试对于确保 Web 服务在整个 SOA 生命周期中按预期运行至关重要。通过协作、对 Web 服务技术的日益了解以及全面的 SOA 回归框架、复杂的 SOA 测试工具,SOA 团队可以确保在企业内部部署高质量的服务。
八、关于 Crosscheck Networks
Crosscheck Networks 专注于提供用于 **SOA 测试** 的产品。Crosscheck 的旗舰产品 **SOAPSonar** 减轻了测试 Web 服务的痛苦。它提供了全面的无代码 Web 服务测试和直观的界面。简单的导航、拖放 WSDL 加载、拖放测试套件管理、复杂的 WSDL 支持(WSDL 和 XSD 导入)以及复杂的性能技术使其易于验证您的 Web 服务。SOAPSonar 在 SOA 测试的四大支柱方面提供全面的测试:功能回归、性能测试、互操作性一致性和漏洞评估。