testingREST webservices
我的组织正在研究在JBoss应用服务器上构buildREST风格的Web服务。 QA团队习惯于使用SoapUItestingSOAP web服务。 SoapUI有一个具有RESTfunction的新版本。 我们正在考虑使用。
- 有没有在网上有免费公开的RESTful服务,有人可以testing?
- 哪些工具可用于(并用于)testingREST式Web服务?
soapUI也将完成这项工作,看看这个博客文章开始。
请尝试Firefox插件海报,这是很容易使用,让你快速运行
您可以使用相当简单的Python来练习Web服务。 根据您的安全性,您可以简单地使用Python的urllib
或urllib2
来做您的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版,但相当有用