资源名称:SELENIUM 2 自动化测试实战 基于PYTHON语言

内容简介:

《Selenium 2自动化测试实战——基于Python语言》共分 14 章。第 1 章是自动化测试相关基础知识的介绍;第 2 章到第 10 章是《Selenium 2自动化测试实战——基于Python语言》的重点,循 序渐进地介绍了自动化测试所用到的技术;第 11 章通过一个具体的项目综合运用了前面章节所介绍 的技术与技巧;第 12 章到第 14 章选取了当前最热门的技术进行了介绍,旨在扩展测试人员的综合技 术能力。 《Selenium 2自动化测试实战——基于Python语言》的写作目的并不是为了简单地告诉读者如何使用一个自动化测试工具,而是希望读者在学习

《Selenium 2自动化测试实战——基于Python语言》的内容后能够提高综合的技术高度与宽度,从而摆脱简单的手工测试,向高级测试工程师的道路 迈进。

资源目录:

第1 章 自动化测试基础 ………………………………………………………………………… 1

1.1 软件测试分类 ………………………………………………………………………………………….. 1

1.2 分层的自动化测试 …………………………………………………………………………………… 6

1.3 什么样的项目适合自动化测试 …………………………………………………………………. 9

1.4 自动化测试及工具简述 ………………………………………………………………………….. 10

1.5 Selenium 工具介绍 …………………………………………………………………………………. 11

1.6 前端技术介绍 ………………………………………………………………………………………… 14

1.7 前端工具介绍 ………………………………………………………………………………………… 16

1.8 开发语言的选择 …………………………………………………………………………………….. 19

第2 章 测试环境搭建 ……………………………………………………………………………… 21

2.1 Windows 下的环境搭建 ………………………………………………………………………….. 21

2.1.1 安装Python …………………………………………………………………………………. 22

2.1.2 安装setuptools 与pip …………………………………………………………………… 24

2.1.3 安装Selenium ……………………………………………………………………………… 26

2.1.4 ActivePython ……………………………………………………………………………….. 26

2.2 Ubuntu 下的环境搭建 …………………………………………………………………………….. 28

2.3 使用IDLE 编写Python …………………………………………………………………………… 29

2.4 编写第一个自动化脚本 ………………………………………………………………………….. 32

2.5 安装浏览器驱动 …………………………………………………………………………………….. 34

2.6 不同编程语言下使用WebDriver ……………………………………………………………… 35

第3 章 Python 基础 …………………………………………………………………………………… 37

3.1 Python 哲学 ……………………………………………………………………………………………. 37

3.2 输出与输入 ……………………………………………………………………………………………. 39

3.2.1 print 打印 …………………………………………………………………………………….. 40

3.2.2 input 输入 ……………………………………………………………………………………. 41

3.2.3 引号与注释 …………………………………………………………………………………. 41

3.3 分支与循环 ……………………………………………………………………………………………. 43

3.3.1 if 语句 …………………………………………………………………………………………. 43

3.3.2 for 语句 ………………………………………………………………………………………. 45

3.4 数组与字典 ……………………………………………………………………………………………. 47

3.4.1 数组 ……………………………………………………………………………………………. 47

3.4.2 字典 ……………………………………………………………………………………………. 47

3.5 函数、类和方法 …………………………………………………………………………………….. 49

3.5.1 函数 ……………………………………………………………………………………………. 49

3.5.2 类和方法 …………………………………………………………………………………….. 50

3.6 模组 ………………………………………………………………………………………………………. 52

3.6.1 引用模块 …………………………………………………………………………………….. 52

3.6.2 模块调用 …………………………………………………………………………………….. 55

3.6.3 跨目录模块调用 ………………………………………………………………………….. 56

3.6.4 进一步讨论跨目录模块调用 ………………………………………………………… 56

3.7 异常 ………………………………………………………………………………………………………. 60

3.7.1 认识异常 …………………………………………………………………………………….. 60

3.7.2 更多异常用法 ……………………………………………………………………………… 64

3.7.3 抛出异常 …………………………………………………………………………………….. 66

本章小结 ……………………………………………………………………………………………………….. 66

第4 章 WebDriver API ………………………………………………………………………………….. 68

4.1 从定位元素开始 …………………………………………………………………………………….. 68

4.1.1 id 定位 ………………………………………………………………………………………… 72

4.1.2 name 定位 …………………………………………………………………………………… 73

4.1.3 class 定位 ……………………………………………………………………………………. 73

4.1.4 tag 定位 ………………………………………………………………………………………. 73

4.1.5 link 定位 ……………………………………………………………………………………… 73

4.1.6 partial link 定位 ……………………………………………………………………………. 74

4.1.7 XPath 定位 ………………………………………………………………………………….. 75

4.1.8 CSS 定位 …………………………………………………………………………………….. 78

4.1.9 用By 定位元素 ……………………………………………………………………………. 82

4.2 控制浏览器 ……………………………………………………………………………………………. 83

4.2.1 控制浏览器窗口大小 …………………………………………………………………… 83

4.2.2 控制浏览器后退、前进 ……………………………………………………………….. 84

4.2.3 模拟浏览器刷新 ………………………………………………………………………….. 85

4.3 简单元素操作 ………………………………………………………………………………………… 86

4.3.1 126 邮箱登录 ………………………………………………………………………………. 86

4.3.2 WebElement 接口常用方法 …………………………………………………………… 87

4.4 鼠标事件 ……………………………………………………………………………………………….. 89

4.5 键盘事件 ……………………………………………………………………………………………….. 92

4.6 获得验证信息 ………………………………………………………………………………………… 93

4.7 设置元素等待 ………………………………………………………………………………………… 95

4.7.1 显式等待 …………………………………………………………………………………….. 95

4.7.2 隐式等待 …………………………………………………………………………………….. 98

4.7.3 sleep 休眠方法 …………………………………………………………………………….. 99

4.8 定位一组元素 ………………………………………………………………………………………. 100

4.9 多表单切换 ………………………………………………………………………………………….. 104

4.10 多窗口切换 ………………………………………………………………………………………… 106

4.11 警告框处理 ………………………………………………………………………………………… 108

4.12 上传文件 ……………………………………………………………………………………………. 110

4.12.1 send_keys 实现上传 ………………………………………………………………….. 110

4.12.2 AutoIt 实现上传 ……………………………………………………………………….. 111

4.13 下载文件 ……………………………………………………………………………………………. 116

4.14 操作Cookie ………………………………………………………………………………………… 117

4.15 调用Javascript ……………………………………………………………………………………. 120

4.16 处理HTML5 的视频播放 ……………………………………………………………………. 123

4.17 窗口截图 ……………………………………………………………………………………………. 124

4.18 关闭窗口 ……………………………………………………………………………………………. 125

4.19 验证码的处理 …………………………………………………………………………………….. 125

4.20 WebDriver 原理 …………………………………………………………………………………… 128

本章小结 ……………………………………………………………………………………………………… 130

第5 章 自动化测试模型 ……………………………………………………………………… 132

5.1 自动化测试模型介绍 ……………………………………………………………………………. 133

5.1.1 线性测试 …………………………………………………………………………………… 133

5.1.2 模块化驱动测试 ………………………………………………………………………… 134

5.1.3 数据驱动测试 ……………………………………………………………………………. 134

5.1.4 关键字驱动测试 ………………………………………………………………………… 136

5.2 模块化驱动测试实例 ……………………………………………………………………………. 138

5.3 数据驱动测试实例 ……………………………………………………………………………….. 140

5.3.1 参数化邮箱登录 ………………………………………………………………………… 141

5.3.2 参数化搜索关键字 …………………………………………………………………….. 142

5.3.3 读取txt 文件 ……………………………………………………………………………… 143

5.3.4 读取csv 文件 …………………………………………………………………………….. 144

5.3.5 读取xml 文件 ……………………………………………………………………………. 146

本章小结 ……………………………………………………………………………………………………… 150

第6 章 Selenium IDE …………………………………………………………………… 151

6.1 Selenium IDE 安装 ………………………………………………………………………………… 151

6.1.1 在线安装 …………………………………………………………………………………… 151

6.1.2 下载插件安装 ……………………………………………………………………………. 153

6.2 Selenium IDE 界面介绍 …………………………………………………………………………. 154

6.3 创建测试用例 ………………………………………………………………………………………. 155

6.3.1 录制脚本 …………………………………………………………………………………… 155

6.3.2 编辑脚本 …………………………………………………………………………………… 156

6.4 Selenium IDE 命令 ………………………………………………………………………………… 159

6.5 断言与验证 ………………………………………………………………………………………….. 162

6.5.1 断言 ………………………………………………………………………………………….. 164

6.5.2 验证 ………………………………………………………………………………………….. 165

6.6 等待与变量 ………………………………………………………………………………………….. 167

6.6.1 等待 ………………………………………………………………………………………….. 167

6.6.2 变量 ………………………………………………………………………………………….. 167

本章小结 ………………………………………………………………………………….. 169

第7 章 unittest 单元测试框架 ………………………………………………….. 170

7.1 认识unittest………………………………………………………………………………………….. 171

7.1.1 认识单元测试 ……………………………………………………………………………. 171

7.1.2 重要的概念 ……………………………………………………………………………….. 174

7.1.3 断言方法 …………………………………………………………………………………… 176

7.1.4 组织单元测试用例 …………………………………………………………………….. 181

7.1.5 discover 更多测试用例 ……………………………………………………………….. 184

7.2 关于unittest 还需要知道的 ……………………………………………………………………. 187

7.2.1 用例执行的顺序 ………………………………………………………………………… 188

7.2.2 执行多级目录的用例 …………………………………………………………………. 190

7.2.3 跳过测试和预期失败 …………………………………………………………………. 191

7.2.4 fixtures ………………………………………………………………………………………. 193

7.3 带unittest 的脚本分析 …………………………………………………………………………… 195

7.4 编写Web 测试用例 ………………………………………………………………………………. 200

本章小结 ……………………………………………………………………………………………………… 203

第8 章 自动化测试高级应用 ……………………………………………………………………….. 204

8.1 HTML 测试报告 …………………………………………………………………………………… 204

8.1.1 修改HTMLTestRunner ……………………………………………………………….. 205

8.1.2 生成HTML 测试报告 ………………………………………………………………… 206

8.1.3 更易读的测试报告 …………………………………………………………………….. 208

8.1.4 测试报告文件名 ………………………………………………………………………… 209

8.1.5 项目集成测试报告 …………………………………………………………………….. 212

8.2 自动发邮件功能 …………………………………………………………………………………… 213

8.2.1 发送HTML 格式的邮件 …………………………………………………………….. 216

8.2.2 发送带附件的邮件 …………………………………………………………………….. 217

8.2.3 查找最新的测试报告 …………………………………………………………………. 218

8.2.4 整合自动发邮件功能 …………………………………………………………………. 219

8.3 Page Object 设计模式 …………………………………………………………………………… 221

8.3.1 认识Page Object ………………………………………………………………………… 221

8.3.2 Paget Object 实例 ……………………………………………………………………….. 223

本章小结 ……………………………………………………………………………………………………… 228

第9 章 Selenium Grid2 ……………………………………………………………………… 229

9.1 Selenium Server 环境配置 ……………………………………………………………………… 229

9.2 Selenium Grid 工作原理 ………………………………………………………………………… 233

9.3 Remote 应用 …………………………………………………………………………………………. 236

9.3.1 WebDriver 驱动分析 …………………………………………………………………… 237

9.3.2 Remote 实例 ………………………………………………………………………………. 243

9.3.3 参数化平台及浏览器 …………………………………………………………………. 243

9.4 WebDriver 驱动 …………………………………………………………………………………….. 246

9.4.1 Edge 浏览器 ………………………………………………………………………………. 249

9.4.2 Opera 浏览器 …………………………………………………………………………….. 250

9.4.3 Safari 浏览器 ……………………………………………………………………………… 251

9.4.4 HtmlUnit 模式 ……………………………………………………………………………. 251

9.4.5 PhantomJS 模式 …………………………………………………………………………. 252

本章小结 ……………………………………………………………………………………………………… 254

第10 章 Python 多线程 ………………………………………………………………………………… 255

10.1 单线程的时代 …………………………………………………………………………………….. 256

10.2 多线程技术 ………………………………………………………………………………………… 258

10.2.1 threading 模块 ………………………………………………………………………….. 258

10.2.2 优化线程的创建 ………………………………………………………………………. 260

10.2.3 创建线程类 ……………………………………………………………………………… 262

10.3 多进程技术 ………………………………………………………………………………………… 263

10.3.1 multiprocessing 模块 …………………………………………………………………. 263

10.3.2 Pipe 和Queue …………………………………………………………………………… 266

10.4 应用于自动化测试 ……………………………………………………………………………… 268

10.4.1 多线程执行测试用例 ……………………………………………………………….. 269

10.4.2 多线程分布式执行测试用例 …………………………………………………….. 270

本章小结 ……………………………………………………………………………………………………… 272

第11 章 自动化测试项目实战 …………………………………………………………………………. 273

11.1 自动化测试用例设计 …………………………………………………………………………… 273

11.1.1 手工测试用例与自动化测试用例 ………………………………………………. 273

11.1.2 测试类型 …………………………………………………………………………………. 275

11.1.3 自动化测试用例编写原则 ………………………………………………………… 276

11.2 BBS 社区项目实战 ……………………………………………………………………………… 277

11.2.1 准备工作 …………………………………………………………………………………. 277

11.2.2 项目结构介绍 ………………………………………………………………………….. 278

11.2.3 编写公共模块 ………………………………………………………………………….. 281

11.2.4 编写Page Object ………………………………………………………………………. 283

11.2.5 编写测试用例 ………………………………………………………………………….. 286

11.2.6 执行测试用例 ………………………………………………………………………….. 289

本章小结 ……………………………………………………………………………………………………… 291

第12 章 BDD 框架之Lettuce 入门 ………………………………………………………………… 292

12.1 什么是BDD ……………………………………………………………………………………….. 292

12.2 安装Lettuce ……………………………………………………………………………………….. 294

12.3 阶乘的例子 ………………………………………………………………………………………… 295

12.3.1 什么是阶乘 ……………………………………………………………………………… 295

12.3.2 编写BDD 实现 ………………………………………………………………………… 296

12.3.3 添加测试场景 ………………………………………………………………………….. 300

12.3.4 Lettuce 目录结构与执行过程 ……………………………………………………. 303

12.4 Lettuce_webdriver 自动化测试 …………………………………………………………….. 303

本章小结 ……………………………………………………………………………………………………… 308

(第13 章和第14 章内容可到博文视点网站免费下载)

第13 章 GitHub 托管项目 …………………………………………………………………………… 309

13.1 注册与安装 ………………………………………………………………………………………… 310

13.1.1 注册GitHub …………………………………………………………………………….. 310

13.1.2 安装Git …………………………………………………………………………………… 310

13.1.3 建立连接 …………………………………………………………………………………. 311

13.2 Git/GitHub 基本使用 …………………………………………………………………………… 314

13.2.1 GitHub 创建项目 ……………………………………………………………………… 314

13.2.2 本地创建项目 ………………………………………………………………………….. 315

13.2.3 克隆项目 …………………………………………………………………………………. 318

13.2.4 更新项目 …………………………………………………………………………………. 319

本章小结 ……………………………………………………………………………………………………… 323

第14 章 持续集成Jenkins 入门 …………………………………………………………………. 324

14.1 环境搭建 ……………………………………………………………………………………………. 325

14.2 创建任务 ……………………………………………………………………………………………. 328

14.3 运行构建 ……………………………………………………………………………………………. 333

14.4 定时执行构建 …………………………………………………………………………………….. 335

本章小结 ……………………………………………………………………………………………………… 338

资源截图:

SELENIUM 2 自动化测试实战 基于PYTHON语言