Rails Rest API 外部测试

Posted

技术标签:

【中文标题】Rails Rest API 外部测试【英文标题】:Rails Rest API External Testing 【发布时间】:2010-01-18 16:05:06 【问题描述】:

我正在一个 Rails 应用程序之上构建一个 REST Web 服务层,该应用程序将由 Iphone 应用程序使用。响应格式为 XML。

我想构建一些应该在 Rails 堆栈外部的验收测试(并且应该测试所有内容,包括 http 服务器)。测试场景非常复杂,涉及搜索/发布/查看订单的过程。实现这一目标的最佳解决方案是什么?

一个。 Ruby 脚本使用 curl/curb 获取请求并使用 Hpricot 解析请求

b.硒

c。 ..

如果这些测试可以用作集成测试(因此,在每个 git 提交上运行),那也很好。您会推荐哪种集成解决方案?

一个。诚信

b.巡航控制

c。别的东西

【问题讨论】:

【参考方案1】:

在过去几年中我使用了三种方法

活动资源

我发现这太在意看起来像 active-record 是一个很好的解决方案。在某些情况下,我必须修补它的某些部分才能按照我希望 REST 客户端的行为正常工作。

休息客户端

这个gem 非常好 - 有据可查,并且按预期工作。我将它与我自己的简单 DSL 结合起来,结果比通用测试框架更好

基于 HTTP 的 XML

我用它来进行性能测试。非常灵活,但学习曲线比 Rest-client 高。如果您采用这种方法,您可以使用 Net::HTTP 核心类或 HTTParty gem(我没有尝试过,但它看起来很棒>

一个非常好的资源是Net::HTTP cheat-sheet

对于临时测试,我还发现 Firefox 的 Rest Client 插件非常有用。

【讨论】:

【参考方案2】:

在 ruby​​ 模式下使用 selenium-rc,您将成为一个快乐的露营者。 Webrat/Cucumber 已经为您完成了这项工作,因此您可以将其放在第二个项目中并以这种方式运行测试,您所要做的就是覆盖主机(因此您将使用您的域而不是 localhost)。

至于 CI,恐怕我不知道最好的那个。

【讨论】:

【参考方案3】:

你不可能意味着 mks 的完整性......如果是这样,答案就是。 CC 是一个很好的 CI 工具。真的很好。

【讨论】:

以上是关于Rails Rest API 外部测试的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS Rest API - 调用外部 API 的正确位置在哪里

Spring Boot - 模拟对外部 API 的 POST REST 请求

气流操作员从外部Rest API提取数据

Django rest框架拉入外部json数据

如何向外部 Rest Api 发出 Http Post 请求? [关闭]

在页面上输出外部 JSON Api Ruby on Rails