- Selenium 教程
- Selenium - 首页
- Selenium - 概述
- Selenium - 组件
- Selenium - 自动化测试
- Selenium - 环境设置
- Selenium - 远程控制
- Selenium IDE 教程
- Selenium - IDE 简介
- Selenium - 特性
- Selenium - 限制
- Selenium - 安装
- Selenium - 创建测试
- Selenium - 创建脚本
- Selenium - 控制流
- Selenium - 存储变量
- Selenium - 警报和弹出窗口
- Selenium - Selenese 命令
- Selenium - Actions 命令
- Selenium - Accessors 命令
- Selenium - Assertions 命令
- Selenium - Assert/Verify 方法
- Selenium - 定位策略
- Selenium - 脚本调试
- Selenium - 验证点
- Selenium - 模式匹配
- Selenium - JSON 数据文件
- Selenium - 浏览器执行
- Selenium - 用户扩展
- Selenium - 代码导出
- Selenium - 代码生成
- Selenium - JavaScript 函数
- Selenium - 插件
- Selenium WebDriver 教程
- Selenium - 简介
- Selenium WebDriver vs RC
- Selenium - 安装
- Selenium - 第一个测试脚本
- Selenium - 驱动程序会话
- Selenium - 浏览器选项
- Selenium - Chrome 选项
- Selenium - Edge 选项
- Selenium - Firefox 选项
- Selenium - Safari 选项
- Selenium - 双击
- Selenium - 右击
- Python 中的 HTML 报告
- 处理编辑框
- Selenium - 单个元素
- Selenium - 多个元素
- Selenium Web 元素
- Selenium - 文件上传
- Selenium - 定位器策略
- Selenium - 相对定位器
- Selenium - 定位器
- Selenium - 查找所有链接
- Selenium - 用户交互
- Selenium - WebElement 命令
- Selenium - 浏览器交互
- Selenium - 浏览器命令
- Selenium - 浏览器导航
- Selenium - 警报和弹出窗口
- Selenium - 处理表单
- Selenium - 窗口和标签页
- Selenium - 处理链接
- Selenium - 输入框
- Selenium - 单选按钮
- Selenium - 复选框
- Selenium - 下拉框
- Selenium - 处理 IFrame
- Selenium - 处理 Cookie
- Selenium - 日期时间选择器
- Selenium - 动态 Web 表格
- Selenium - Actions 类
- Selenium - Action 类
- Selenium - 键盘事件
- Selenium - 键向上/向下
- Selenium - 复制和粘贴
- Selenium - 处理特殊键
- Selenium - 鼠标事件
- Selenium - 拖放
- Selenium - 笔事件
- Selenium - 滚动操作
- Selenium - 等待策略
- Selenium - 显式/隐式等待
- Selenium - 支持特性
- Selenium - 多选
- Selenium - 等待支持
- Selenium - 选择支持
- Selenium - 颜色支持
- Selenium - ThreadGuard
- Selenium - 错误和日志记录
- Selenium - 异常处理
- Selenium - 其他
- Selenium - 处理 Ajax 调用
- Selenium - JSON 数据文件
- Selenium - CSV 数据文件
- Selenium - Excel 数据文件
- Selenium - 跨浏览器测试
- Selenium - 多浏览器测试
- Selenium - 多窗口测试
- Selenium - JavaScript 执行器
- Selenium - 无头执行
- Selenium - 捕获屏幕截图
- Selenium - 捕获视频
- Selenium - 页面对象模型
- Selenium - 页面工厂
- Selenium - 录制和回放
- Selenium - 框架
- Selenium - 浏览上下文
- Selenium - DevTools
- Selenium Grid 教程
- Selenium - 概述
- Selenium - 架构
- Selenium - 组件
- Selenium - 配置
- Selenium - 创建测试脚本
- Selenium - 测试执行
- Selenium - 端点
- Selenium - 自定义节点
- Selenium 报告工具
- Selenium - 报告工具
- Selenium - TestNG
- Selenium - JUnit
- Selenium - Allure
- Selenium & 其他技术
- Selenium - Java 教程
- Selenium - Python 教程
- Selenium - C# 教程
- Selenium - Javascript 教程
- Selenium - Kotlin 教程
- Selenium - Ruby 教程
- Selenium - Maven & Jenkins
- Selenium - 数据库测试
- Selenium - LogExpert 日志记录
- Selenium - Log4j 日志记录
- Selenium - Robot Framework
- Selenium - AutoIT
- Selenium - Flash 测试
- Selenium - Apache Ant
- Selenium - Github 教程
- Selenium - SoapUI
- Selenium - Cucumber
- Selenium - IntelliJ
- Selenium - XPath
Selenium - 自动化框架
Selenium Webdriver 可用于开发基于关键字、数据和混合驱动框架的测试脚本。关键字驱动框架主要用于创建功能测试用例,在测试用例设计和开发之间有明确的界限。数据驱动框架主要用于创建依赖于外部数据源数据的测试用例,也可以用于回归测试。混合驱动框架是关键字驱动框架和数据驱动框架的组合。
自动化框架的必要性
让我们假设一个由三个人组成的团队被要求为同一个应用程序创建测试脚本。除了编写某些需求的测试脚本外,他们还需要在测试脚本中加入日志记录和报告逻辑。
在没有框架的情况下,所有三个团队成员都将以他们习惯的方式创建测试脚本,并匹配他们的技能组合。除此之外,所有测试脚本都将采用不同的方法开发,这可能会使一起执行所有测试脚本变得困难。
此外,每个测试脚本都将遵循自定义日志记录,这将使收集执行后的日志变得困难。给他们的需求可能需要从外部来源获取数据。在这种情况下,团队成员可能会硬编码数据,或者使用 Excel 文件,或者 XML 文件,等等。因此,不会有任何统一性。
给团队的需求可能有一些共同的功能,例如登录应用程序。在没有框架的情况下,每个团队成员都将为共同的登录功能以及其他独特需求创建测试脚本。因此,登录功能无法重用,导致测试脚本重复。
在报告测试脚本为通过/失败时,团队的每个成员都会采取不同的方法,这将在执行后使报告变得困难。此外,测试脚本可以在不同的测试运行器中执行,例如使用纯 Java、TestNG、JUnit、Maven 等。在没有框架的情况下,每个团队成员都可以遵循不同的方法来运行测试脚本,因此我们可能无法将测试脚本作为一个套件运行。
为了解决这些问题,我们需要自动化框架。
什么是自动化框架?
自动化框架是一组标准、假设和准则,用于创建每个人都应遵守的测试脚本。每个组织或团队可能使用不同的框架,但每个框架都应遵循一组共同的规则。
框架开发是一个持续的过程,它需要时间来开发一个详尽的框架。框架需要定期更新和维护。例如,某些库可能已弃用,为此我们可能需要更新库,在某些情况下可能需要添加其他库以使框架更强大。
一旦在一段时间后开发了一个动态框架,新的测试脚本就可以在很短的时间内开发出来。除此之外,维护也变得相对容易。
自动化框架的组件
自动化框架的组件包括:
测试用例标准化(测试)
测试用例应以统一的方式开发。例如,可以通过遵循称为页面对象模型的设计模式方法来创建测试用例。
日志记录标准化(记录器)
测试用例的开发应确保进行适当的日志记录,以检查执行过程中哪些地方正确或错误,以及进行调试。
测试数据和配置标准化(数据提供者)
测试用例的开发应尽可能减少硬编码,并且测试数据和配置应保存在单独的文件中。因此,如果需要更改,我们只需要更新那些文件,而无需更新其他区域。
实用程序库标准化(帮助程序/可重用库)
有一些与项目无关的实用程序,例如在失败时捕获屏幕截图、同步、生成报告、日志等等。除此之外,还有一些与项目相关且大部分可重用的实用程序,例如登录功能。
测试执行引擎(测试运行器)
应识别和定义适当的执行引擎。测试用例可以从 Jenkins、Maven、TestNG 等运行。
报告标准化(报告器)
应进行适当的报告,以向项目利益相关者展示执行情况。报告至少应涵盖测试运行的功能、测试总数、通过和失败测试的数量、测试持续时间、失败的屏幕截图等等。
自动化框架的类型
自动化框架的类型如下:
关键字驱动框架
关键字驱动测试框架是最流行的测试框架之一,自动化测试人员和手动测试人员广泛使用。
数据驱动框架
数据驱动测试框架是测试领域中另一个广泛使用的框架,其中数据和实现代码分别维护。
混合驱动框架
混合驱动框架结合了数据驱动和关键字驱动框架。测试数据和关键字(即要在应用程序上执行的操作)都来自外部文件。
外部测试数据源可以是任何扩展名为.txt、.properties、.xlsx、.xls、.csv的文件,也可以借助数据提供者。关键字可以来自Java类文件、Excel文件等等。
结论
本教程全面介绍了Selenium Webdriver自动化框架。我们首先介绍了为什么要使用自动化框架,什么是自动化框架,自动化框架的组件和类型,并描述了关键字驱动、数据驱动和混合框架。这将使您深入了解Selenium Webdriver中的自动化框架。建议您多加练习所学内容,并探索其他与Selenium相关的知识,以加深理解并拓宽视野。