目录

使用-soapUI-测试-REST-服务

使用 soapUI 测试 REST 服务

1、第一种方法:

2、第二种方法:如下文介绍

, 高级软件工程师, IBM , 软件工程师, IBM 2009 年 12 月 31 日 REST 作为一种针对 Web 应用的全新架构风格,近年变得越来越流行。soapUI 是一个对 Web 服务进行测试的开源工具, 它可以让开发人员直观的测试基于 SOAP 的 Web 服务, 随着新版本的推出,soapUI 也增加了对 REST 的支持。本文主要介绍如何利用 soapUI 对 REST 服务进行测试 REST 服务介绍 REST(Representational State Transfer)是 Roy Fielding 博士在 2000 年提出的一种新的软件架构风格,它以资源(resource)为核心,使用 HTTP、 URI、XML 以及 HTML 等现有流行协议和标准来完成对资源的操作及显示。 这些操作包括获取、创建、修改和删除资源,分别对应于 HTTP 协议的 GET、POST、PUT 和 DELETE 方法。REST 架构定义了以下设计准则: * 网络中的所有事物都被抽象为资源(resource)。 * 每个资源对应一个唯一的资源标识(resource identifier)。 * 通过通用的连接器接口(generic connector interface)对资源进行操作。 * 对资源的各种操作不会改变资源标识。 * 所有的操作都是无状态的(stateless)。 REST 服务(RESTful Service)是一种基于 HTTP 和 REST 准则的轻量级 Web 服务。这类服务可以看作一系列资源(resource)的集合,服务的定义可以视为以下三个切面的组合 : * 访问 Web Service 的 URI,如:http://example.com/resources。 * Web Service 所支持的数据 MIME 类型,如:JSON, XML, YAML 等。 * Web Service 使用 HTTP 协议支持的操作,如 GET, POST, PUT, DELETE。 相比目前流行的 Web 服务实现方案 SOAP 和 XML-RPC, REST 服务更加简洁,它可以完全通过 HTTP 协议实现,还可以利用缓存 Cache 来提高响应速度, 其性能,效率和易用性等方面均优于 SOAP 协议。 本文主要介绍如何使用 soapUI 来测试此类 Web 服务。soapUI 介绍 由于 Web 服务是被程序调用的, 一般不会提供界面让最终用户或测试人员直接使用,在 soapUI 等工具出现之前,测试人员不得不自己编写程序来测试它, 这就要求测试人员花费很大的精力了解底层的接口,调用关系和详细的协议,导致他们不能把注意力集中到测试中。 soapUI 的出现极大的改变了这一局面。 作为一个开源的工具,soapUI 强大的功能、易用的界面,吸引了很多用户。用户可以在 soapUI 中通过简单的操作完成复杂的测试,不需要了解底层的细节, 极大的减轻了工作量。soapUI 支持多样的测试, 例如功能测试,性能测试,回归测试等。到目前为止 soapUI 的下载量已经超过了 100 万次,成为了事实的 Web 服务测试标准和领先的 Web 服务测试工具。 它不仅仅可以测试基于 SOAP 的 Web 服务,也可以测试 REST 风格的 Web 服务,后者也是本文介绍的重点。 soapUI 基于 Java 开发,支持多个平台,安装非常简单。读者可以到 soapUI 的 下载一个安装包 ( 本文使用的是 Window 版本 3.0.1),直接安装即可。在该安装包中,包括了一个 soapUI 所需要的 JRE1.6 版本。安装完毕以后,读者需要设置 JAVA_HOME 变量指向到相应的 JRE 目录,同时修改 PATH 变量,将 JRE1.6 的 bin 目录添加进去。REST 服务案例 为了避免空洞的讲解,同时为了更好的展示 soapUI 对 REST 服务的测试功能,本文假想了一个在线书店 ( ) 的例子。该在线书店对外提供了一些 REST 服务让第三方的应用程序调用。 为了让读者把注意力集中在使用 soapUI 进行测试上,我们对这些 REST 服务进行了必要的简化,仅仅只包含下面 3 种功能:书籍列表,书籍详情和添加评论。这 3 个 REST 服务覆盖了层次状的 REST 资源、基本的 HTTP 操作和多种展现形式。服务名称HTTP 操作资源 URI资源展现注释