测试 REST API 的最佳方法? [关闭]

Posted

技术标签:

【中文标题】测试 REST API 的最佳方法? [关闭]【英文标题】:Best way to test out a REST API? [closed] 【发布时间】:2011-10-12 04:33:41 【问题描述】:

我刚刚使用 php Slim 框架创建了一个 REST API。但是,我想知道测试此 API 的最佳方法是什么。最好使用 PHP 或 Objective-c(将在哪里使用)或通过一些允许您测试 REST API 的在线服务对其进行测试?所有输出均采用 JSON 格式。

【问题讨论】:

你在寻找什么样的测试? 这里有一些免费的API Testing Tools你可能想试试 【参考方案1】:

Postman,Chrome网上商店的一个应用也不错。

它有一个非常漂亮的用户界面。支持所有 HTTP 方法。它甚至允许 Basic 和 OAuth autentication 并存储您以前的请求。

找到source code on GitHub here.

【讨论】:

【参考方案2】:

您可以使用“高级 REST 客户端”chorem 应用程序。

我测试过的最好的工具。

【讨论】:

【参考方案3】:

由于 RESTful API 非常流行,因此有很多工具可以测试它们。因此,最好选择这些工具中的一个(或多个),而不是浪费时间和精力来创建大量自己的测试脚本/程序。 您可以查看以下资源,这些资源可以帮助您选择最合适的工具:

Top 6 API Testing Tools12 Great Web Service Testing Tools

【讨论】:

【参考方案4】:

所以我通常使用一些不同的工具来测试我自己/外部的 API。

postman 是在 Google Chrome 中运行的 HTTP 和 REST 客户端。

Mocha 是一个用于 Node.js 和 javascript 项目的测试框架。 (链接似乎在 atm 下)

Nock 是一个 HTTP 模拟库,可以记录 HTTP 调用并回放它们,因此您可以手动模拟 API,或者只记录实际的 HTTP 调用并在未来的测试运行中使用它们的响应。

Mocha 和 Nock 更特定于 JavaScript,但没有理由不能将它们用于基于 PHP 的 API

【讨论】:

> 没有理由不能使用它们基于 PHP 的 API。我正在考虑使用 Mocha 和 Chai 来测试使用 PhalconPhp 构建的 REST api。会有任何潜在的缺点吗?【参考方案5】:

theRightAPI 有一个免费工具,可让您测试任何基于 HTTP 的 API 调用。然后,您可以保存这些测试以与其他人共享,或者如果您需要稍后返回以重新测试并确保 API 继续按预期响应。它还有一个令牌存储,允许您在多个测试中使用凭证或身份验证密钥的单个副本。

http://www.theRightAPI.com/test

【讨论】:

【参考方案6】: 您应该已经对此服务进行了单元测试(例如PHPUnit)。这可确保一切按预期进行。 您可以创建验收测试(例如使用Selenium) 您可以使用CURL测试该服务是否可以访问

【讨论】:

【参考方案7】:

正如@Martin 所说,正确实施的 REST 独立于客户端(假设它支持您的表示类型)。因此,例如,您可以为 Firefox 使用 Poster 插件,或使用 RestClient 2.3。

【讨论】:

您可以在chrome.google.com/webstore/detail/…找到海报的chrome端口 哈哈,谢谢,不过我正在使用 Safari :) 总是有很好的 ol' curl,它包含在 Mac OSX 和 Linux 中,并具有到 Windows (curl.haxx.se) 的端口。如果你想编写代码来进行可重复的测试,你可以用任何你想要的方式编写它(只要你可以发出 HTTP 请求)。关键是,REST API 应该独立于客户端。如果它不独立于客户端,请使用 Objective-C 对其进行测试,并可选择与某人争论它是否真的是 RESTful。 @Jim Ferrans:我看过Poster & RestClient,似乎他们缺乏创建TestCase的能力?例如,每次我运行测试用例时,我都希望将相同的信息发布到服务器。您是否碰巧知道任何工具已经这样做了? wcfstorm.rest 怎么样?如果您想每次都发送相同的信息,您可以保存请求并根据需要随时重新加载。 wcfstorm.com/wcf/wcfstormrest-lite.aspx【参考方案8】:

一个好的 REST API 应该独立于最终客户端。所以在一个场景中测试它,应该假设它在所有场景中都可以使用相同的端点、HTTP 动词和参数。

【讨论】:

以上是关于测试 REST API 的最佳方法? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

保护 REST API 的最佳方式是啥? [关闭]

使用pytest在REST应用程序中测试权限的最佳方法是什么?

使用 Django rest 框架在两个 api 之间配置身份验证的最佳方法是啥?

设计 Node.js REST API 的 10 条最佳实践

进行微服务 REST API 版本控制的最佳方法是啥?

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