以前在开发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中可以搜索到自己想要的插件。这里就讲讲,,,,火狐下的。
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
,提供了一个简单的表单进行各种http操作,并可以看到返回的信息。构建自定义http请求直接测试您的网络服务。
firefox下的restclient
firefox的插件,这款插件由国人开发,功能上支持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数据