1. 自动化介绍
什么是自动化?自动化测试的概念有广义和狭义之分:广义上讲:所有借助工具来辅助进行软件测试的方式都可以称为自动化测试;狭义上讲:主要是指基于UI层的功能自动化测试。
对于自动化要抓住关键:
模拟人工、提升效率、脚本复用、减少重复工作
相对手工而言:使用工具或代码
验证功能业务满足需求
本质上提升测试效率
适用于回归测试
2.自动化的适用范围
什么项目适合自动化测试呢?
项目需求稳定:软件系统界面稳定,UI界面变化不频繁
项目周期长:软件维护周期长,一般在半年以上的项目,且存在版本迭代
项目进度压力不太大:项目中进度比较稳定,不存在太大的压力,需要比较频繁的进行回归测试;
测试人员具备较强的编程能力:如掌握Python、Java语言
系统开发规范:被测软件系统开发较为规范,能够保证系统的可测试性
任务测试明确,不会频繁变动。
3.自动化的工具
自动化测试工具有很多,这里介绍几种常用的:
UFT(QTP) :企业级自动化测试工具,提供强大、易用的录制回放功能,同时兼容对象和图像两种识别模式,支持B/S和C/S两种架构的软件测试,属于付费工具 ;
Selenium :用于web应用程序测试工具,支持多平台,多浏览器,多语言(当下主流的语言Java,Python)去实现自动化测试,属于开源工具;
Robot Framework(RF) :基于Python语言编写的自动化测试框架,具备良好的可扩展性,支持关键字驱动,同时可测试多种类型的客户端或接口,可进行移动端测试,开源的;
Appium: 用于移动端App测试工具,支持多平台(Android ,IOS、H5),多语言(Java,Python)进行自动化测试,属于开源工具;
4.自动化框架
那么主流的自动化测试框架有哪些呢?
一般自动化测试框架都要由编程语言+单元测试框架+扫描编译工具+持续集成工具+测试结果平台+数据库+项目管理工具组合而来,每部分的作用如下:
编程语言:负责编写测试脚本、日志记录和输出,主流的编程语言是Java和Python;
单元测试框架:负责进行测试脚本用例的组织和执行,如Java的Junit/TestNg,Python的unittest/Pytest;
扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳,如Maven;
项目代码管理库:负责对自动化代码项目进行管理,比如Git或者SVN;
持续集成工具:负责对自动化进行持续集成,如经典的持续集成工具Jenkins,;
测试结果平台:负责对测试结果数据收集,生成测试报告,并汇总展示,如BeautifulReport,Allure等;
数据库:负责对测试数据进行管理,可以使用Excel,也可以使用MySQL数据库;
项目管理工具:负责对测试结果进行统计管理,如Testlink/ redmine;
常见的自动化框架,比如;
接口自动化框架:
Java Httpclient+testNG/Junit+Maven/Ant/Gradle+Jenkins+Allure/BeautifulReport+MySQL+testlink/redmine
Python Requests+unittest/pytest+Git+Jenkins+Allure/BeautifulReport+MySQL+testlink/redmine
Python+Rebot Framework+unittest/pytest+Git+Jenkins+Allure/BeautifulReport+MySQL+testlink/redmine
JMeter+Maven/Ant+Jenkins+MySQL+testlink/redmine
UI自动化测试框架
Java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
Python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
Python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
说明:自动化测试工具太多,上面只是列举了使用率较高的一些开源工具,具体的框架选型,需要根据具体项目特点和团队、个人技术特点来决定!
领取专属 10元无门槛券
私享最新 技术干货