63

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

  1. 网络上是否有任何公开可用的 RESTful 服务可供人免费测试?
  2. 有哪些工具可用于(和使用)测试 RESTful Web 服务?
4

24 回答 24

28

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

于 2009-06-24T09:52:03.133 回答
25

请尝试 Firefox 插件海报,它使用简单,让您快速上手

于 2008-10-15T10:42:07.187 回答
20

您可以使用相当简单的 Python 代码来运行 Web 服务。根据您的安全性,您可以简单地使用 Pythonurlliburllib2执行 REST 请求并检查您的答案。

此外,您可能希望使用 Pythonunittest来控制 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 为每个请求传递摘要身份验证。它相当复杂,但如果我感兴趣,我可以分享本质。

于 2008-10-15T03:09:11.203 回答
12

查看提琴手

于 2008-10-15T02:43:17.793 回答
8

CURL 让你走到一半。另一半是检查标头、响应代码和实体内容以确保其良好。您可以为此使用各种工具(在 shell 脚本领域,将标头和内容通过管道传输到文件,并对它们进行差异化可能就可以解决问题)。进一步完善工具集并不难,也许与您选择的单元测试框架叠加起来。

我用 AJAX 构建了一个 rest webservice 测试面板。其实一点也不难。您需要解决一些安全问题(即确保您在同一台服务器上拥有测试套件,或者可能是签名的 Javascript。)

于 2008-10-15T02:41:45.550 回答
8

要测试 REST 服务,您可以尝试REST Assured,这使得测试 REST 服务和验证 Java 中的响应变得非常简单(使用 JUnit 或 TestNG)。

于 2011-01-05T16:48:42.747 回答
8

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

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

于 2012-06-02T00:25:15.083 回答
6

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

我用一些代码来测试我的 Rails 网络服务。您可以修改它们以适应您的服务。

得到

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

邮政

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

放入 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
于 2012-11-11T16:56:07.423 回答
4

我还没有测试它,但是这个 Java 应用程序似乎很适合测试 REST 服务。Javalobby 上也有一个关于它的教程。

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

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

于 2009-01-19T13:31:43.210 回答
3

您可以使用 Simple REST Client 也是 Google Chrome 的扩展https://chrome.google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb

于 2010-12-20T16:02:23.497 回答
2

SOA Cleaner,是一个测试soap 和rest 的测试工具(也是WCF,但是你好像不需要那个特性)。它非常直观且可用。用 .NET 编写。还提供免费版本。可以从http://xyrow.com下载。祝你好运!

于 2009-09-16T08:02:59.533 回答
1

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

(更新2:修复链接)

于 2011-06-17T08:45:02.100 回答
1

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

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

如果您想了解更多信息,我很高兴与您交谈。

于 2012-05-29T14:20:51.397 回答
1

对于 java,还存在RESTFuse,它允许开发可能如下所示的单元测试:

@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);
}

此测试针对http://localhost:8080/rest/status使用密码 doe 的用户 joe 运行并进行身份验证。然后方法的主体检查 GET 调用是否返回 200 状态代码。

于 2012-09-06T10:46:25.270 回答
0

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

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

于 2008-10-15T03:11:35.177 回答
0

为此,我一直在使用 JMeter,尤其是负载测试之类的东西。它类似于 SoapUI(我也使用过),但更倾向于测试网页,这使得它在测试 RESTful 服务方面也相当不错。

于 2008-10-15T19:53:38.213 回答
0

我编写了一个专门用于测试 REST Web 服务的程序。它是一个用 .NET 2.0 编写的非常简单的应用程序(我只在 Windows Vista 上测试过它,但应该也可以在 XP 上运行)。应用程序使用 HttpWebRequest 发出请求,并显示结果响应,以及请求和响应的标头。我做了一些测试,但我认为它可能会帮助您测试您的 Web 服务。

休息测试

于 2008-12-24T03:40:37.580 回答
0

我目前正在为此目的调查 wsclient CLI 应用程序(http://wso2.org/library/3362)。它很有前途,可用于从 bash shell 破解快速测试。当然,正如这里许多人提到的,*nix 系统附带的许多工具将通过一些编码/脚本来完成这项工作

于 2009-12-08T02:23:32.547 回答
0

如果您喜欢使用 Ruby,那么可以使用REST -Client gem

对于测试人员,我发现 ruby​​ 是一门非常容易学习的语言,并且它有一些优秀的工具,比如 Cucumber,用于进行 BDD 风格的验收测试。

于 2012-01-11T00:41:56.990 回答
0

我尝试了许多 REST 客户端,到目前为止,我使用过的最好的是 Chrome 应用程序:DHC

DHC(又名 Dev HTTP 客户端)是由开发人员设计和开发的,目的是让开发人员更轻松地直接发现、操作和测试 HTTP 资源。除了发送/接收自定义 HTTP 请求/响应的主要功能之外,它还允许将请求永久保存到本地存储库以供以后重用,此外,请求声明可以包含特定于上下文的变量。通过使用上下文,您可以轻松地在各种环境之间切换,而无需修改请求声明。(例如从测试环境到生产环境)

于 2014-08-26T16:19:35.980 回答
0

测试 REST 完整的 Web 服务是一项简单的任务。浏览器上提供免费的插件作为 REST 客户端,您必须从该客户端发送具有预期/必需方法类型的 Web 服务:GET/POST/PUT/DELETE 如果参数匹配,则将在浏览器主体中生成输出.在此处输入图像描述

于 2014-09-16T11:34:17.500 回答
0

我知道这是一个非常古老的问题,但可能对其他人有所帮助。只是为了回答您的第一个问题,您可以在此处查看以获取一些 REST Web 服务进行测试。

Firefox 中的 Fiddler 和 Poster 插件可用于测试任何 REST Web 服务。SoapUI 还带有 RESTful Web 服务支持。

于 2015-03-01T07:45:00.623 回答
0

对于高级 REST 测试,您可以尝试HttpMaster
它支持动态参数、友好的 XML/JSON 查看器以及可以组合成逻辑表达式的各种类型的响应数据验证。
对于基本的 http 请求,一些浏览器插件就足够了。

于 2015-04-01T19:34:18.263 回答
-1

OnionTest 仍处于测试阶段,但非常有用

于 2011-08-16T06:16:25.750 回答