当前位置:  开发笔记 > 编程语言 > 正文

测试REST Web服务

如何解决《测试RESTWeb服务》经验,为你挑选了8个好方法。

我的组织正致力于在JBoss appserver上构建RESTful webservices.到目前为止,QA团队使用SoapUI来测试SOAP Web服务.SoapUI有一个具有REST功能的新版本.我们正在考虑使用它.

    网上是否有免费公开提供的RESTful服务,有人可以测试?

    可用(和使用)哪些工具来测试RESTful Web服务?

小智.. 28

soapUI也将完成这项工作,请查看此博客文章以开始使用.



1> 小智..:

soapUI也将完成这项工作,请查看此博客文章以开始使用.



2> 小智..:

请尝试Firefox插件海报,它易于使用,让您快速运行


实际上,我收回了我的+1.在检查海报发送的流量时,它是格式错误的,这会导致我的Web服务出现问题.当您添加参数并执行POST或PUT时,它实际上不会发送这些参数,除非您明确添加内容,否则它不会发送内容类型.

3> S.Lott..:

您可以使用相当简单的Python来练习Web服务.根据您的安全性,您可以简单地使用Python,urllib或者urllib2执行REST请求并检查您的答案.

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

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为每个请求传递摘要式身份验证.它相当复杂,但如果感兴趣,我可以分享其本质.



4> TheSoftwareJ..:

查看提琴手



5> Jonathan Ark..:

CURL半途而废.另一半是检查标题,响应代码和实体内容以确保其良好.您可以使用各种工具(在shell脚本中,将标题和内容传递给文件,并且将它们区分开来可能就是这样).进一步改进工具集并不困难,可能会使用您选择的单元测试框架进行堆叠.

我用AJAX构建了一个rest webservice测试面板.实际上并不困难.您可能会遇到一些安全问题(即确保您在同一台服务器上安装了测试套件,或者签署了Javascript.)



6> Johan..:

要测试REST服务,您可以尝试使用REST Assured,这样可以非常简单地测试REST服务并验证Java中的响应(使用JUnit或TestNG).



7> Abhinav..:

查看邮递员 - https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm/.这是我过去几个月一直在研究的工具,最近我从反馈中得到它,这对于大型REST项目变得非常有用,同时帮助进行基本的REST端点测试.

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



8> code4j..:

测试REST Web服务的最简单方法是curl在终端中使用.

我用一些代码来测试我的rails服务.您可以修改它们以适合您的服务.

得到

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

Pills in Raills: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

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有