随着越来越多的企业开启DevOps实践、进行持续集成(CI)和持续交付(CD),对于测试的反馈要求越来越快,以往只关注UI级自动化测试,已经难以满足效率改进的需要,那如何进一步改进测试效率呢?
当我们的服务已经准备好发布时,API级的自动化测试应当立即启动验证,快速的获取到接口级业务流的测试反馈结果。
市面上有各式各样的API测试工具,但如何去选择呢?
下面我们就几个笔者以为最能帮助你的五个API测试工具进行介绍,选择其中一个或多个可以帮助更好的完成API测试工作。
REST-Assured
在使用Java时,Rest-Assured是我们实现API自动化测试的首选,下面我们看下REST-Assured介绍:
REST Assured是一个可以简化HTTP Builder顶层 基于REST服务的测试过程的Java DSL(针对某一领域,具有受限表达性的一种计算机程序设计语言)。它支持发起POST,GET,PUT,DELETE,OPTIONS,PATCH和HEAD请求,并且可以用来验证和校对这些请求的响应信息。
REST Assured提供了类似行为驱动开发(BDD)方式来创建API测试,内置了许多的功能。
Postman
很多情况下,测试人员并不具备编程开发能力,对于他们而言Postman是 一个很好的选择,可以快速入手进行API测试,并且不需要担心有太大的技术学习成本的投入,如果你愿意,那么你可以基于Postman创建更多的API集成测试方案。
Postman是一个易于使用的REST客户端,你可以快速的利用它的Chrome插件开始使用,当然也可以使用其客户端版本(支持windows、linux和mac)。
- 可用于自动化测试或探索性测试
- 可以在 Mac、Windows、Linux 和 Chrome 中运行
- 拥有不少集成工具,比如 Swagger 和 RAML 格式
- 可以运行、测试,并拥有文档和监控功能
- 不需要学习新的语言
SoapUI
SoapUI已经存在一段时间了,如果你的团队只进行API测试,并且主要由测试工程师而不是开发人员组成的话,那么SoapUI可能是一个最佳选择。
SoapUI是一个专门用于API测试的全功能测试工具。API不需要从头开始创建解决方案,而是一个有严格规则限制的API测试工具。
同时SoapUI为了增强自定义工作流或功能,支持直接编写Groovy,以提升SoapUI的扩展能力,从而也无缝链接java相关技术了。
如果您的团队有复杂的API测试场景,并且倾向于QA/测试工程师,那么SoapUI是一个很好的工具。
- 使用 Groovy 很容易创建自己的代码
- 通过拖放创建测试
- 构建复杂的场景
- 异步测试
- SoapUI 的 Mock Service(模拟服务) 可以让你在 Web 服务尚未实现之前先进行模拟
JMeter
尽管JMeter是为负载测试而生的,但在实践中我们依旧将它用于功能性的API测试。
JMeter包含测试API所需的所有功能,以及一些可以用于增强API测试的额外功能。
例如Jmeter可以自动处理csv文件实现API测试的参数关联,它还可以与Jenkins集成,这意味着可以在CI管道中集成API测试。
如果你期望在创建性能测试时也能利用到API测试功能,那么JMeter是你的首选。
Jenkins
上述已经介绍了几款常用的API测试工具,但却缺乏一个基础设施,那就是持续集成的基础,而Jenkins作为国内大家所熟知的工具,这里推荐将Jenkins作为CI/CD的基础设施,可以与上述任一工具进行集成,将你的API测试与日常的测试相结合,从而逐步构建起人工与自动化测试的协作策略,进一步改善日常测试工作。
API测试工具有了,API测试集成基础设施也有了,是不是发现还少点什么呢?
对的了,还缺少一项基本的工具:抓包分析工具。
在实际工作当中,软件测试人员很多情况下获取不到API文档,或是获取到的是残缺的API文档,这个时候就需要软件测试人员自己动手抓包分析了。
就国内企业而言,笔者推荐软件测试人员根据测试需要,自己去抓包分析,形成API测试用的API文档,一是结合用户加深对API级业务的理解,二是直接提升自己的协议分析能力,下面我们推荐一款基本的抓包工具,当然你也可以根据你的需要选择其他的。
Fiddler
Fiddler是一个允许监控、操作和重用HTTP请求的工具,允许你调试网站,并且有许多特色的插件。
其中之一的APITest插件,可以帮助我们在抓包分析时,验证api的行为。
小结
没有完美的工具,只有根据你的团队需要来选择合适的工具。因为实际上几个API测试工具都可以完成我们在企业中API测试实践的需要,并且都是很好的选项,就看你的选择了。