作 者:齐涛 著 著作 定 价:69 出 版 社:电子工业出版社 出版日期:2015年11月01日 页 数:282 装 帧:平装 ISBN:9787121274053 ●部分 筑基篇
●第1章 自动化测试概述 2
●1.1 分层自动化测试 2
●1.2 界面自动化测试工具 3
●1.3 自动化测试做到什么样算好 4
●1.4 小结 5
●第2章 Robot Framework 6
●2.1 框架介绍 6
●2.2 安装指南 8
●2.2.1 Windows平台 8
●2.2.2 Mac平台(Linux平台可参考) 15
●2.2.3 pip安装 19
●2.3 个案例 19
●2.3.1 打开RIDE 20
●2.3.2 创建工程和测试套 21
●2.3.3 创建案例 23
●2.3.4 写一行脚本 24
●2.3.5 运行案例 25
●2.3.6 查看运行结果 26
●2.3.7 小结 28
●部分目录
内容简介
本书分为3个部分进行介绍。在**部分筑基篇中,主要有自动化测试概述、Robot Framework两章的内容;在第2部分小乘篇中,主要有Web自动化测试、C/S自动化测试、数据库自动化测试、接口自动化测试、RF内置测试库、持续集成自动化测试、移动自动化测试总共七章的内容;在第3部分大乘篇中,主要有自定义你的RF一章的内容。全书的自动化测试主要指功能自动化测试。 齐涛 著 著作 齐涛,平安科技资历测试工程师、自动化测试工程师。目前负责平安科技任意门项目测试团队管理和自动化测试技术方案调研及实施。2004年东北大学秦皇岛分校市场营销专业毕业。先后做过华为、飞利浦、平安科技等公司的测试项目。期间经历从手工测试,到OTP自动化测试,再到如今的R0botFramework自动化测试。工作之余会参加一些“敏捷之旅”或测试大会的活动,分享RobotFramework自动化测试的使用方法或心得体会,同时创建了Robot Framework的微信公众号,陆续发布了一些Robot Frarrlework自动化测试的相关内容,后续也会持续更新下去。目前主要致力于Rob等
《精通Robot Framework:从入门到精通的实战指南》 第一章:开启自动化测试新篇章 在软件开发日益迭代加速的今天,自动化测试已成为保证软件质量、缩短交付周期的关键。本书旨在带领读者系统地掌握Robot Framework这一强大而灵活的开源自动化测试框架,从零基础入门,逐步深入,直至成为一名能够独立设计、开发和维护复杂自动化测试项目的实战专家。我们将不仅仅停留在“如何使用”的层面,更会深入探讨“为何如此设计”、“如何优化”以及“如何在实际项目中落地”等核心问题。 1.1 为什么选择Robot Framework? 市面上自动化测试框架众多,Robot Framework凭借其独特的优势脱颖而出: 易学易用,无代码门槛: Robot Framework采用关键词驱动的测试设计理念,允许用户通过自然语言编写测试用例,大大降低了自动化测试的学习曲线,即使是没有编程背景的测试人员也能快速上手。 框架高度可扩展: 通过Python、Java等语言开发自定义库,Robot Framework可以轻松集成几乎任何技术栈的应用,满足多样化的测试需求。 丰富的内置库和外部库支持: 拥有如SeleniumLibrary、AppiumLibrary、RequestsLibrary等众多官方和社区维护的库,覆盖Web、移动端、API等主流测试场景。 灵活的报告和日志输出: 生成的测试报告清晰直观,便于分析测试结果,快速定位问题。 跨平台兼容性: 支持Windows、macOS、Linux等主流操作系统,无缝集成到各种CI/CD流程中。 1.2 本书的学习路径与目标 本书将循序渐进,确保读者能够扎实掌握Robot Framework的核心概念与高级技巧。 基础篇: 详细介绍Robot Framework的安装、基本语法、测试用例组织、变量、条件判断、循环以及关键字的创建和使用。 核心库篇: 深入讲解SeleniumLibrary、RequestsLibrary等常用库的功能和使用方法,涵盖Web自动化、API接口测试等关键场景。 进阶篇: 探讨如何构建更健壮、可维护的测试框架,包括Page Object Model(POM)模式的应用、数据驱动测试、关键字参数化、标签过滤、并行执行等。 实战篇: 通过多个真实的项目案例,展示如何在实际工作中应用Robot Framework解决复杂问题,例如,集成CI/CD工具、处理动态元素、异常处理与重试机制、编写自定义Python库等。 性能与优化: 学习如何优化测试脚本的执行效率,减少不必要的等待,提高测试覆盖率。 完成本书的学习,您将能够: 独立设计并编写高效、可读性强的Robot Framework测试用例。 熟练运用Robot Framework的各类库进行Web、API等自动化测试。 构建符合行业最佳实践的自动化测试框架。 掌握数据驱动测试、关键字驱动测试等高级测试设计模式。 将Robot Framework集成到CI/CD流水线中,实现持续集成和持续交付。 解决实际项目中遇到的自动化测试难题。 1.3 准备工作:迈出第一步 在开始本书的学习之前,请确保您的计算机上已安装以下软件: Python: Robot Framework基于Python,建议安装最新稳定版的Python 3.x。 pip: Python的包管理器,通常随Python一同安装。 Robot Framework: 使用pip进行安装。 常用库: 根据您计划进行的测试类型,安装相应的库,例如 `pip install robotframework-seleniumlibrary` 或 `pip install robotframework-requests`。 本书将提供详细的安装指南和配置说明,确保您能够顺利搭建起自动化测试环境。 --- 第二章:Robot Framework基础构建块 本章将带领您走进Robot Framework的世界,理解其核心的测试组织结构和语法规则,为后续的学习打下坚实的基础。 2.1 安装与环境配置 首先,我们需要确保您的开发环境已正确配置。 2.1.1 Python安装 访问Python官网([https://www.python.org/downloads/](https://www.python.org/downloads/)),下载适合您操作系统的最新稳定版Python 3.x安装包。安装过程中,请务必勾选“Add Python to PATH”选项,这样可以方便我们在命令行中直接使用python命令。 2.1.2 pip安装检查 打开您的命令行终端(Windows下为CMD或PowerShell,macOS/Linux下为Terminal),输入以下命令: ```bash pip --version ``` 如果显示pip的版本信息,则表示pip已成功安装。如果未显示,请尝试通过以下命令重新安装pip(通常是Python安装自带的): ```bash python -m ensurepip --upgrade ``` 2.1.3 Robot Framework安装 使用pip安装Robot Framework核心库: ```bash pip install robotframework ``` 2.1.4 常用库安装 为了进行Web自动化测试,我们需要安装SeleniumLibrary。如果您计划进行API测试,则需要RequestsLibrary。 安装SeleniumLibrary: ```bash pip install robotframework-seleniumlibrary ``` 安装RequestsLibrary: ```bash pip install robotframework-requests ``` 2.1.5 验证安装 安装完成后,我们可以在命令行中输入 `robot --version` 来查看Robot Framework的版本,确认安装成功。 2.2 Robot Framework的测试文件结构 Robot Framework的测试用例存储在 `.robot` 文件中,这些文件遵循特定的结构,便于Robot Framework解析和执行。一个 `.robot` 文件通常包含以下几个部分,用空行分隔: 1. Settings (设置): 定义测试环境的配置,例如导入关键字库、变量文件、资源文件等。 2. Variables (变量): 定义在测试中使用的全局或局部变量。 3. Test Cases (测试用例): 包含实际的测试步骤和断言。 4. Keywords (关键字): 定义可重用的代码块,用于封装特定的操作或逻辑。 2.2.1 Settings部分 Settings部分是Robot Framework文件的开端,用于设置整个测试套件的全局配置。 `Library`: 导入关键字库,如 `SeleniumLibrary`, `BuiltIn`, `OperatingSystem` 等。`BuiltIn` 库是默认导入的,包含了很多常用的关键字。 `Variables`: 导入变量文件(`.py` 或 `.yaml` 格式),将变量集中管理。 `Resource`: 导入资源文件(`.robot` 格式),用于共享关键字和变量。 `Documentation`: 为测试套件或测试用例添加描述信息,在报告中会显示。 示例 Settings 部分: ```robotframework Settings Documentation 这是一个Web自动化测试套件 Library SeleniumLibrary browser=chrome 默认使用Chrome浏览器 Library OperatingSystem 用于文件系统操作 Variables variables.yaml 导入变量文件 Resource common_keywords.robot 导入资源文件 ``` 2.2.2 Variables部分 Variables部分用于定义在整个测试套件中可以被引用的变量。变量的声明格式为 `${variable_name}`。 全局变量: 在 Variables 部分定义,可在所有测试用例中使用。 局部变量: 在 Test Cases 或 Keywords 部分定义,作用域仅限于该部分。 示例 Variables 部分: ```robotframework Variables ${BROWSER} chrome ${URL} https://www.example.com ${USERNAME} testuser ${PASSWORD} secret123 ${WAIT_TIME} 5s ``` 2.2.3 Test Cases部分 Test Cases部分是Robot Framework文件的核心,描述了具体的测试场景和执行步骤。每个测试用例都由一个名称开头,后面跟着一系列的关键字调用。 测试用例命名: 清晰、描述性的名称,便于理解测试目的。 关键字调用: 按照执行顺序排列。 参数: 关键字可以接受参数。 文档: 为每个测试用例添加文档说明。 示例 Test Cases 部分: ```robotframework Test Cases 用户登录成功 [Documentation] 测试用户使用有效凭证登录的场景 [Tags] login smoke Open Browser To Login Page Input Username ${USERNAME} Input Password ${PASSWORD} Click Login Button Verify User Is Logged In 用户登录失败_用户名不存在 [Documentation] 测试用户使用不存在的用户名登录的场景 [Tags] login negative Open Browser To Login Page Input Username nonexistent_user Input Password ${PASSWORD} Click Login Button Verify Error Message Invalid username or password. ``` 2.2.4 Keywords部分 Keywords部分允许您定义可重用的关键字,提高测试代码的复用性和可维护性。自定义关键字可以包含一个或多个Robot Framework内置关键字或已导入库的关键字,也可以包含其他自定义关键字。 关键字命名: 采用驼峰命名法或空格分隔的自然语言描述。 参数: 关键字可以接收参数,用于增加灵活性。 返回值: 关键字可以返回一个或多个值。 示例 Keywords 部分: ```robotframework Keywords Open Browser To Login Page Open Browser ${URL} ${BROWSER} Maximize Browser Window Title Should Be Login Page Input Username [Arguments] ${username} Input Text id=username_field ${username} Input Password [Arguments] ${password} Input Text id=password_field ${password} Click Login Button Click Button id=login_button Verify User Is Logged In Wait Until Page Contains Welcome, ${USERNAME} Element Should Be Visible css=.dashboard-widget ``` 2.3 Robot Framework的基本语法 Robot Framework的语法基于表格结构,每一行代表一个指令或一个测试步骤。 分隔符: 单元格之间使用两个或多个空格作为分隔符。 行首: 以 `` 开头的行用于区分不同的部分(Settings, Variables, Test Cases, Keywords)。 注释: 以 `` 开头的行是注释,会被忽略。 关键字调用: 格式为 `[LibraryName.]KeywordName`。如果关键字来自当前文件中定义的Keywords部分,则不需要指定LibraryName。 2.3.1 关键字的定义与使用 关键字是Robot Framework的核心,它们封装了具体的自动化操作。 内置关键字: Robot Framework提供了大量的内置关键字,例如 `Log`, `Sleep`, `Open Browser`, `Close Browser`, `Input Text`, `Click Button` 等。 库关键字: 来自导入的库,例如 `SeleniumLibrary` 中的 `Open Browser`, `Click Element`。 自定义关键字: 用户在Keywords部分定义的关键字,可以组合多个现有关键字来完成更复杂的任务。 2.3.2 参数传递 关键字可以通过参数接收外部数据,增加其通用性。 关键字定义时的参数: 使用 `[Arguments] ${arg1} ${arg2}` 来定义参数。 关键字调用时的参数: 在调用关键字时,按顺序或使用名称指定参数的值。 示例: ```robotframework Keywords 登录并验证 [Arguments] ${user} ${pwd} Input Username ${user} Input Password ${pwd} Click Login Button Wait Until Page Contains Welcome, ${user} Test Cases 测试用户A登录 登录并验证 user_a password_a 测试用户B登录 登录并验证 user_b password_b ``` 2.3.3 变量的使用 变量可以在Robot Framework的各个部分被使用,以 `${variable_name}` 的形式引用。 字符串变量: `${name}` 列表变量: `@{list_name}` 字典变量: `&{dict_name}` 示例: ```robotframework Variables ${MESSAGE} Hello, Robot Framework! @{NUMBERS} 1 2 3 &{USER_INFO} name=Alice age=30 Test Cases 使用变量 Log ${MESSAGE} Log List @{NUMBERS} Log Dictionary &{USER_INFO} ``` 2.3.4 标签 (Tags) 标签可以附加到测试用例上,用于组织、过滤和分组测试。在执行测试时,可以通过标签来选择性地运行部分测试。 在Test Cases部分添加: `[Tags] tag1 tag2` 在Settings部分使用: `Test Tag Selectors` 可以用于更复杂的标签选择。 示例: ```robotframework Test Cases 购物车添加商品 [Tags] cart smoke feature_x ...测试步骤... 结算流程 [Tags] checkout regression ...测试步骤... ``` 通过命令行执行时,可以使用 `-i` (include) 和 `-e` (exclude) 参数来根据标签选择测试: ```bash robot -i smoke tests/ robot -e regression tests/ ``` 本章为深入学习Robot Framework奠定了坚实的基础,理解了其文件结构、基本语法以及如何定义和使用变量、关键字和标签。在接下来的章节中,我们将在此基础上,探索如何利用丰富的库来实现更强大的自动化测试功能。
作为一名刚刚接触自动化测试的新手,我常常感到无从下手。市面上的Robot Framework教程,要么过于浅显,要么过于深入,很难找到一个恰到好处的切入点。我渴望找到一本能够循序渐进,让我逐步建立起对 Robot Framework 整体认知的书籍。我期待这本书能够详细讲解 Robot Framework 的核心概念,比如关键字驱动、变量、库等,并且通过生动的例子来帮助我理解。更重要的是,我希望书中能够引导我如何从零开始构建一个简单的自动化测试项目,并逐步增加其复杂性。例如,如何编写第一个测试用例,如何引入外部库,如何组织测试数据,以及如何生成简单的测试报告。我非常关心书中关于“调试”的内容,因为在编写测试用例的过程中,调试是必不可少的一环,我希望能学到有效的调试技巧,快速定位和解决遇到的问题。如果书中还能包含一些关于如何提高测试用例可读性和可维护性的建议,那将是锦上添花。