在服务尚不存在时测试REST Web服务客户端

时间:2008-12-15 04:15:17

标签: javascript rest

我已经阅读了帖子link textlink text,但这些内容涵盖了在服务器上构建REST服务并需要快速客户端以测试这些服务的用例。

我们遇到了相反的问题,我们正在构建一个通过REST与服务器通信的Web客户端,但是已经决定让客户端驱动服务器上的服务格式,这意味着客户端正在先实现,然后在服务器上实现服务。

我正在寻找一种工具,它可以让我快速打开REST Web服务,然后客户端可以对其进行测试。有效地模拟服务器。

有谁知道这样的工具?

8 个答案:

答案 0 :(得分:1)

取决于您的REST服务将如何实际返回数据。您应该能够抽象所有服务调用,然后模拟JSON响应 - 随机旋转响应应该非常简单。

您可以做的另一件事是在服务器上放置几个结果文档(如上所述),并通过随机更改请求的服务URL从客户端旋转它们。

答案 1 :(得分:1)

Charles是一个用Java编写的多平台代理,代理浏览器或您拥有的任何网络客户端。

如果需要,您可以将URL分配给文件甚至目录,或者您可以将会话记录到磁盘并在以后播放它们 - 我们一直使用它来模拟不完整或不可访问(例如,严重防火墙)的服务器。

它也是一个非常好的调试工具,因为它允许检查HTTP的所有细节。

PS:与他们无关,只是一个快乐的用户。

答案 2 :(得分:1)

如果您在Microsoft世界,那么我将查看WCF REST入门工具包中的Microsoft.Http库。有一个Microsoft.Http.Test项目,它有很多关于如何通过在HttpClient处理管道中添加存根阶段或在HttpListener之上构建虚拟服务器来存根http请求的示例。

HttpListener是一个很棒的.Net框架类,它允许您只用几行代码构建一个正在运行的Web服务器。与Microsoft.Http库一起,您可以生成一个非常容易返回虚假结果的服务器。

答案 3 :(得分:1)

您可以使用jQuery.fixture插件,该插件是JavascriptMVC框架的一部分,但也可以用作独立组件。它提供了一种非常强大的方法来模拟尚未通过拦截ajax请求实现的REST服务。

要了解有关详情,请访问:http://www.javascriptmvc.com/docs.html#!jQuery.fixture

享受:)

答案 4 :(得分:0)

您可以创建一个结果文档并将其放在Web服务器上。 然后将REST URL指向文档。 无论您的输入是什么,输出始终都是预先形成的结果。

答案 5 :(得分:0)

考虑使用Facade设计模式,然后只需为“模拟模式”添加配置值。然后,您可以使用模拟模式创建整个客户端。然后,当服务器准备就绪时,更新Facade以使用新服务器。

我已经完成了几个项目并取得了巨大的成功。特别是在大型企业应用程序中,某些小型服务可能会停机,但系统的其余部分应该继续运行。只需让外观给用户一个“模拟模式”警告,这样他们就知道结果可能不真实。

答案 6 :(得分:0)

简单 - 使用Eviware的SoapUI(免费)来模拟您的服务。

它具有内置的“模拟”服务概念,您可以在其中定义端点,并使该端点响应具有逼真外观数据的请求。一旦定义,模拟服务就可以启动,并且很乐意坐在那里响应来自客户端的请求。您甚至可以以编程方式控制它,并根据请求发回不同的响应。

关于服务模拟的在线教程非常好here

如果您的应用程序有WADL或WSDL可供使用,则更容易,但这些只是意味着您需要花费额外的精力来创建初始的Mock服务。

答案 7 :(得分:0)

我一直在处理同样的问题。我还没有找到一个下降工具来做到这一点。我真的希望SoapUI可以通过,但在广泛使用之后我发现了他们的REST支持,特别是在涉及Mock REST服务时,非常缺乏。

我能想到的最好的方法是构建一个简单的网络服务器,并根据网址使用过滤器将用户发送到不同的资源。这对于静态响应来说很好,但是如果我希望调用错误或显示一点点不同的响应数据该怎么办。我想要的东西就像SoapUI对模拟SOAP服务所做的那样,你可以运行一个查看数据并依赖于数据的脚本,使用不同的SOAP响应。有人知道这样的工具吗?在SoapUI的路线图中会提供更多对REST的支持,但我猜不会在不久的将来。