以前在开发webservice服务,都是自己基于HTTP协议,自己写一个测试程序来进行测试,最近在研究RestFul,对以前webservice服务进行了重构,总结了不少经验,今天就给大家介绍下几款Rest Client的测试工具。
REST介绍
所谓REST,是Representational State Transfer,这个词汇的中文翻译很不统一,而且很晦涩,有叫“具象状态传输”,有叫“表象化状态转变”,等等。
REST风格的Web服务,是通过一个简洁清晰的URI来提供资源链接,客户端通过对URI发送HTTP请求获得这些资源,而获取和处理资源的过程让客户端应用的状态发生改变(不像那些远程过程调用那么直接地发生改变)。
常用的对资源进行CRUD(Create, Read, Update 和 Delete)的四种HTTP方法分别是POST, GET, PUT, DELETE。
基于浏览器的Rest Client工具
在chrome或者firefox浏览器都有很多插件,我一般都是使用chrome浏览器,在chrome的webstore中可以搜索到自己想要的插件。这里就讲讲Advance REST Client,Postman-REST Client,DEV HTTP CLIENT,Simple REST Client,火狐下的RESTClient插件。
Advanced REST client
网页开发者辅助程序来创建和测试自定义HTTP请求。它是一款非常强大,使用简单的客户端测试工具,得到了程序员的好评。每周超过50k的开发者使用此应用程序。如此多的人是不会错的!
支持的功能
- Make a HTTP request (via XmlHttpRequest level 2)
- Debug socket (via web socket API).
- JSON response viewer
- XML response viewer
- set custom headers - even does not supported by XmlHttpRequest object
- help with filling HTTP headers (hint + code completion)
- add headers list as raw data or via form
- construct POST or PUT body via raw input, form or send file(s) with request
- set custom form encoding
- remember latest request (save current form state and restore on load)
- save (Ctrl+S) and open (Ctrl+O) saved request forms
- history support
- data import/export
Postman -REST client
Postman可以帮助你更有效的针对API工作。Postman是一个scratch-your-own-itch项目。它需要的是开发者有效的在项目中创建APIS,能够对API测试进行收藏保留。
支持功能
- HTTP requests 支持文件上传
- 格式化API响应的JSON and XML
- 打开 responses 的HTML文件在一个新窗口展示
- 支持REST准则的超媒体应用状态的引擎- HATEOS
- 图像预览
- Request history
- 基本oauth 1.0助手
- Autocomplete for URL and header values
- 可以在URL参数中使用 key/value编辑添加参数或header值
- 使用环境变量容易转移之间设置。可用于测试,生产,分期或本地设置。
- 使用全局变量的值是在整个 APIs
- 使用快速查找功能预览变量和它们的值使用状况
- 键盘快捷方式,最大限度地提高您的生产力
Simple REST Client
Simple REST Client插件,提供了一个简单的表单进行各种HTTP操作,并可以看到返回的信息。构建自定义HTTP请求直接测试您的网络服务。
Firefox下的RESTClient
FirefoxRESTClient的插件,这款插件由国人开发,功能上支持Basic和OAuth的登录header发送,并且对于返回的XML数据还可以高亮显示
Linux常用的工具CURL
CURL是一个很强大的支持各种协议的文件传输工具,用它来进行RESTful Web Services的测试简直是小菜一碟。
CURL的命令参数非常多,一般用于RESTful Web Services测试要用到下面四种参数:
- -d/–data :POST数据内容
- -X/–request :指定请求的方法(使用-d时就自动设为POST了)
- -H/–header
:设定header信息
- -I/–head:只显示返回的HTTP头信息
Java GUI rest-client
这是一个用Java写的测试小工具,项目主页上提到它有命令行和GUI两种版本。为了方便操作我们选择GUI版本来看看。既然是一款软件,显然就比刚才介绍的浏览器插件功能更加强大。它支持应答正文的JSON和XML缩排和高亮,还可以一键搭建一个RESTful服务端,另外还提供了单元测试的功能。
格式化JSON数据