两款 REST 测试工具

用CURL命令行测试REST API 无疑是低效率的,这里把最近使用的两款 Chrome 插件总结下

  • POSTMAN

    • 简单易用
  • REST Console

    • 功能强大

使用的话用POSTMAN就够用了,但是我更喜欢 REST Console ,因为她的功能非常强大和全面,一下子就能让你搞清楚你在做的事情,你用不到的功能也可以帮助你更加了解 REST, http请求的过程。

下面是两个的截图界面

1. POSTMAN 测试工具

1. Authorization

  • Basic Auth
  • Digest Auth
  • OAuth 1.0

2. REQUEST METHOD

GET, PUT, POST, PATCH, DELETE, LINK, UNLINK, COPY, HEAD, OPTIONS, PURGE

3. Request Headers

Content-Type:

  • form-data
  • x-www-form-urlencoded
  • raw
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryVQuD0ghtRqDehBQH
Request Payload: ------WebKitFormBoundaryVQuD0ghtRqDehBQH
Content-Disposition: form-data; name="image" dddddd
------WebKitFormBoundaryVQuD0ghtRqDehBQH--
Content-Type:application/x-www-form-urlencoded

Form Data:
image:bbbbbbb
Content-Type:text/plain;charset=UTF-8
Request Payload: image=aaaaaaaaaaaaaa

这3种方法其中 form-data 是不支持 PUT 方法的。而用REST Console中的 Content-Type:multpart/form-data 是支持 PUT 方法的。不知道是不是bug

4. Response Body

支持3种展示方式, 以及常用的XML和JSON格式。

  • Pretty
  • Raw
  • Preview
  • JSON/XML

5. Response Header

Connection →
Connection
Options that are desired for the connection Keep-Alive
Content-Length →93
Content-Type →application/json; charset=UTF-8
Date →Fri, 01 Aug 2014 05:41:56 GMT
Keep-Alive →timeout=5, max=100
Server →Apache/2.2.9 (Win32) PHP/5.4.30 mod_fcgid/2.3.6
X-Powered-By →PHP/5.4.30

2. REST Console 测试工具

1. Options

软件相关设置,配色,主题,高亮设置等(说明这个东东功能比较全面)

特别说下一个选项就是 Help Lines, 开启这个选项,对着 REST Console的每一个选项,就很容易搞清楚 http 的 请求和响应中的每一个项目是怎么回事

原创文章,转载请注明 : http://www.cnblogs.com/ganiks/

2. Target

设置下面内容:

  • Target

    • Request URI : 这个是请求的 URI
    • Request Method : PUT POST ...
    • Request Timeout
  • Accept

    • Accept: (注意区分这个type和后面的content-type)

      • */*(一般都是这个选项)
      • application/atom+xml
      • test/plain
      • application/javascript
      • application/json
      • application/http
      • application/pdf
      • application/rar
      • ... ...
    • Acceptable Language

3. Body

  • Content Headers

    • Content-Type: mime type of the request body(跟PUT和POST方法配合使用)

      • application/x-www-form-urlencoded
      • text/plain
      • multipart/form-data
      • 这3种是在 POSTMAN中支持的3种,但其实有很多很多种,在 REST Console 中的输入框中输入几个字母,会自动匹配库中的很多选项
    • Acceptable Encoding: 比如 utf-8(参考 HTTP compression)
    • Content-MD5: 比如 Q2hlY2sgSW50ZWdyaXR5IQ==
  • Request Payload

    • RAW BODY: image=ccccccccc
    • Request Params: key=>value
    • Attachements: upload files
  • Custom Headers

    • Request Parameters

对照个例子:

Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4
Authorization:Basic MTAwLXRva2VuOg==
Cache-Control:no-cache
Connection:keep-alive
Content-Length:20
Content-Type:text/plain;charset=UTF-8
Host:192.168.4.126
Origin:chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36

4. Authorization

  • Basic Auth
  • Setup oAuth
  • Refresh oAuth

5. Headers

  • Headers

    • Max-Forwards: 10 (限制消息可以穿破 的代理和网关的层数)
    • Range
    • From: (发送消息者的邮件地址)
    • Warning
    • Pragma
    • ...
  • Cache (内容太多了)
  • Common non-standard request headers

6. Response

  • Response Body: 支持 JSON XML HTML CSS 等高亮格式

    {
    "id": "162",
    "image": "cccccccc",
    "link": "dd2",
    "show_date": "0000-00-00",
    "state": 1,
    "show_order": 0
    }
  • RAW Body

    {"id":"162","image":"cccccccc","link":"dd2","show_date":"0000-00-00","state":1,"show_order":0}
  • Response Headers

    Status Code: 200
    Date: Fri, 01 Aug 2014 06:39:00 GMT
    Server: Apache/2.2.9 (Win32) PHP/5.4.30 mod_fcgid/2.3.6
    Connection: Keep-Alive
    X-Powered-By: PHP/5.4.30
    Content-Length: 94
    Keep-Alive: timeout=5, max=100
    Content-Type: application/json; charset=UTF-8
  • Response Preview
  • Request Body

    Request Url: http://192.168.4.126/news/162
    Request Method: PUT
    Status Code: 200
    Params: {}
  • Request Headers

    Content-Type: multipart/form-data
    Authorization: Basic MTAwLXRva2VuOg==
    Accept: */*
    Connection: keep-alive
    Origin: chrome-extension: //rest-console-id
    User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36

3. http请求的Accept参数

上面提到了一个设置的地方, Accept 和 Content-Type

这两个参数很重要

前者一般如果不设置默认的是 */*, POSTMAN 和 RESTConsole 工具中默认的是 application/json,因此在不设置 Headers:Accept 参数的情况下返回的按照 json格式;
而普通的浏览器中返回的则默认是 application/xml 格式。

后者这个 type 指的是head body 内容的 类型

这就是为什么这两个参数分别被 REST Console 工具分别放在了 2. Target 3. Body 中。

在 yii 中默认支持的 rest api 格式有 xml 和 JSON, yii 会根据 请求的 head 的 Accept 参数来返回对应格式的数据。

这个参数 在chrome 中可以修改默认值吗?

 
分类: 工具软件
标签: resthttp

REST 测试工具的更多相关文章

  1. 渗透测试工具BurpSuite做网站的安全测试(基础版)

    渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...

  2. linux压力测试工具stress

    最近给PASS平台添加autoscaling的功能,根据服务器的负载情况autoscaling,为了测试这项功能用到了stress这个压力测试工具,这个工具相当好用了.具体安装方式就不说了.记录下这个 ...

  3. [.NET] WebApi 生成帮助文档及顺便自动创建简单的测试工具

    ==========最终的效果图========== ==========下面开始干活:生成帮助文档========== 一.创建 WebApi 项目 二.找到 HelpPageConfig.cs 并 ...

  4. RabbitMQ调试与测试工具-v1.0.1 -提供下载测试与使用

    最近几天在看RabbitMQ,所以发了两天时间写了一个调试和测试工具.方便使用. 下载地址:RabbitMQTool-V1.0.1.zip

  5. HTTP压力测试工具

    HttpTest4Net是一款基于C#实现的和HTTP压力测试工具,通过工具可以简单地对HTTP服务进行一个压力测试.虽然VS.NET也集成了压力测试项目,但由于VS自身占用的资源导致了在配置不高的P ...

  6. 微软压力测试工具 web application stress

    转自 http://www.cnblogs.com/tonykan/p/3514749.html lbimba  铜牌会员 这里给广大的煤油推荐一个web网站压力测试工具.它可以用来模拟多个用户操作网 ...

  7. WebService如何调试及测试工具

    http://www.cnblogs.com/zfanlong1314/archive/2012/04/06/2434788.html 通常,我们在Visual Studio里调试ASP.NET网站, ...

  8. Android高手速成--第四部分 开发工具及测试工具

    第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson ...

  9. Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

    一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...

  10. DNS压力测试工具dnsperf简介

    dnsperf是我最近写的一个开源的DNS压力测试工具,用户可以用它来对DNS服务器或者Local DNS做压力测试.dnsperf目前的实现是单进程模式,通过epoll非阻塞地处理网络事件. dns ...

随机推荐

  1. (大数据工程师学习路径)第四步 SQL基础课程----约束

    一.简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验就在操作中熟悉MySQL中的几种约束. 二.内容 1.约束分类 听名字就知道,约束是一种限制,它通过 ...

  2. python 架构简介(转)

    前言:   开发语言python  越来越火 ,作为开发比较火的语言,python 对网页等的支持也很好,当你想用python来写网页的时候你就要选择框架了.到底要选择呢什么样子的框架,最适合你的项目 ...

  3. Python 基于学习 网络小爬虫

    <span style="font-size:18px;"># # 百度贴吧图片网络小爬虫 # import re import urllib def getHtml( ...

  4. 中国人被“清朝GDP世界第一”忽悠了!

    中国人被"清朝GDP世界第一"忽悠了!"鸦片战争前的清朝GDP世界第一",这一说法在中国流传非常广.追根溯源,最早提出这一观点的似乎是英国学者麦迪森,他的一项猜 ...

  5. JavaScript--基于对象的脚本语言学习笔记(三)

    事件处理器 1.一个数据校验表单的例程 <html> <head> <title>js练习</title> <meta http-equiv=&q ...

  6. 最少换乘(Dijkstra)

    Description 欧洲某城是一个著名的旅游胜地,每年都有成千上万的人前来观光旅行.Dr. Kong决定利用暑假好好游览一番.. 年轻人旅游不怕辛苦,不怕劳累,只要费用低就行.但Dr. Kong年 ...

  7. jquery datatables api (转)

    学习可参考:http://www.guoxk.com/node/jquery-datatables http://yuemeiqing2008-163-com.iteye.com/blog/20069 ...

  8. oracle_job 清空冗余数据 ,每一分钟执行一次

    参照这个例子:http://cherryqq.iteye.com/blog/855022 思路: data表中有4条数据 ,relation有3条数据,通过data_id 对应,需要定时删除 data ...

  9. linux_awk_内部正则过滤

    awk -F'\t' '{if($3 !~ /^<p><img/){print $0}}' latex500.db|wc -l

  10. C#二维码生成与解码

    [窗体效果图] [程序源代码] using System; using System.Collections.Generic; using System.ComponentModel; using S ...