注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术工业技术自动化技术、计算技术Python Web自动化测试设计与实现

Python Web自动化测试设计与实现

Python Web自动化测试设计与实现

定 价:¥79.00

作 者: 陈晓伍
出版社: 清华大学出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787302519294 出版时间: 2019-03-01 包装: 平装
开本: 16 页数: 372 字数:  

内容简介

  本书是资深测试开发专家的经验结晶,由浅入深地阐释了Web自动化测试的相关技术,包括Web UI自动化测试、API自动化测试及测试相关的基础开发。通过学习本书,读者可以基本掌握Web测试相关的大部分技术点。本书是测试相关人员必备的技术指导。书中每个技术点都有示例代码,理论与实践相结合的方式能够使读者快速理解Web自动化测试。本书循序渐进地讲解了Web自动化测试的各项知识点,使任何层级的读者都能从中受益。绪论部分介绍自动化方面的基础知识,帮助读者少走弯路,正确学会自动化测试。第1~3章介绍Selenium、Python以及Web UI自动化的相关基础知识。第4章和第5章介绍Selenium IDE和Selenium常规对象接口。第6章介绍Web UI自动化特殊场景处理。第7章介绍UnitTest单元测试框架。第8章介绍分层框架设计与实现。第9章介绍测试脚本的部署。第10章和第11章介绍Web API相关基础知识。第12章介绍通过Python发送HTTP请求。第13章介绍API工具的设计与实现。第14章介绍Web服务的集成工作。第15章介绍HTTP Mock的开发。本书适合Web测试人员、Web自动化人员、Web开发人员等初中级读者以及希望使用Python作为编程语言的软件测试工程师参考。

作者简介

  陈晓伍,毕业于北京航空航天大学计算机科学与技术专业,资深测试开发专家,有超过10年测试开发相关经验,对测试及自动化技术有较深的理解与应用,开发过若干自动化框架与平台。曾就职过新浪、当、科大讯飞等互联网公司,负责新浪微博客户端、当电商网站以及灵犀语音助手等产品的自动化测试工作。现在创业公司担任测试经理。精通Python语言,擅长Java、Selenium、QTP。创建testqa.cn测试社区,活跃于CSDN与51testing社区。

图书目录

绪论 1
第1章 Selenium基础 9
1.1 Selenium的历史和分支 9
1.2 Selenium的特点 12
1.3 Selenium名词说明 12
1.3.1 Selenium RC 12
1.3.2 Selenium Server 12
1.3.3 Selenium WebDriver 13
1.3.4 Selenium Client 13
1.3.5 Selenium Grid 13
1.3.6 Selenium IDE 13
1.4 Selenium基本原理 14
1.5 Selenium环境搭建 15
1.5.1 Windows环境搭建 16
1.5.2 Ubuntu环境搭建 22
1.5.3 MacOS环境搭建 26
1.6 Selenium调用不同浏览器 28
1.6.1 调用Firefox浏览器 28
1.6.2 调用Chrome浏览器 29
1.6.3 调用IE浏览器 30
1.6.4 IE浏览器安全机制设置 30
1.7 Selenium Docker的使用 31
1.7.1 Docker环境安装 32
1.7.2 Selenium Docker镜像下载 35
1.7.3 Docker下运行Selenium脚本 36
1.8 Selenium 3说明 38
1.8.1 不再支持Selenium RC 38
1.8.2 仅支持JDK 1.8.0以上版本 38
1.8.3 Selenium IDE支持Chrome插件  38
1.8.4 FireFox需要安装独立驱动 38
1.8.5 仅支持IE 9.0以上版本 39
1.8.6 支持微软的Edge浏览器 39
1.8.7 支持官方的SafariDriver 39

第2章 Python编程基础 41
2.1 基础语法 41
2.1.1 Python语句执行 41
2.1.2 Python语法格式 42
2.1.3 Python变量与类型 44
2.1.4 Python运算符与表达式 47
2.2 控制语句 52
2.2.1 if-else语句 52
2.2.2 for语句 53
2.2.3 while语句 53
2.2.4 continue语句 54
2.2.5 break语句 54
2.2.6 pass语句 55
2.3 模块化 55
2.3.1 函数 55
2.3.2 类与实例 59
2.3.3 模块文件 61
2.3.4 包 62
2.4 基础数据结构 63
2.4.1 列表 63
2.4.2 元组 64
2.4.3 字典 65
2.4.4 遍历数据 67
2.5 输入/输出 67
2.5.1 命令行输入/输出 67
2.5.2 文件输入/输出 69
2.6 内置函数 70
2.6.1 id函数 70
2.6.2 dir函数 71
2.6.3 help函数 71
2.6.4 type函数 72
2.6.5 isinstance函数 72
2.6.6 zip函数 72
2.6.7 filter函数 72
2.6.8 map函数 73
2.6.9 reduce函数 73
2.7 异常 73
2.7.1 异常捕获 73
2.7.2 自定义异常 75
2.8 魔法特性 76
2.8.1 列表推导式 76
2.8.2 迭代器 77
2.8.3 生成器 78
2.8.4 闭包 79
2.8.5 装饰器 79
2.8.6 内省机制 83
2.9 并发任务 86
2.9.1 多进程 86
2.9.2 多线程 91
2.9.3 协程 93
2.10 编解码 96
2.10.1 源码文件编码 97
2.10.2 解释器默认编码 98
2.10.3 外部文件编码 99
2.10.4 数据库编码 100
2.10.5 编解码函数 100

第3章 Web UI自动化基础 102
3.1 HTML与DOM简介 102
3.2 学习元素定位方式 104
3.3 CSS定位技术 106
3.4 使用工具帮助定位 106
3.4.1 IE的Developer Tool 107
3.4.2 Firefox的Web开发者工具 107
3.4.3 Chrome的开发者工具 108
3.4.4 Firefox的XPath Checker插件 108
3.4.5 Chrome的XPath工具 109
3.4.6 Firefox的CSS插件 109
3.4.7 Chrome的CSS工具 110
3.4.8 Firefox的WebDriver Element Locator插件 110
3.5 Selenium中进行元素定位 112
3.5.1 获取一个定位元素 112
3.5.2 获取一组定位元素 113
3.5.3 匹配非第一个元素 114

第4章 Selenium IDE 115
4.1 Selenium IDE安装 115
4.1.1 Firefox安装 115
4.1.2 Selenium IDE在线安装 116
4.1.3 Selenium IDE本地安装 117
4.2 Selenium IDE功能介绍 120
4.2.1 Selenium IDE窗口 120
4.2.2 菜单栏 121
4.2.3 地址栏 123
4.2.4 工具栏 124
4.2.5 用例管理区 124
4.2.6 用例脚本开发区 125
4.2.7 信息输出区 126
4.3 Selenium IDE使用 126
4.3.1 Selenium IDE录制与回放 126
4.3.2 Selenium IDE脚本编辑 128
4.3.3 Selenium IDE元素定位 138
4.3.4 Selenium IDE匹配模式 141
4.3.5 Selenium IDE脚本转换 143

第5章 Selenium常规对象接口 148
5.1 浏览器对象操作 148
5.1.1 查找元素方法 148
5.1.2 浏览器窗口方法 149
5.1.3 Cookie处理方法 149
5.2 WebElement对象操作 150
5.3 文本框对象操作 152
5.4 按钮对象操作 152
5.5 下拉列表对象操作 153
5.6 链接对象操作 154

第6章 Web UI自动化特殊场景处理 156
6.1 处理多窗口测试场景 156
6.2 处理浏览器弹框场景 158
6.2.1 Alert对象及方法 158
6.2.2 优雅地处理Alert弹框 159
6.3 Selenium进行键盘鼠标操作 160
6.3.1 键盘操作 160
6.3.2 鼠标操作 161
6.4 非Web控件的操作实现 162
6.5 Selenium执行JavaScript及操作DOM 164
6.6 Selenium截屏操作 165

第7章 UnitTest单元测试框架 167
7.1 常规使用方式 167
7.2 测试套件使用 169
7.3 TestLoader的使用 170
7.4 UnitTest加载流程 172

第8章 分层框架设计与实现 173
8.1 数据驱动层 174
8.1.1 文件存储 175
8.1.2 数据库存储 176
8.2 定位符驱动层 180
8.2.1 本地文件存储 181
8.2.2 远程服务存储 183
8.3 页面操作层 185
8.4 业务逻辑层 190
8.4.1 公共业务 190
8.4.2 常规业务 191
8.5 结果驱动层 193
8.5.1 日志Logger记录 193
8.5.2 自定义Logger记录 199
8.5.3 邮件通知结果 203
8.6 异常处理层 204
8.6.1 程序异常处理 204
8.6.2 断言异常处理 208
8.6.3 自定义异常类 209

第9章 测试脚本部署 211
9.1 使用SVN管理测试脚本 211
9.1.1 SVN服务安装 212
9.1.2 SVN客户端安装 217
9.1.3 SVN使用简介 219
9.1.4 SVN操作规范 223
9.2 远程执行用例场景 224
9.3 Selenium Grid模块及搭建 228
9.3.1 Selenium Grid环境搭建 229
9.3.2 Selenium Grid使用 232
9.4 持续集成的自动化测试 232

第10章 Web API介绍 236
10.1 HTTP简介 236
10.1.1 HTTP请求报文 237
10.1.2 HTTP响应报文 239
10.2 Web API介绍 240
10.3 REST API介绍 241

第11章 Web API自动化基础 243
11.1 正则表达式模块学习 243
11.1.1 字符搜索 244
11.1.2 字符替换和分割 246
11.1.3 表达式修饰符 246
11.1.4 其他事项 247
11.2 XML读写模块的学习 248
11.2.1 读取XML文档 249
11.2.2 写入XML文档 252
11.3 JSON模块的学习 253
11.3.1 JSON串生成 254
11.3.2 JSON串解析 256
11.4 MD5、BASE64编解码 256
11.4.1 BASE64编解码 257
11.4.2 MD5加密 258
11.4.3 数据序列化 259

第12章 Python发送HTTP请求 261
12.1 HTTP请求发送 261
12.1.1 requests模块安装 261
12.1.2 发送GET请求 262
12.1.3 发送POST请求 264
12.1.4 发送multipart/form-data请求 265
12.1.5 发送其他类型请求 266
12.2 HTTP请求认证 266
12.2.1 HTTP Basic Auth 267
12.2.2 HTTP Digest Auth 267
12.2.3 OAuth认证 268
12.2.4 自定义认证 268
12.3 URL的编解码 269
12.4 HTTP响应内容验证 271
12.4.1 状态码验证 271
12.4.2 响应头验证 272
12.4.3 响应体验证 273
12.5 多线程发送请求 276
12.5.1 函数式多线程 276
12.5.2 类继承式多线程 279

第13章 API工具设计与实现 282
13.1 最简单的API工具 282
13.1.1 请求方法设置 284
13.1.2 请求头设置 288
13.1.3 支持文件上传 289
13.1.4 简单结果验证 292
13.2 测试数据读取 293
13.2.1 测试数据格式 293
13.2.2 数据存储方式 294
13.2.3 实现数据读取 296
13.3 测试数据用例化 299
13.3.1 用例基本信息 299
13.3.2 用例套件信息 301
13.3.3 用例模板信息 302
13.4 测试流程控制 304
13.4.1 钩子函数接口设计 305
13.4.2 钩子函数接口调用 307
13.4.3 钩子函数接口实现 309
13.5 测试结果验证 311
13.5.1 完全匹配 311
13.5.2 内容包含 312
13.5.3 正则匹配 313
13.5.4 JSONPath 313
13.6 测试数据记录 315
13.6.1 结果记录 315
13.6.2 日志记录 317

第14章 集成为Web服务 319
14.1 Web服务简介 319
14.1.1 Web框架选择 320
14.1.2 DEMO实现 321
14.1.3 框架开发学习 322
14.2 Web上启动用例执行 330
14.2.1 运行参数接收 332
14.2.2 测试请求处理 335
14.3 Web上查看测试结果 337
14.3.1 任务列表页 338
14.3.2 用例结果页 340
14.4 持续集成的API自动化测试 342
14.4.1 用例集保存 342
14.4.2 用例集执行 345

第15章 HTTP Mock开发 347
15.1 HTTP Mock介绍 347
15.2 HTTP Mock分析 348
15.3 HTTP Mock实现 349
15.3.1 根据请求URL过滤 349
15.3.2 根据请求方法过滤 350
15.3.3 根据请求头过滤 352
15.3.4 根据请求数据过滤 353

参考文献 356
结束语 357

本目录推荐