自动化测试概念
自动化测试技术,是以程序测试程序,以代码代替思维,以脚本的运行代替手工测试
什么是框架?:
框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题
了解自动化
优势
- 回归测试更方便可靠
- 可运行更多更繁琐的测试,且快速高效
- 可执行相对于手工来说相当困难或跟本做不到的测试
- 更好的利用资源,使资源的使用更有价值
- 自动化脚本完全具有复用性
- 具有一致性和可重复性
- 使软件更有信任度
- 多环境下测试
劣势
- 只能发现15%的缺陷,无法发现新的bug
- 永远不可能代替手工测试
- 无法完全保证测试的正确性
- 手工测试发现的缺陷远比自动化测试的多
- 对测试质量的依赖性极大
- 测试自动化可能会制约软件发展
- 自动化工具死板问题
- 成本投入高,风险大
- 自动化测试要求相对较高
- 不会加快测试过程
使用范围
- 回归、冒烟测试
- 软件需求变动不频繁,功能稳定的项目
- 自动化测试脚本可重复使用
- 用例里只有30%的用例可以使用自动化
不适用
- 软件不稳定
- 用户很少的功能
- 用户体验测试
- 涉及物理交互
基于测试类型分类
- 功能、非功能自动化测试(性能,安全)
- 阶段性划分
- 单元自动化测试(开发人员做)
- API自动化测试
- UI自动化测试(面向用户)
实施流程
- 自动化测试适应性分析(明确项目是否合适自动化测试)
- 自动化测试需求分析(测试的范围,能够使用自动化测试的需求)
- 制定自动化测试计划
- 设计自动化测试用例(能够使用自动化测试的手工测试)
- 搭建自动化测试架构(框架)
- 编写自动化测试脚本(用例)
- 运行自动化测试脚本
- 分析自动化测试结果(发报告之前分析结果)
- 维护自动化测试脚本(新脚本添加,旧脚本维护)
框架的类型
- 线性框架(不需要写代码)
- 模块化框架(独立的测试)
- 数据驱动框架(数据和逻辑分开,不同的用例产生不同的用例方法方法,自动化测试基于数据驱动)
- 关键字驱动框架(耗时,复杂,难维护)
- 混合型驱动框架(基于其他框架的优点)
1、框架本身一般不完整到可以解决特定问题;
2、框架天生就是为扩展而设计的;测试用例设计原则:
- 自动化测试用例的范围往往是核心业务流程或者重复执行率较高的业务流程
- 自动化测试用例的选择一般以“正向”为主
- 不是所有的手工测试用例都可以使用自动化测试来实现
- 手工测试用例可以不用回归原点,而自动化用例往往是必须的
- 自动化测试用例不需要每个步骤都写预期结果(只在关键点检查)
selenium部署
selenium3代是一个可移植性的开源测试框,支持多语言,主要用于测试web应用程序的自动化测试框架
结构:py(测试脚本)---调用selenium----webdriver(驱动)----浏览器(HTMLreport,ddt)
webdriver 模拟真人控制页面的驱动,要部署相应的驱动来驱动浏览器的运行
环境部署
- 部署python环境(操作系统)
- 部署安装phcharm
- 部署第三方模块
- pip install selenium htmlreport -i https://mirrors.aliyun.com/pypi/simple
- 将浏览器驱动放入浏览器安装目录下 驱动下载:https://liushilive.gitee.io/github_selenium_drivers/
- 将浏览器安装目录放入环境变量 path 中:把驱动拖入浏览器文件所在目录,复制目录粘贴到环境变量path中
selenium 系统驱动模块
网页驱动webdriver
from selenium.webdriver.remote.webdriver import WebDriver #引入浏览器驱动模块中的WebDriver类 from selenium import webdriver #引入浏览器驱动模块 from selenium.webdriver.common.keys import Keys #引入键盘特殊按键定义 from selenium.webdriver.support.s