API测试工具Top 10 你都用过吗?
本文首发于微信公众号: 【软测小生】
API测试(应用程序编程接口测试)是一种软件测试类型,它着重于确定所开发的API是否满足关于应用程序的功能、可靠性、性能和安全性的预期。
根据谷歌Trends,在过去几年里,对API/Web服务测试的兴趣一直在稳步增长。Smartbear 2017年对5000多名软件专业人士的研究显示,在未来两年内,将超过50%的测试自动化的API测试人员的数量预计将增长30%(从59%增长到77%)。此外,80%的受访者表示他们负责一些API测试。
为API自动化测试提供正确的流程、工具和解决方案比以往任何时候都更加重要。API测试是CI/DevOps实践成功的一个重要组成部分。
本文将提供API测试工具排名靠前的总结,这些工具涵盖了开源和商业解决方案,测试团队可以选择这些解决方案来满足他们的需求。SoapUI、Katalon Studio和Postman是排名前三的工具。
1. SoapUI
SoapUI是一个用于API测试的无头功能测试工具,允许用户轻松地测试REST和SOAP API以及Web服务。
免费版(Free package): 使用SOAPUI的免费包,用户可以获得完整的源代码并构建他们喜欢的特性。
- 使用拖放(Drag )、指向(drop)和单击(Point-and-click),快速轻松地创建测试
- 脚本的可重用性:只需几个步骤,就可以对功能测试用例 重用负载测试和安全扫描
收费Pro版本:
- 使用Groovy快速创建定制代码
- 强大的数据驱动测试:从文件、数据库和Excel中加载数据,以便模拟消费者如何与api交互
- 支持本地CI/CD集成,异步测试
Website: https://www.soapui.org/
价格: 免费 和 $659/年(美元)
2. Katalon Studio
Katalon Studio是一个用于API、Web和移动应用程序的免费测试自动化工具。它正在成为API/Web服务测试的领先工具,并将自己定位为面向开发人员和测试人员的全面端到端(end-to-end)自动化解决方案。
Katalon Studio使用各种类型的命令和参数化功能支持SOAP和REST请求。此外,在排名靠前的 API工具中,将UI和API/Web服务结合起来用于多个环境(Windows、Mac OS和Linux)的功能被认为是Katalon Studio的独特优势。
功能亮点:
- 同时支持SOAP和Rest
- 所有在一个商店的API, WebUI和移动测试和综合能力之间。
- 支持数据驱动的方法。
- 可以用于自动化和探索性测试吗
- 支持CI / CD集成。
- 支持AssertJ(最强大的断言库之一),使用BDD样式创建流畅的断言
- 通过手动和Groovy脚本模式,适合非技术人员和专业人员。
Website: https://www.katalon.com
价格: 免费
3.Postman
最初作为Chrome浏览器插件,Postman现在用Mac和Windows的原生版本扩展了他们的解决方案。
- 对于那些不想在集成开发环境中使用与开发人员相同的语言编写代码的人来说,Postman是一个很好的API测试选择。
- 易于使用的REST客户端
- 丰富的界面,使其易于使用
- 可以同时用于自动化测试和探索性测试
- 可以运行在Mac、Windows、Linux和Chrome应用程序上吗
- 有很多集成,比如对Swagger和RAML格式的支持
- 具有运行、测试、文档和监视功能
- 不需要学习一门新语言
- 使用户能够轻松地与团队共享知识,因为他们可以打包所有的请求和期望的响应,然后发送给他们的同事。
Website:https://www.getpostman.com/
价格:免费- $21美元/用户/月
4. Tricentis Tosca
Tricentis Tosca是一个针对敏捷和DevOps的持续测试平台。Tricentis Tosca的好处包括:
- 支持许多协议数组:HTTP(s) JMS、AMQP、Rabbit MQ、TIBCO EMS、SOAP、REST、IBM MQ、NET TCP
- 集成到敏捷和DevOps循环中
- 使用基于模型的测试自动化最大化重用和可维护性
- API测试可以跨移动、跨浏览器、打包应用程序等使用。
- 利用新技术实现可持续的自动化
- 减少回归测试的时间
Website: https://www.tricentis.com/
定价: Contact Sales(接触销售)
5. Apigee
Apigee是一个跨云API测试工具,允许用户度量和测试API性能,支持并使用Swagger等其他编辑器构建API。
- 它是多步的,由Javascript支持
- 允许设计监控、部署和测试api
- 通过跟踪API流量、错误率和响应时间来确定性能问题
- 从开放API规范轻松创建API代理并将其部署到云中
- 基于单个代码库的云、内部部署或混合部署模型
- 用于应用程序和api的PCI、HIPAA、SOC2和PII
- Apigee是专门为数字业务以及支持它的数据丰富的移动驱动api和应用程序而构建的。
Website: https://apigee.com/api-management/
价格:免费试用——每月2500美元
6. JMeter
JMeter(开源)广泛用于功能API测试,尽管它实际上是为负载测试创建的。
- 支持重放测试结果
- 自动处理CSV文件,允许团队快速为API测试创建惟一的参数值。
- 由于JMeter和Jenkins之间的集成,用户可以在CI管道中包含API测试
- 它可以用于静态和动态资源性能测试
Website:https://jmeter.apache.org/
价格:开源
7. Rest-Assured
REST-assured是一种开放源码的特定于Java领域的语言,它使测试REST服务更加简单。
- 有一堆内置的功能,这意味着用户不必从头开始编写代码。
- 与Serenity自动化框架无缝集成,这样用户就可以将UI和REST测试合并到一个框架中,生成出色的报告。
- 支持BDD Given/When/Then语法
- 用户不一定要成为HTTP专家
网站:http://rest-assured.io/
价格:开源
8. Assertible
Assertible是一个专注于自动化和可靠性的API测试工具。
- 支持通过连续集成和交付管道的每个步骤自动化API测试。
- 支持在部署后运行API测试,并与GitHub、Slack和Zapier等熟悉的工具集成。
- 支持使用诸如JSON模式验证和JSON路径数据完整性检查等交钥匙断言验证HTTP响应
网站:https://assertible.com/
价格:免费- $500(美元)/月
9. Karate DSL
Karate DSL是一种新的API测试工具,它帮助以一种简单的方式为基于API的BDD测试创建场景,而无需编写步骤定义。这些定义是由Karate DSL创建的,因此用户可以快速启动API测试。
- 构建在Cucumber-jvm之上
- 可以像任何标准Java项目一样运行测试并生成报告
- 可以在不需要任何Java知识的情况下编写测试
- 测试即使是非程序员也很容易编写
- 支持配置切换/登台,多线程并行执行
网站:https://github.com/intuit/karate
价格:开源
10. 没有一本适用(one-size-fit-all)的工具
很扎心,但却是真的!
我们相信上面的列表列出了最好的解决方案,如果您计划采用API自动化测试的话。然而,就像这个行业的大多数解决方案一样,找到一个理想的工具来解决所有问题几乎是不可能的。
有些人可能会发现商业收费版(Postman, Tricentis Tosca,…)的特点已经足够了,但所有权的成本将是关键因素。
开源解决方案(Rest-Assured, Karate DSL,…)是负担得起的,但需要熟练的资源和努力来实现正确的框架。似乎是成本和其他因素(Katalon Studio、Postman)之间的相对平衡的工具对于需要考虑的特定项目类型可能有缺陷。
没有一本适用(one-size-fit-all)的工具
API测试确立了自动化测试的趋势,并且将开发更多的工具来满足软件开发团队日益增长的需求。找到完美的工具仍然很困难,但是我们有一个好消息,你比以前有了更多的选择。仔细考虑您的需求,每种解决方案的优缺点在早期不要太雄心勃勃,并从上面的列表中挑选出5个相关的候选者。通过创建这些解决方案的POC,您将更好地了解项目的关键因素,并对候选列表进行微调。这种方法为您提供了一个很好的机会,当您的项目更加成熟时,您可以为下一个选择的当前状态和信息确定合适的工具。
image.png