我正在寻找一种简单的方法来调试RESTful服务。例如,大多数Web应用程序都可以使用普通的Web浏览器进行调试。不幸的是,同样的浏览器不允许我测试HTTP PUT,DELETE,甚至在某种程度上测试HTTP POST。
我不打算自动化测试。我希望通过快速的健全性检查来运行新服务,理想情况下无需编写自己的客户端。
答案 0 :(得分:34)
使用现有的“REST客户端”工具,可以轻松检查请求和响应,例如RESTClient。
答案 1 :(得分: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应用程序之间的界限可能不需要像通常所假设的那样严格和严格。
我们使用Groovy框架将功能测试编写为Restlet闭包,并使用测试运行器Groovy脚本运行测试。这很有用,因为测试可以是有状态的,相互构建,并在适当时共享变量。我们发现Restlet的API简单直观,易于编写快速HTTP请求并测试响应,在Groovy中使用时更加容易。 (我希望尽快在our blog上分享这项技术,包括测试跑步者脚本。)
答案 2 :(得分:12)
Postman可能会有所帮助。
答案 3 :(得分:8)
我发现RequestBin对调试REST请求很有用。发布到唯一的URL并更新/显示请求数据。当其他工具不可用时,可以提供帮助。
答案 4 :(得分:5)
答案 5 :(得分:4)
cURL
效果很好。
答案 6 :(得分:4)
您可以使用fiddler的Composer来调试restful services ..
更新了JD 12 sep 2013: Rest Builder 现在称为 Composer 。
答案 7 :(得分:3)
我最终选择了POSTMAN
它支持我能想到的所有REST功能,并且UI非常出色。唯一的缺点是它需要Chrome。
答案 8 :(得分:2)
答案 9 :(得分:2)
我正在使用Soap UI来测试我的REST API。
它比任何其他工具更完整:
我不是在为SmartBear工作。 在将它用于SOAP WebServices时,我已经是SoapUI的忠实粉丝了。
答案 10 :(得分:0)
Firefox有RESTClient个插件,可以通过方法,参数,标题等发送不同的请求。
答案 11 :(得分:0)
你们应该查看firefox的poster扩展名,它的使用非常简单实用:)
答案 12 :(得分:0)
如果您希望免费工具用于同一目的,并提供多部分表单数据提交的附加功能,请访问http://code.google.com/a/eclipselabs.org/p/restclient-tool/
答案 13 :(得分:0)
我倾向于使用Jersey为RESTful资源编写单元测试,它带有一个不错的REST客户端。好的是,如果使用JAX-RS实现RESTful资源,那么Jersey客户端可以重用实体提供程序,例如JAXB / XML / JSON / Atom等等 - 这样您就可以在服务器端重用相同的对象了用于客户端单元测试。
例如来自here is a unit test case的Apache Camel project,它从RESTful资源中查找XML有效负载(使用JAXB对象端点)。资源(uri)方法在this base class中定义,它只使用Jersey客户端API。
e.g。
clientConfig = new DefaultClientConfig();
client = Client.create(clientConfig);
resource = client.resource("http://localhost:8080");
// lets get the XML as a String
String text = resource("foo").accept("application/xml").get(String.class);
答案 14 :(得分:0)
我使用了Google Code提供的restclient。它是一个简单的Java Swing应用程序,它支持所有HTTP方法,并允许您完全控制HTTP头,连接等。
答案 15 :(得分:0)
除了使用Peter Hilton的回复中的一个工具之外,我不得不说用LWP或类似工具编写测试脚本可能是您唯一的选择。您可以绕过LWP的使用,只需打开一个套接字,发送原始HTTP请求并检查您获得的回报。但据我所知,这类领域缺乏测试工具 - 大部分都是从网站开发人员的角度来看这个问题空间,而对于他们来说浏览器就足够了测试平台
答案 16 :(得分:0)
因为它在这里完全缺失: https://luckymarmot.com/paw
值得一分钱......