前言
大家好,我是洋子。接口(API)测试对我们来说已经很常见了,目前很多公司都会招聘服务端测试工程师进行接口测试。因为在测试三层金字塔当中,接口测试位于中间层,做接口测试性价比较高,容易以较低成本暴露发现服务端的问题,同时也可以进行接口自动化测试,提高接口测试的效率
UI测试位于测试金字塔的最顶层,UI测试通俗的来说就是点点点。对于某些页面不会频繁变动的场景,我们也可以进行UI自动化测试
本文第一部分将会介绍接口测试工具(包含接口自动化测试框架),以及接口Mock工具、接口文档开发工具和接口管理工具。而第二部分将会介绍UI测试的相关工具
接口测试工具
比较好用的接口测试工具有Postman
、Jmeter
、SoapUI
、REST-Assured
、Apifox
、Katalon Studio
、Karate
以及Robot Framework
自动化测试框架
Postman
Postman一款非常流行的API调试工具,基本上做软件测试涉及到接口测试就会用到它,使用起来也很方便,填写好接口的URL,参数,Cookies等,发送接口请求后,就能看到接口的返回值
官网地址:https://www.postman.com
JMeter
JMeter是一款用于应用程序压力和性能测试的开源软件,也被广泛用于接口测试。JMeter支持REST、SOAP、HTTP、HTTPS、FTP、TCP等多种协议
插件支持:https://jmeter-plugins.org/
官网地址:https://jmeter.apache.org/
Robot Framework
Robot Framework是一个完全基于关键字测试驱动的框架,它既能用跟Python的requests
库结合进行接口自动化测试,也可以结合selenium,appium
做UI自动化测试。导入这些测试库后,定义关键字,一个关键字可以是一段业务逻辑,然后再编写测试用例(测试用例由测试关键字组成)进行测试。例如:一个简单的登陆测试由:登陆 输入密码 登出三个关键字组成,也可以由一个关键字登陆组成,关键字颗粒的大小可以自行定制
官网地址:https://robotframework.org/
SoapUI
SoapUI是一款应用非常广泛的SOAP和REST API自动化测试工具,凭借其易于使用的图形界面,测试人员可以轻松验证基于 REST 和 SOAP 的 Web 服务,非常适合复杂的测试场景
官网地址:https://www.soapui.org/
REST-Assured
REST-assured 用于方便 REST 服务测试的 JAVA DSL,测试REST API非常方便,支持XML和JSON请求/响应,支持BDD-Given/When/Then的语法。这个框架让我们使用Java语言写接口测试用例变得容易和简单
官网地址:http://rest-assured.io/
Apifox
Apifox 作为接口测试工具功能强大,可以支持API 文档定义、API 调试、API Mock、API 自动化测试。简单来说,Apifox = Postman Swagger Mock JMeter
此外,Apifox 天生就是为团队协作而生的,接口云端实时同步更新,成熟的团队/项目/成员权限管理,满足各类企业的需求
官网地址:https://www.apifox.cn/
Katalon Studio
Katalon Studio是一个强大而全面的自动化工具,用于API、Web、桌面测试和移动测试。Katalon Studio通过在一个包中包含所有框架、ALM集成和插件,提供了轻松的部署。将UI和API/Web服务组合到多个环境(Windows、Mac OS和Linux)。此外,Katalon Studio还是一款无代码化的自动化测试工具,不用测试者搭建繁琐的测试环境
官网地址:https://www.katalon.com/
Karate
Karate是一个用于API测试的开源框架,不需要使用编程语言开发测试代码,测试人员可以通过使用特定领域的语言编写测试用例。该工具专门为自动化API测试而设计,但现已经覆盖了API 接口功能测试、UI自动化测试、性能测试,并提供Mocks支持。《敏捷测试:以持续测试促进持续交付》一书4.9.4节中有关于Karate测试工具的详尽介绍
特点
- 建立在Cucumber-JVM基础上
- 可以像标准的Java工程一样运行测试并且产生报告
- 测试代码的开发不需要掌握任何的Java知识
- 即使对非编程人员,测试代码也很容易编写
官网地址:https://github.com/karatelabs/karate
除此之外,Pytest
也可以用做接口测试的管理框架,在2021年软件测试领域常用工具总结(1)已经介绍过这款框架,这里不再重复介绍
接口Mock工具
WireMock
WireMock 是一个 Http 模拟服务,其核心是 web 服务,WireMock 可以为特定的请求(stubbing)提供固定的响应,并捕获传入的请求,以便后面校验(验证)。WireMock 可以作为第三方库在项目中使用,也可以作为单独的进程启动
官网地址:http://wiremock.org/
Hoverfly
Hoverfly是一个轻量的API服务模拟工具(有时候也被称作服务虚拟化工具),可以创建应用程序依赖的API的真实模拟。Hoverfly用于创建可重复使用的虚拟服务,在CI环境中替代缓慢和不稳定的外部或第三方服务,还可以模拟网络延迟,随机故障或速率限制以测试边缘情况。此外,Hoeverfly提供多种运行模式,可以对HTTP响应进行记录,回放,修改或合成
官网地址:https://hoverfly.io/
接口文档开发工具
Swagger
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。Swagger除了具备API设计、开发和文档化的功能,还支持API的测试和API mock功能。Swagger 支持OpenApi 3.0的文档标准
官网地址:https://swagger.io/
接口管理工具
YApi
Yapi 由 YMFE开源,旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护API。Yapi支持内网部署,只需在管理员或内网某台机器上安装部署一次,团队其他成员不需要部署,访问相应的地址即可使用
官网地址:http://yapi.smart-xwork.cn/
UI测试工具
AirTest
Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架。可以很方便的进行UI自动化测试
官网地址:https://airtest.netease.com/
Appium
Appium是一个开源的,适用于原生或混合移动应用( hybrid mobile apps )的UI自动化测试工具,Appium应用WebDriver: JSON wire protocol驱动安卓和iOS移动应用。支持多平台(Android、iOS等),多语言(python、java、ruby、js、c#等)
官网地址:http://appium.io/
Selenium
Selenium是一款web UI自动化测试工具,可以很方便地模拟真实用户对浏览器进行操作,它支持各种主流浏览器:IE、Chrome、Firefox、Safari、Opera等
官网地址:https://www.selenium.dev/
Cypress
Cypress是面向web的、端到端的、开源的自动化测试工具,在github的star数目前已经是35.2k ,可见深受广大测试人员的欢迎。Cypress能够随意调整页面访问窗口的尺寸、自动重新加载测试、自动等待等,可以实时看到有多少个测试通过或是没通过,并且具有良好的可调试性,像chrome的DevTools一样直接调试,可以快速的追踪到出错栈,可以在测试运行中自动存储视频以及出错时候截屏存储,鼠标滑过命令行时可以看到这个命令行执行时的动画。
官方站点:https://www.cypress.io/
开源代码:https://github.com/cypress-io/cypress
总结
2021年已经过去,回顾一整年,有许多的新兴接口测试工具出现在我们的视野里,大家可以根据自己公司的业务需求对决定是否使用。而对于UI测试工具,目前主流的还是Appium与Selenium,但是Cypress的口碑也爆棚,值得一试
相关文章
2021年软件测试领域常用工具总结(1)-抓包工具与单元测试工具篇