testingREST webservices

我的组织正在研究在JBoss应用服务器上构buildREST风格的Web服务。 QA团队习惯于使用SoapUItestingSOAP web服务。 SoapUI有一个具有RESTfunction的新版本。 我们正在考虑使用。

  1. 有没有在网上有免费公开的RESTful服务,有人可以testing?
  2. 哪些工具可用于(并用于)testingREST式Web服务?

soapUI也将完成这项工作,看看这个博客文章开始。

请尝试Firefox插件海报,这是很容易使用,让你快速运行

您可以使用相当简单的Python来练习Web服务。 根据您的安全性,您可以简单地使用Python的urlliburllib2来做您的REST请求并检查您的答案。

此外,您可能希望使用Python unittest来控制REST服务的Pythontesting的执行。

 class TestSomeREST( unittest.TestCase ): def setUp(self): REALM = "blah@blah.com" self.client= RESTClient( "localhost", 18000, "tester", "tester", REALM ) def test_1_get(self): response = self.client.get('/this/that/other/2/') self.failUnlessEqual(200, response.status_code) j1= JSONDecoder().decode(response.content) self.assertEquals(2, j1[0]['pk'] ) entity= j1[0]['fields'] self.assertEquals('Some Other Group', entity['name']) self.assertEquals('E1G2', entity['customer_id']) 

RESTClient类使用urllib2为每个请求传递摘要式身份validation。 这是相当复杂的,但如果有兴趣,我可以分享这个本质。

看看提琴手

curl在那里半路上。 另一半是检查标题,响应代码和实体内容,以确保它的好。 你可以使用各种各样的工具(在shell脚本的土地上,将标题和内容pipe道传输到文件中,而对它们进行区分就可以做到这一点)。 要进一步完善工具集并不是那么困难,也许可以用您select的unit testing框架来堆砌起来。

我用AJAX构build了一个restWeb服务testing面板。 实际上并不困难。 你有一些安全问题需要解决(例如,确保你在同一台服务器上有testing套件,或者可能有签名的Javascript)。

要testingREST服务,您可以尝试REST Assured ,这样可以非常简单地testingREST服务并validationJava中的响应(使用JUnit或TestNG)。

看看邮差 – https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm/ 。 这是我在过去几个月中一直在努力的一个工具,最近从反馈中得到的信息是,我一直在帮助大型REST项目变得非常有用,同时帮助进行基本的REST端点testing。

这个代码也可以在Github上find。 https://github.com/a85/POSTMan-Chrome-Extension

testingREST Web服务的最简单方法是在terminal中使用curl

有一些代码,我用来testing我的Web服务的轨道。 您可以修改它们以适合您的服务。

得到

 curl http://localhost:3000/courses.json 

POST

 curl -H "Content-Type:application/json" -d '{"courseCode":"55555","courseName":"SEEEE","courseYr":999}' http://localhost:3000/courses.json 

在Raills中input:eg1 (所有字段):

 curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json" -d '{"courseCode":"123456","courseName":"AAAAAAAA","courseYr":12345}' http://localhost:3000/courses/5.json 

eg2(该字段只能被编辑):

 curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json" -d '{"courseYr":999999999}' http://localhost:3000/courses/3.json 

用提供的id在rails中删除

  curl -H "X-Http-Method-Override: delete" -H "Content-Type:application/json" -d '{"id":4}' http://localhost:3000/courses/5.json 

我还没有testing它,但这个Java应用程序似乎是很好的testingREST服务。 Javalobby也有一个关于它的教程。

Java应用程序: http : //code.google.com/p/rest-client/

Tuto: http : //java.dzone.com/announcements/wiztoolsorg-restclient-21-rele

您可以使用简单的REST客户端也是Google Chrome的扩展程序https://chrome.google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb

SOA清洁,是一个testing工具,testing肥皂和rest(也是WCF,但似乎你不需要该function)。 这很直观,可用。 用.NET编写。 免费版本也可用。 可以从http://xyrow.com下载。; 祝你好运!

我正在使用内部.NET框架testingRESTful服务(在Java中移植它没有问题)。 基本原则:

  • build立客户端(拨打电话)
  • 构buildtypes类(XML和JSON)
  • 反序列化响应
  • 断言的东西

如果你想了解更多信息,我很高兴能够交谈。

我为Google Chrome使用REST控制台扩展程序 ,这是迄今为止我所尝试的最好的。 它还支持OAuth等各种安全机制

(更新2:修复链接)

对于java,还有RESTFuse ,它允许开发看起来像这样的unit testing:

 @Rule public Destination destination = new Destination("http://localhost:8080/rest/"); @HttpTest( method = Method.GET, path = "/status" ,authentications = @Authentication(type = AuthenticationType.BASIC, user = "joe", password = "doe") ) public void testAuthRhqadmin() { com.eclipsesource.restfuse.Assert.assertOk(response); } 

该testing针对http://localhost:8080/rest/status并以密码doe身份validation为用户joe。 方法的主体然后检查GET调用返回一个200状态码。

尝试Python的httplib。 这很容易,你指定的方法,url,并使用urllib.urlencode参数/ POST正文。

如果您愿意,可以将其与内置的unittest模块结合使用来报告错误。

我一直在使用JMeter,特别是像负载testing的东西。 这与SoapUI类似(我也使用过),但更多的是testing网页,这也使得它在testingRESTful服务时也相当不错。

我已经编写了专门用于testingREST Web服务的程序。 它是一个非常简单的应用程序编写的.NET 2.0(我只testing它在Windows Vista上,但也应该在XP上工作)。 应用程序使用HttpWebRequest发出请求,并显示响应结果以及请求和响应的标题。 我做了一些testing,但是我认为它可以帮助您testing您的Web服务。

RESTtesting

我目前正在为此调查wsclient CLI应用程序( http://wso2.org/library/3362 )。 这是相当有前途的,可以用来从bash shell进行快速testing。 当然,正如这里所提到的那样,许多使用* nix系统的工具将会用一些编码/脚本来完成工作

如果你喜欢使用Ruby,那么就有一个REST-Client gem

对于testing人员来说,我发现ruby是一门很容易学习的语言,而且它还有一些非常出色的工具,比如Cucumber来做BDD式的验收testing。

我已经尝试了很多REST客户端,而且我使用的最好的是Chrome应用程序: DHC 。

DHC(又名开发HTTP客户端)是由开发人员为开发人员devise和开发的,以便更直接地进行HTTP资源发现,操作和testing。 除了主要的function,发送/接收自定义的HTTP请求/响应,它允许永久保存到本地存储库的请求供以后重用,此外,请求声明可以包括特定于上下文的variables。 通过使用上下文,您可以轻松地在各种环境之间切换,而无需修改请求声明。 (例如从testing环境到生产)

testingREST完整的Web服务是一件容易的事情。 在浏览器上可以使用免费的广告作为REST客户端,从那里您必须发送带有预期/必需的方法types的Web服务:GET / POST / PUT / DELETE如果参数匹配,则会在浏览器主体中生成输出。 在这里输入图像说明

我知道这是一个非常古老的问题,但可能对他人有帮助。 只是为了回答你的第一个问题,你可以在这里检查一下 REST的web服务来testing。

Firefox中的Fiddler和Poster插件可用于testing任何REST Web服务。 SoapUI还带有REST风格的web服务支持。

对于高级RESTtesting,您可以尝试HttpMaster 。
它支持dynamic参数,用于XML / JSON的友好查看器,以及可以组合成逻辑expression式的各种types的响应数据validation。
对于基本的http请求,一些浏览器插件就足够了。

OnionTest仍然是testing版,但相当有用