如何调试RESTful服务?
我正在寻找一种调试RESTful服务的简单方法。 例如,大多数webapps都可以使用普通的web浏览器进行调试。 不幸的是,相同的浏览器不允许我测试HTTP PUT,DELETE,甚至在某种程度上甚至HTTP POST。
我不想自动化测试。 我希望通过快速的完整性检查来运行新服务,理想情况下无需编写自己的客户端。
使用现有的“REST客户端”工具,可以轻松检查请求和响应,如RESTClient。
在我的公司,我们使用各种不同的工具和方法来测试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服务的某些部分的启发,其中作者表明,Web服务和Web应用程序之间的界限可能不需要像通常假定的那样牢固和严格。
我们使用Restlet框架编写功能测试作为Groovy闭包,并使用测试运行器Groovy脚本运行测试。 这很有用,因为这些测试可以是有状态的,互相构建并在适当的时候共享变量。 我们发现Restlet的API简单直观,并且可以轻松编写快速的HTTP请求并测试响应,而且在Groovy中使用它更加容易。 (我希望能尽快在我们的博客上分享这个技巧,包括测试跑步者脚本。)
Google Chrome扩展程序Postman可能会有所帮助。
链接地址: http://www.djcxy.com/p/41109.html上一篇: How to debug RESTful services?
下一篇: How to do both post and get arguments at the same time in jmeter http request