我正在寻找REST功能测试套件。我想到的是一个工具,它允许我有几个“块”(脚本,函数,类,你的名字),一个用于我在系统中的每个API函数。
然后,我必须能够命令这些块来构建功能测试。 例如:我有一个Auth API接受用户/密码作为参数并返回access_code。此access_code应用作排行榜API的参数。排行榜API可以返回要在Awards API中使用的参数,依此类推。
我希望每个API都有块,这样我就可以快速构建一个测试流程
例如AUTH --> Awards --> Messages
,Auth --> Messages --> Leaderboards
。
我昨天看着SoapUI看起来很有希望,但是有些怪癖让我退缩(如果我编辑资源,我必须删除并创建所有再次使用此资源的测试,以命名最烦人的 - 当你有将近一百个要测试的API时,资源中的任何更改都会产生大量的返工,并且它用于将结果从一个测试传递到另一个测试的方式是奇怪的 - 在这里很好。)
我正在考虑使用shell脚本(每个API都有一个脚本/函数,然后根据需要编写一个脚本将它们粘合在一起),但我认为这需要花费太多时间(我不熟悉shell脚本)已知curl与我们的一些API不能很好地工作。)
JMeter似乎很有趣,但我不确定它是否会以这种模块化的方式工作,也不确定它是否支持REST完全可靠。
我不介意花一些时间学习新工具,但我需要能够轻松地将所有这些API保持最新。
所有这些,还有其他任何建议吗?你如何在那里测试你的REST API?
答案 0 :(得分:2)
我认为您不能使用专为SOAP设计的工具来测试您的REST API。我的意思是你可以使用任何你想要的基础知识,例如带有curl和jasmine的节点,或者其他任何东西,我想这部分并不重要。我更关心测试可维护性......
REST架构有一个HATEOAS原则,即REST Web服务应该提供抽象控制器,客户端应该使用这些控制器,而不是从头开始构建新的控制器。这样可以防止业务逻辑重复,并使您的REST客户端难以中断,例如使用不同的URL模板或添加新功能。
如果您想测试REST API,我认为您应该考虑构建一个自动客户端以进行测试。此客户端应解析由REST Web服务返回的超媒体 - 以便遵循它包含的链接。它应该在它们包含的链接关系(因为这是当前的准标准)之后识别链接。因此,简单并使用cURL与当前测试创建的URL不是我认为的选项...目前我不认为这种工作有任何通用工具,你必须自己使用HTTP客户端编写它和测试框架......顺便说一句。这个自动化客户端可以作为如何为您的API构建客户端的示例,因此这可以通过单元测试文档类的方式来记录您的API ......
答案 1 :(得分:1)
您可以阅读描述一些SOAPUI替代方案的文章 - 5 Best SOAPUI alternative applications
您还可以查看12 Great Web Service Testing Tools以获取常用REST测试工具的简要说明。
答案 2 :(得分:0)
如果你想要一个完整的套件,我认为SoapUI是要走的路......现在,为了测试我开发的RESTful API,我实际上使用Node(如果你愿意,还是使用bash)+ cURL + TeamCity(Continuous Integration Server) )。 怎么样?好吧,基本上我通过节点脚本定义我的测试场景,然后将它们作为作业添加到我的持续集成服务器(我正在使用TeamCity,但Jenkins或任何其他CI应该工作)。 只是为了澄清:它不是一个工具,正如您对您的问题所期望的那样,但使用这种组合您可以获得足够的灵活性来实现您需要的任何类型的复杂测试方案。即使您具有将测试直接集成到部署管道的额外好处。实际上并不难。
答案 3 :(得分:0)
我找到了一个有趣的免费SOA测试工具:SOArite。值得一试