14个适用于REST和SOAP服务的开源API测试工具

2018-01-03   出处: www.joecolantonio.com  作/译者:Joe Colantonio/初心

                                   


随着我们向更敏捷的左移软件开发过程(如持续集成和交付)迈进,快速向开发人员提供测试反馈的需求正在增加。UI测试的一个不足之处是它们的速度很慢,如果开发者的代码破坏了最新的构建,它们很难让开发者快速地知道。另一方面,API测试往往比UI测试更快,并且也更加可靠。

在仔细研究API测试工具之前,我们需要确保我们对API有着同样的理解。


什么是API

Application Programming InterfacesAPI)是软件组件之间的接口规范。大多数的功能测试包含了Web页面测试或.net表单类的用户界面测试,而API测试绕过了用户界面通过调用API接口与应用程序直接进行通信。

API测试允许你测试像JMS HTTP,数据和web服务之类的无头技术。API测试有时也被称为“无头”测试。大多数的无头测试技术都包含了“绕过UI操作,直接发送请求给应用的后端或服务并接收响应,同时检验响应是否正确来保证系统按照我们预期的那样工作”。

一个简单的例子就是客户端与服务器之间的通信。客户端针对某一资源发出请求,该请求被发送到服务器并找到可以响应该请求的服务器。服务器查找客户端所请求的资源并将响应发送回客户端。

 

可以使用什么工具来自动化地进行API测试?

Selenium是一个基于浏览器的测试工具,你也许想要知道有什么工具可以开展基于RESTSOAP的服务的测试。下面将介绍几个流行的API测试工具,可以用来测试符合RESTSOAP规范的web服务。

Postman  

Postman是一个REST客户端,起初作为Chrome浏览器的插件而运行,但最近推出了MacWindows的原生版本。你可以使用Postman发送一个post请求给web服务器,并且它会解析服务器返回的响应。它允许你构建你的API所需要的所有headercookie并能够检查服务端返回的响应。它有如下的特点:

1:可以被用来做自动化测试,也可以被用来开展探索式的测试

2:可以运行在MacWindowsLinux以及Chrome App

3:有许多集成,例如支持SwaggerRAML格式

4:有运行,测试,文档化和监控等功能

5:不需要学习一门新的语言


Karate DSL  

Karate允许你创建一个可以调用任何类型网络服务的测试,并且能够将得到的响应和期望值进行比较。它有如下的特点:

1:建立在 Cucumber-JVM基础上

2:可以像标准的Java工程一样运行测试并且产生报告

3:测试代码的开发不需要掌握任何的Java知识

4:即使对非编程人员,测试代码也很容易编写

这里有一个简单的例子可以让你快速地了解Karate


SoapUI   

SoapUI是由SmartBear公司开发的一款功能测试工具。它有两个版本:免费的开源版本和专业版本。免费的版本是完全开源的,因此你可以根据需要对源代码进行修改。专业版本更容易使用,并且有更多的功能包括表单编辑器,Xpath形式的断言向导和SQL查询生成器。而免费版本所具有的功能特点有:

1:可以使用Groovy轻松创建自定义代码

2:拖放式的测试创建

3:可以创建复杂场景的测试

4:异步测试

5SoapUImock服务允许在Web服务实现之前模拟Web服务


HttpMaster Express   

HttpMaster声称自己作为一个web开发和测试工具可以自动化地测试web站点和服务。它可以被用来测试具有REST风格的web服务和API应用程序。同时HttpMaster允许你监视API响应。通常它具有如下特点:

1HttpMaster提供了全局选项来自定义你的API请求

2:参数功能允许你在请求中包含动态的数据

3:你可以使用请求链功能使请求中可以包含来自之前请求的一些数据,并提供数据给后续的请求


Rest- Assured    

Rest- Assured是一个开源的Java域特定语言(DSL),它能够使REST服务测试变得简单。它尽量不使用样板代码来测试和验证复杂响应,从而简化对REST服务的测试。它也支持XMLJSON格式的请求和响应。它具有如下的特点:

1:不需要创建与REST服务进行交互的样板代码

2:支持BDD Given/When/Then语法

3:与Java项目能够无缝集成

 

RestSharp  

RestSharp是一个简单的适用于.net应用的具有REST风格的HTTP客户端。它具有如下的特点:

1:支持.NET 3.5+Silverlight 5Windows Phone 8MonoMonoTouchMono for Android

2:对大多数支持.net的平台,可以使用NuGet来轻松地安装RestSharp

3:支持GETPOSTPUTPATCHHEADOPTIONSDELETE等请求方法


Rest Console    

Rest Console是一个HTTP请求可视化和构造工具,可帮助开发人员构建,调试和测试RESTful API。它具有如下特点:

1:请求参数很容易构建

2:具有语法高亮功能

3:支持身份验证:普通,基本和Oauth+自定义

 

RoboHydra Server     

RoboHydra是一个适用于基于HTTP的客户端(即发出HTTP请求的软件)的测试工具。在测试时,待测试的客户端不是连接到真正的服务器,而是连接到RoboHydraRoboHydra将响应每个请求所需的任何数据。它具有如下特点:

1:你可以测试许多类型的客户端

2RoboHydra是用Javascript开发的,运行在Node环境下

 

Hippie-Swagger    

Hippie-Swagger是一个测试RESTful API的工具,它也是一个带有自动化的swagger断言的API测试工具。除了能够验证API的行为,当swagger文档丢失或不准确时它将会运行失败。它具有如下特点:

1:可以验证swagger文件的所有方面:参数,请求/响应主体,路径等

2:具有准确的,可读的断言信息


Weblnject    

Weblnject是一个针对自动化测试web应用和web服务的解决方案。它可以被用来测试单独的具有Http接口(如JSP, ASP, CGI, PHP, AJAX, Servlets, HTML Forms, XML/SOAP Web Services, REST等)的系统组件。它具有如下特点:

1:是一个基于命令行的工具

2:是用Perl语言开发的,可以被安装在MS Windows, GNU/Linux, BSD, Solaris, MAC OS

 

PyRestTest    

PyRestTest是一个基于pythonREST API测试工具。它具有如下特点:

1:可以在YAMLJson配置文件中编写测试用例,不需要代码

2:会返回失败时所调用的代码

3:只能运行在MacLinux环境中

 

Airborne    

Airborne是一个基于RubyRSpec驱动的API测试框架。它具有如下特点:

1:适用于像SinatraGrape类的Rack应用

2:适用于使用Rails编写的API

 

Unirest

Unirest是一个轻量的HTTP请求库,由Unmesh Gundecha推荐。可以和xUnit结合,BDD开发者可以把它作为一个测试工具。

 

Mockbin   

MockbinAugusto Marietti推荐。Mockbin允许你生成自定义端点来测试,模拟和跟踪库,套接字和API之间的HTTP请求和响应。它具有如下特点:

1:可以模拟客户端

2:能够创造客户端HTTP方法

3:能够记录并检查客户端下一步调用

 

以上我所提到的都是一些流行的API测试工具,但实际上API测试工具随处可见,因此在之后的时间中我有可能会继续扩充以上的内容。

 

【英文原文:https://www.joecolantonio.com/2017/05/16/12-open-source-api-testing-tools-rest-soap-services/

{测试窝原创译文,译者:初心}

译者简介:初心,在读东南大学硕士




声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
482° /4789 人阅读/4 条评论 发表评论

藕丝代劳  2018-01-08

您好,我是小移测评(ID:cmcc_zc)小编,请问这篇文章可以授权我们转载吗?


小窝  2018-01-08

@藕丝代劳 注明出处、链接和作译者 就好。欢迎转载


藕丝代劳  2018-01-10

好的谢谢


初心  2018-01-11

@藕丝代劳 谢谢您的肯定!我们会继续加油创造更多精彩内容的!


登录 后发表评论