能够处理OAuth登录的REST客户端

9

我正在一项基于Rest API的系统中担任测试员。我的工作之一是使用不同的应用程序将文件POST到Rest API,然后通过Rest客户端直接访问API以验证XML是否正确。

到目前为止,我一直在使用RESTClient firefox插件。

但现在我们正在摆脱旧的登录方式,转而使用Oauth。这很好,但它使得测试更加困难,因为我不知道如何使用我正在使用的REST客户端访问Rest API(或者说我不会怎么做)。而我也不知道有没有其他能够处理此问题的REST客户端。

我需要一个能够处理Oauth登录的REST客户端/REST浏览器。

更新:
嗨,我仍在寻找更多能够处理Oauth的好REST客户端。如果您知道任何信息,请在下面留言。

4个回答

6

1
我建议使用Chrome的POSTMAN而不是RESTClient,因为RESTClient存在一些错误(https://github.com/chao/RESTClient/issues/105),这会导致签名无效。 - airboss

3

我是RESTClient的作者,已经开始开发新版本RESTClient(版本1.4.0)。新版本将支持oAuth 2.0,并计划在四月份发布。


你是在说Firefox插件吗?我注意到很多Rest客户端都被称为RESTClient。例如,WizzTools也有一个名为RESTClient的软件http://code.google.com/p/rest-client/。 - Jonas Söderström
1
是的,我刚刚向Mozilla提交了RESTClient的新版本,但我还没有完成oAuth 2.0。我希望能在这个月内完成它。 - Chao

1

当使用OAuth身份验证时,没有任何禁止您继续手动测试REST API的规定。OAuth只需要您发送额外的参数:首先,您需要协商OAuth过程以获取请求令牌并将其交换为访问令牌,然后每个请求都必须具有必要的OAuth参数oauth_consumer_keyoauth_tokenoauth_signature_methodoauth_signatureoauth_timestampoauth_nonce)。您需要使用单独的工具进行签名(除非您正在测试的产品愿意使用PLAINTEXT作为签名方法),但是您可以将所有这些值手动复制到当前的手动工具中。

如果这听起来很费力,那么你是对的!我认为现在是转向自动化测试的好时机。大多数语言都有现成的库可以编程地消耗OAuth服务,这将处理所有这些参数和签名。你可以构建一个通用工具,让手动测试人员手动指定URL和参数,或者更进一步,编写一个自动生成和验证的工具。

更新:如果要从命令行进行一些探索性测试,拥有类似于curl的工具来处理一些OAuth参数和签名肯定会很有帮助。请查看oauth-proxy,它可能适合您——它的目的就是在命令行上探索API。或者您可能会发现,在您特定的探索中,您想要围绕oauth-proxy构建脚本或在不同语言的许多OAuth库之一的顶部构建工具。


感谢您的好回答。我担心使用我们目前的工具会很麻烦,而您证实了这一点。我们已经在进行自动化测试,但我们还需要使用REST客户端进行手动探索性测试。 我无法相信没有开源工具可以做到这一点。 - Jonas Söderström
是的,@Jonas说得很好。有时候你需要对API进行手动的探索性测试。我已经在答案中添加了一个链接到oauth-proxy,这可能适合你,我也非常想知道其他类似的便利工具。 - npdoty
感谢您的所有帮助。我设法找到一个可以满足我的需求的工具。请见下面我的回答。 - Jonas Söderström

1

原来RESTClient支持oauth,但新版本尚未发布。

从sourceforge检查最新的代码
http://sourceforge.net/projects/restclient/develop
并使用这些文件替换您的RESTClient(应该在您的Firefox配置文件目录中找到
http://support.mozilla.com/en-US/kb/Profiles#How_to_find_your_profile )。

注意:我不得不修改源代码并删除“realm”参数,因为我们的系统不需要它。根据Oauth规范,领域是可选的,我已经要求RESTClient的开发人员在未来的版本中将其设置为可选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接