如何调试RESTful服务?

60
我正在寻找一种简单的方法来调试RESTful服务。例如,大多数Web应用程序可以使用普通的Web浏览器进行调试。不幸的是,同样的浏览器不能让我测试HTTP PUT、DELETE甚至在某种程度上连HTTP POST都不行。
我不是要自动化测试。我希望能够通过快速检查,运行新服务,最好不必编写自己的客户端。
17个回答

35
使用现有的“REST客户端”工具可以轻松检查请求和响应,例如RESTClient

这两个工具看起来非常有趣,感谢指引! - rjray
我正在使用第一个,对我来说非常简单好用。 - Asraful
我写了一个名为 Requester 的 REST 客户端插件,适用于 Sublime Text,https://github.com/kylebebak/Requester。它受到 HTTPie 和 Postman 的启发。它非常强大且易于使用,并且跨平台。如果你不是很喜欢自己的 HTTP 客户端,那么它绝对值得一试。 - kylebebak

15

在我们公司,我们使用各种不同的工具和方法来测试RESTful服务:

我们编写cURL脚本 - 实质上是一个保存在文件中的单个命令。每个资源每种方法一个文件。对于PUT和POST,我们通常会有包含要发送的表示形式的文件与cURL脚本一起使用。例如,对于邮箱资源,我们可能有一个名为mailbox_post.cmd的文件,其中可能包含以下行:curl -v -X POST -u username -H 'Content-Type:application/xml' -d @mailbox_post.xml http://service/mailbox。我们喜欢这种方法,因为我们最终建立了一组测试,可以批量运行,或者至少在测试人员之间传递,并用于回归测试。
我们使用cURL和RESTClient进行临时测试
我们默认服务提供XHTML,因此可以浏览,并添加表单资源,因此可以使用浏览器部分或完全测试服务。这部分灵感来自RESTful Web Services的某些部分,其中作者展示了Web服务和Web应用程序之间的界限可能不需要像通常假定的那样坚固和严格。
我们使用Restlet框架将功能测试编写为Groovy闭包,并使用测试运行器Groovy脚本运行测试。这很有用,因为当适当时,测试可以具有状态,相互构建并共享变量。我们发现Restlet的API简单直观,因此很容易编写快速的HTTP请求并测试响应,而在Groovy中使用时更加容易。 (我希望很快在我们的博客上分享这种技术,包括测试运行器脚本。)

13

Postman是一款适用于Google Chrome的扩展,它可能会很有帮助。

多年后编辑:如果Chrome扩展链接发生变化,还可以通过www.postman.com进行访问。


这是一个相对较新的扩展,但仅仅因为它可以保存请求集并管理/共享它们以及具有良好的界面,我非常强烈推荐它。 - ocodo
Postman可以将文件请求作为多部分数据上传。 - Ramesh sambu
链接已失效。我猜测这个应用程序就是它了?但我也不确定。 - Guildenstern
1
@Guildenstern 是的,就是这样。我相信它不再仅仅是一个 Chrome 扩展程序,现在也是一个独立的应用程序。你还可以使用 Firecamp、Postwoman、Insomnia 等工具。 - Yasin Okumuş

8

我发现RequestBin在调试REST请求方面非常有用。只需向唯一的URL发送POST请求,请求数据就会更新/显示。当其他工具不可用时,可以在紧急情况下提供帮助。

https://requestbin.com/


5

如果您正在运行OS X Leopard操作系统,我找到了一款非常有用的工具:

HTTP Client

这是一个非常简单的GUI程序,允许您创建HTTP请求并查看响应。


4
你可以使用Fiddler的Composer来调试RESTful服务
更新于2013年9月12日的JD:Rest Builder现在被称为Composer。

上面的请求构建器链接已经失效。 - helcim

4

cURL 工作得很好。


3

我最终选择了POSTMAN

它支持我想到的所有REST特性,而且界面非常优秀。唯一的缺点是需要使用Chrome浏览器。


现在它已经独立于Chrome,您可以直接安装使用,无需依赖Chrome。 - HarisH Sharma

2
我正在使用SoapUI测试我的REST API。
它比其他任何工具都更完整:
- 可以很好地调试请求和响应 - 自动化测试 - 基于GUI的所有操作 - 支持属性和属性传输来参数化你的测试 - 条件测试 - 性能测试
我并不为SmartBear工作。我在使用它测试SOAP WebServices时已经是它的忠实粉丝了。
图片:My SoapUI REST Project

2

RestTest已被禁用(2013年9月12日) - Jan Doggen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接