以前在開發(fā)webservice服務(wù),都是自己基于HTTP協(xié)議,自己寫一個(gè)測(cè)試程序來(lái)進(jìn)行測(cè)試,最近在研究RestFul,對(duì)以前webservice服務(wù)進(jìn)行了重構(gòu),總結(jié)了不少經(jīng)驗(yàn),今天就給大家介紹下幾款Rest Client的測(cè)試工具。
REST介紹
所謂REST,是Representational State Transfer,這個(gè)詞匯的中文翻譯很不統(tǒng)一,而且很晦澀,有叫“具象狀態(tài)傳輸”,有叫“表象化狀態(tài)轉(zhuǎn)變”,等等。
REST風(fēng)格的Web服務(wù),是通過(guò)一個(gè)簡(jiǎn)潔清晰的URI來(lái)提供資源鏈接,客戶端通過(guò)對(duì)URI發(fā)送HTTP請(qǐng)求獲得這些資源,而獲取和處理資源的過(guò)程讓客戶端應(yīng)用的狀態(tài)發(fā)生改變(不像那些遠(yuǎn)程過(guò)程調(diào)用那么直接地發(fā)生改變)。
常用的對(duì)資源進(jìn)行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
網(wǎng)頁(yè)開發(fā)者輔助程序來(lái)創(chuàng)建和測(cè)試自定義HTTP請(qǐng)求。它是一款非常強(qiáng)大,使用簡(jiǎn)單的客戶端測(cè)試工具,得到了程序員的好評(píng)。每周超過(guò)50k的開發(fā)者使用此應(yīng)用程序。如此多的人是不會(huì)錯(cuò)的! 
支持的功能
- 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可以幫助你更有效的針對(duì)API工作。Postman是一個(gè)scratch-your-own-itch項(xiàng)目。它需要的是開發(fā)者有效的在項(xiàng)目中創(chuàng)建APIS,能夠?qū)PI測(cè)試進(jìn)行收藏保留。 
支持功能
- HTTP requests 支持文件上傳
- 格式化API響應(yīng)的JSON and XML
- 打開 responses 的HTML文件在一個(gè)新窗口展示
- 支持REST準(zhǔn)則的超媒體應(yīng)用狀態(tài)的引擎- HATEOS
- 圖像預(yù)覽
- Request history
- 基本oauth 1.0助手
- Autocomplete for URL and header values
- 可以在URL參數(shù)中使用 key/value編輯添加參數(shù)或header值
- 使用環(huán)境變量容易轉(zhuǎn)移之間設(shè)置。可用于測(cè)試,生產(chǎn),分期或本地設(shè)置。
- 使用全局變量的值是在整個(gè) APIs
- 使用快速查找功能預(yù)覽變量和它們的值使用狀況
- 鍵盤快捷方式,最大限度地提高您的生產(chǎn)力
Simple REST Client
Simple REST Client插件,提供了一個(gè)簡(jiǎn)單的表單進(jìn)行各種HTTP操作,并可以看到返回的信息。構(gòu)建自定義HTTP請(qǐng)求直接測(cè)試您的網(wǎng)絡(luò)服務(wù)。 
Firefox下的RESTClient
FirefoxRESTClient的插件,這款插件由國(guó)人開發(fā),功能上支持Basic和OAuth的登錄header發(fā)送,并且對(duì)于返回的XML數(shù)據(jù)還可以高亮顯示

Linux常用的工具CURL
CURL是一個(gè)很強(qiáng)大的支持各種協(xié)議的文件傳輸工具,用它來(lái)進(jìn)行RESTful Web Services的測(cè)試簡(jiǎn)直是小菜一碟。
CURL的命令參數(shù)非常多,一般用于RESTful Web Services測(cè)試要用到下面四種參數(shù):
- -d/–data :POST數(shù)據(jù)內(nèi)容
- -X/–request :指定請(qǐng)求的方法(使用-d時(shí)就自動(dòng)設(shè)為POST了)
- -H/–header
:設(shè)定header信息
- -I/–head:只顯示返回的HTTP頭信息
Java GUI rest-client
這是一個(gè)用Java寫的測(cè)試小工具,項(xiàng)目主頁(yè)上提到它有命令行和GUI兩種版本。為了方便操作我們選擇GUI版本來(lái)看看。既然是一款軟件,顯然就比剛才介紹的瀏覽器插件功能更加強(qiáng)大。它支持應(yīng)答正文的JSON和XML縮排和高亮,還可以一鍵搭建一個(gè)RESTful服務(wù)端,另外還提供了單元測(cè)試的功能。

格式化JSON數(shù)據(jù)