测试 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 的最佳方法? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用pytest在REST应用程序中测试权限的最佳方法是什么?
使用 Django rest 框架在两个 api 之间配置身份验证的最佳方法是啥?