开始之前
Web 服务正逐渐成为业务应用程序中的关键组件。随着面向服务的体系结构(Service-Oriented Architecture,SOA)之类的新范式的出现,Web 服务越来越受到关注。在这些面向服务和服务关键型应用程序中,Web 服务测试具有相同的重要性。复杂 Web 服务的快速创建和部署对 QA 团队提出了一个挑战。实现 Web 服务测试的自动化,可帮助团队有效地管理此工作。
Web 服务测试通常包括以下任务:
- 为 Web 服务生成客户机或框架代码。
- 定义测试输入。
- 使用客户机或框架代码调用 Web 服务。
- 验证实际响应与预期响应是否相似。
在这些活动中,客户机或框架代码生成和响应验证需要进行的工作最多。
可以使用各种工具来基于 WSDL 文件为 Web 服务生成客户机或框架代码;不过,生成的代码可能为专用的,可能需要在每次 WSDL 发生更改的情况下重新生成。此问题的一个解决方法是,消除客户机或框架代码的生成工作,通过通用 HTTP 客户机直接调用 Web 服务。在本系列的后面,将看到 Apache Commons HttpClient(以下称为 HttpClient)API 所提供的这样一个工具。
类似地,响应验证通常涉及到某种手动干预,具体取决于响应内容的复杂性。如果响应包含简单元素,验证可以非常简单,因为只需要验证简单元素中的值即可。对于包含复杂元素和大量此类复杂元素的大型列表的响应,进行手动验证的工作量将会大得多。
本系列将介绍如何使用多项技术来自动化典型 Web 服务测试;此类技术包括 Junit、HttpClient 和 Apache XMLUnit(以下称为 XMLUnit)。将在 IBM Rational Software Architect 提供的开发平台上对此进行演示。
本系列目前已推出了三个部分:
- 第 1 部分说明如何使用 IBM Rational Software Architect 创建简单的 Web 服务。
- 第 2 部分介绍 XMLUnit,它提供了用于比较两个 XML 格式文件的 API。
- 第 3 部分(本教程)描述使用 HttpClient 和 XMLUnit(在第 2 部分进行了介绍)测试安全 Web 服务的步骤。
本教程的目标读者是对 Web 服务的功能测试感兴趣的测试人员和开发人员。开始学习本教程前,您需要对 Web 服务及 Java 开发有基本的了解,而且还应该对单元测试工具(如 JUnit)有一定的了解。
在本教程中,您将学习如何进行以下工作:
- 定义 Web 服务的安全性。
- 在 WebSphere® Application Server 上配置安全性。
- 验证 Web 服务的安全性。
- 使用 HttpClient 和 XMLUnit 测试 Web 服务。
开始学习本教程前,您需要对 Web 服务及 Java 开发有基本的了解,而且还应该对单元测试工具(如 JUnit)有一定的了解。
- Windows® 98、Windows XP、Windows 2000 或 Windows 2003
- IBM Rational Software Architect V6.x
- Apache JUnit V3.8.1
- Apache Commons HttpClient V3.0.1
- Apache Commons Codec V1.3
- Apache XMLUnit V1.0
请参见参考资料部分,其中提供了该软件的下载链接。

