自动化测试介绍及分类
什么是自动化测试?
自动化测试是软件测试活动中一个重要的分支和组成部分,即利用工具或脚本达到测试目的,没有人工或者极少人工参与的软件测试活动称为自动化测试.
自动化测试的优势有哪些?
- 方便进行回归测试,当软件的版本发布比较频繁的时候,自动化的效果很明显
- 自动处理原本烦琐、重复的任务,提高测试的准确性和测试人员的积极性
- 具有复用性和一致性,可以在不同的版本上重复运行,保障测试内容的一致性
自动化测试的分类:
(1)从软件开发周期的角度分类:
- 单元自动化测试:自动化的完成对代码中的类和方法进行测试,主要关注代码实现细节及业务逻辑等方面。
- 接口自动化测试:测试系统组件间接口的请求和返回,接口测试稳定性高,更适合开展自动化。
- UI自动化测试:对图形化界面进行流程和功能等方面进行测试。
(2)从测试目的的角度分类:
- 连接和其他比较稳定而不经常发生变化的元素
- 性能自动化测试:依托自动化平台自动的执行性能测试、收集测试结果,并分析测试结果的一种接近无人值守的性能测试,具有以下特性:
a.对脚本创建和提供类库和其他模块支撑
b.可以设定自动化任务(比如每天根据特定的场景执行一轮性能测试)
c.自动收集测试结果并存储
d.事中监控(比如场景执行过程中的异常错误自动预警邮件功能)
e.成熟的平台可以进行自动分析功能(比如哪些事物有问题、哪些资源消耗异常等)
f.安全自动化测试
自动测试工具分类
UI自动化
- Selenium
- Appium
- Robot Framework
- Airtest
- Cypress
- ...
接口自动化
- Jemeter
- Postman
- python+Requests
- SoapUI
- HttpClient
单元测试工具
- JUnit
- TestNG
- unittest
- pytest
怎样选择测试框架?这里有一些标准可参考:
- 相对快速和方便设置(或开箱即用的解决方案)
- 支持社区或开发者自己可以为其框架提供支持
- 有清晰而全面的文档
- 与其他工具充分集成
- 有一些很酷的功能,例如代码可重用性支持在多个平台和环境进行测试
接下来作者汇总了一些测试工具,大家可以参考一下。
还有很多值得推荐的测试工具没有列举出来,欢迎大家在留言处进行补充。
Selenium(UI自动化测试)
Selenium 是一个涵盖几种工具的生态系统,主要包括:Selenium WebDriver、Selenium IDE 和 Selenium Grid。
Selenium 的核心特性是跨浏览器和跨平台测试,多种测试语言(Python、Java、C#等),高度可调整的开源代码,并行运行测试等。
官网地址:
https://www.selenium.dev/
Appium(UI自动化测试)
Appium 是跨平台的,它允许您使用相同的 API 编写针对多个平台(IOS、Android、Windows)的测试。这使 IOS、Android 和 Windows 测试套件之间的代码重用成为可能。
官网地址:
http://appium.io/
Cypress(自动化测试)
Cypress 是基于 web 的下一代前后端测试工具,与 Selenium 相比,Cypress底层协议不采用 WebDriver,这使得它能够实现快速、简单、可靠的测试。
Cypress 支持端到端测试、集成测试、单元测试。
官网地址:
https://www.cypress.io/
Robot Framework(自动化测试)
Robot Framework 是一款 Python 编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。
官网地址:
https://robotframework.org/
Airtest(自动化测试)
Airtest 是网易出品的一款基于 Python 语言、可通过图像识别和 poco 控件识别的一款 UI 自动化测试工具,包括 AirtestIDE、Airtest、Poco、AirLab 等部分,有 Poco、图像识别、selenium 三个大类库,适用于游戏、APP、web、Windows 程序项目的自动化测试,可以轻而易举的实现自动化测试流程。
官网地址:
https://airtest.netease.com/
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后可以免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。