重点/难点
- 重点:理解自动化测试的原理及其流程
- 难点:Selinum自动化测试工具的使用
目录
系统测试
- 什么是系统测试
- 什么是功能测试
- 什么是性能测试
- 常见的性能指标有哪些
自动化测试概述
测试面临的问题
- 测试用例数量增多,工作量增大,许多测试用例需重复执行
- 手工测试占用人力资源,工作重复单调,影响测试人员积极性
自动化测试的概念
- 通过测试工具和脚本,按预定计划自动进行软件测试
- 验证软件是否满足用户需求
特点
- 可重复性
- 可操作系统
- 高效率
通常情况下,引入自动化测试需要满足以下条件:
● 项目需求变动不频繁
● 项目周期足够长
● 自动化测试脚本可重复使用
自动化测试的适用范围
- 非常重要的测试和广泛范围的测试,如组件、功能、性能、安全性、移动APP兼容性测试等
- 内部系统间的交互点
- 期望测试结果可预料,测试复用性要求强
- 加快软件开发周期,通过自动化测试缩短测试周期,提高软件信度
- 手工测试困难或不可能的测试,如性能测试的负载测试
- 运行频繁的测试,或短时间内需要大量测试
- 全面、准确、快速响应的测试,及全面的测试管理
自动化测试的局限
- 不能代替手工测试
- 预期结果不确定时
- 缺乏自动化测试经验时
- 文档较少或不一致时
- 发现缺陷能力不足
- 测试成本较高
自动化测试技术
以用户登录功能为例
- 执行测试前,完成测试用例设计
- 模拟手工测试过程:
- 模拟用户的手工操作
- 记录执行过程
- 判断测试结果
- 统计测试情况
自动化功能测试任务
- 识别被测系统
- 驱动被测系统
- 记录执行过程
- 设置校验点,判断测试结果
- 统计测试情况
自动化测试的原理
录制/回放技术
- 自动录制手工操作,转化为测试脚本
- 在脚本中插入指令设置校验点
- 测试工具读取脚本,执行指令,重复制定测试用例
自动化测试的流程
测试用例模板
自动化测试的关键技术
- 对象识别
- 脚本技术
- 自动比较技术
- 自动化测试框架
对象识别
-
Windows对象
-
App对象
-
Web对象
脚本技术
- 线性脚本:录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放
- 结构化脚本:具有逻辑结构、函数调用功能
- 数据驱动脚本:测试输入存储在独立数据文件中,而不是存储在脚本中
- 关键字驱动:"填表格"式的关键字驱动封装,测试人员进行自动化测试时只要考虑3个问题就可以了:做什么、对谁做、怎么做。
自动比较技术
- 验证点命令与对象值的比较
- 静态比较与动态比较
- 简单比较与复杂比较
- 敏感性测试比较与健壮性测试比较
- 比较过滤器
Selenium自动化测试工具
- 用于Web应用程序测试
- 测试浏览器兼容性与系统功能
- 支持IE、Mozilla Firefox、Safari、Google Chrome、Opera等浏览器
- 这个工具的主要功能包括:
测试与浏览器的兼容性
测试系统功能 - 在普遍的经验中,一般会对具有下列特征的项目开展UI自动化测试:
软件需求变动不频繁
项目周期较长
Selenium IDE与WebDriver与Grid
Selenium IDE
- 嵌入Firefox的插件,录制与回放Selenium脚本
Selenium WebDriver
- 操作浏览器的API,支持多种编程语言
Selenium Grid
- 支持多节点并行执行多个测试,不同浏览器和操作系统
Selenium脚本
- 接下来编写第一个Selenium Python脚本,本例使用Selenium WebDriver提供的类和方法模拟用户与浏览器的交互,代码如下所示。
不同的浏览器版本需要下载匹配其版本的驱动程序
谷歌:http://npm.taobao.org/mirrors/chromedriver/
火狐:https://github.com/mozilla/geckodriver/releases
Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
WebDriver原理
- Selenium-client无法直接操作浏览器
- WebDriver作为中介,调用浏览器原生组件
- 实际上是Selenium-client去请求WebDriver,然后WebDriver通过调用浏览器原生组件驱动浏览器操作。
Selenium WebDriver的常用方法
Selenium WebDriver的功能
示例:定位一组元素
- 在百度首页找到所有链接并输出链接文字
WebElement接口