《软件自动化测试实战解析:基于Python3编程语言》PDF电子书免费下载

作者:  徐西宁

出版社: 机械工业出版社

出版年: 2021年07月

ISBN: 9787111685616

~~滚到底部有网盘下载链接~~

内容简介

目录

序一
序二
前言
第1章 软件测试基础 1
1.1 什么是软件测试1
1.2 软件测试的类型2
1.2.1 按测试对象的颗粒度划分2
1.2.2 按内部逻辑的透明度划分3
1.2.3 按执行阶段划分4
1.2.4 按执行方式划分4
1.3 敏捷开发模式5
1.4 测试经济学6
1.4.1 测试是必需的吗6
1.4.2 放弃追求完美7
1.4.3 关注核心功能8
1.4.4 等价类划分8
1.4.5 边界值分析9
1.4.6 用机器取代人工10
1.5 自动化测试不容易12
1.6 本章小结12
第2章 Python入门 13
2.1 世界上好的两种编程语言13
2.2 别问我怎么安装14
2.3 解释器是什么14
2.4 初识变量16
2.5 函数基础17
2.6 代码缩进和代码块18
2.7 字符串19
2.7.1 拼接和格式化21
2.7.2 下标访问22
2.7.3 更多常见操作23
2.8 数值类型26
2.8.1 数值类型的基本运算27
2.8.2 浮点数的常见运算29
2.9 布尔值和条件判断32
2.9.1 条件判断的组合33
2.9.2 条件判断的短路34
2.9.3 条件判断的链式表达35
2.10 日期和时间36
2.10.1 生成时间对象37
2.10.2 格式化日期字符串38
2.11 list基础39
2.11.1 下标访问40
2.11.2 插入元素40
2.11.3 删除元素41
2.11.4 简单排序42
2.11.5 更多常见操作43
2.11.6 遍历44
2.11.7 元素类型46
2.12 dict基础47
2.12.1 读取48
2.12.2 插入和更新49
2.12.3 合并50
2.12.4 删除51
2.12.5 遍历53
2.12.6 key的选择55
2.13 循环56
2.13.1 while循环57
2.13.2 for循环58
2.13.3 多重循环59
2.13.4 循环的终止60
2.13.5 递归63
2.14 异常63
2.14.1 基本语法64
2.14.2 异常的类型67
2.14.3 捕获特定类型的异常68
2.14.4 主动抛出异常71
2.15 断言72
2.15.1 assertion72
2.15.2 AssertionError73
2.15.3 assert73
2.16 pip的基础用法74
2.17 本章小结76
第3章 PyTest入门 77
3.1 框架是什么77
3.2 测试框架77
3.2.1 筛选测试源文件77
3.2.2 筛选测试函数78
3.2.3 测试函数的启动79
3.2.4 成功还是失败80
3.2.5 测试报告80
3.2.6 测试前的环境配置81
3.2.7 测试后的现场清理81
3.2.8 核心功能的扩充82
3.2.9 主流测试框架82
3.3 PyTest是什么83
3.4 自动发现84
3.4.1 自动发现测试源文件84
3.4.2 自动发现测试函数84
3.5 使用断言85
3.6 测试结果解读86
3.7 测试报告88
3.8 本章小结89
第4章 Selenium入门 90
4.1 Selenium是什么90
4.1.1 Selenium IDE91
4.1.2 Selenium Grid97
4.1.3 Web Driver98
4.2 Selenium的安装配置99
4.3 用Web Driver驱动网页100
4.4 页面元素的定位102
4.4.1 简单定位102
4.4.2 CSS定位107
4.5 页面元素的常见操作108
4.6 本章小结112
第5章 实战12306之入门篇 113
5.1 测试用例设计文档113
5.2 代码实战114
5.3 代码解析116
5.3.1 审视测试逻辑116
5.3.2 用变量澄清代码逻辑117
5.3.3 DRY原则118
5.3.4 改善代码可读性120
5.4 本章小结122
第6章 Python进阶 123
6.1 基本数据类型的深入了解123
6.1.1 转义字符123
6.1.2 字符串的不可变性124
6.1.3 深入了解布尔类型126
6.1.4 set128
6.1.5 tuple131
6.1.6 整型数的设计很优秀132
6.1.7 浮点数为什么算不准133
6.1.8 Decimal,准!134
6.2 深入了解函数137
6.2.1 函数的调用137
6.2.2 函数的返回138
6.2.3 不支持函数重载139
6.2.4 默认参数141
6.2.5 可变参数142
6.3 关于时间144
6.3.1 时间差144
6.3.2 UTC时间146
6.4 面向对象基础148
6.4.1 面向对象到底是什么意思148
6.4.2 类和对象148
6.4.3 初始化函数149
6.5 模块是什么151
6.6 高级排序153
6.6.1 list的排序153
6.6.2 dict的排序157
6.6.3 自定义对象序列的排序159
6.7 复杂的遍历场景160
6.7.1 一边遍历一边修改160
6.7.2 一边遍历一边删除162
6.8 文件和文件系统操作基础165
6.8.1 路径的正确操作方式165
6.8.2 文件系统的基本操作168
6.8.3 文本文件的读169
6.8.4 文本文件的写170
6.8.5 文本文件的关闭171
6.8.6 CSV文件的读写172
6.8.7 Excel文件的读写174
6.9 浅拷贝与深拷贝176
6.10 深入了解import179
6.11 变量的作用域182
6.12 局部变量和全局变量的冲突185
6.13 __name__和__main__186
6.14 注释188
6.15 pip的工程用法190
6.16 本章小结192
第7章 PyTest进阶 193
7.1 自动发现测试类193
7.2 测试集合194
7.3 标记195
7.3.1 忽略执行195
7.3.2 条件执行197
7.3.3 期待失败的发生199
7.3.4 限时执行201
7.3.5 自定义标签201
7.4 参数化测试204
7.5 测试用例的ID206
7.6 Fixture初探207
7.7 PyTest的插件机制209
7.7.1 Hook函数209
7.7.2 PyTest插件210
7.7.3 多级conftest协同210
7.7.4 第三方插件212
7.8 本章小结213
第8章 Selenium进阶 214
8.1 页面元素的XPath定位214
8.2 页面元素的等待215
8.2.1 隐式等待216
8.2.2 显式等待216
8.3 Selenium的局限218
8.4 本章小结219
第9章 实战12306之进阶篇 220
9.1 PO设计模式220
9.2 更有针对性的显式等待223
9.3 更健壮的代码逻辑224
9.4 函数单一职责原则225
9.5 测试单一职责原则226
9.6 本章小结227
第10章 Python高阶 228
10.1 面向对象设计思想228
10.1.1 继承228
10.1.2 封装230
10.1.3 多态232
10.2 对类的深入了解233
10.2.1 析构函数233
10.2.2 访问权限控制235
10.2.3 self不是关键字236
10.2.4 实例属性和类属性239
10.2.5 成员方法和类方法240
10.2.6 类方法和静态方法242
10.3 重写244
10.3.1 如何重写244
10.3.2 重写中的代码复用247
10.3.3 重写__str__方法249
10.3.4 重写运算符249
10.4 深入了解函数252
10.4.1 函数也是一种对象252
10.4.2 内嵌函数254
10.4.3 函数装饰器255
10.4.4 不只是会装饰259
10.4.5 用Property装饰器改进设计261
10.5 None是什么264
10.6 Enum是什么265
10.7 Python不支持常量267
10.8 随机数据和时间戳268
10.9 自定义异常类型270
10.10 需要用强类型吗271
10.11 日志272
10.12 本章小结277
第11章 测试框架的设计和演进 278
11.1 代码的可读性278
11.1.1 统一的代码风格279
11.1.2 丑陋的函数名280
11.1.3 糟糕的变量名282
11.2 友好的函数设计283
11.2.1 简洁的接口283
11.2.2 操作状态的处理285
11.2.3 不要过度设计287
11.2.4 防呆288
11.3 有效管理测试资源290
11.3.1 封装微服务290
11.3.2 统一的资源入口295
11.3.3 资源的延迟加载296
11.3.4 保证资源的释放298
11.3.5 支持多环境测试300
11.3.6 容忍不稳定的测试环境302
11.4 不要引入getter和setter304
11.5 一次收集多个断言错误306
11.6 日志的支持和改进308
11.7 减少重复执行的负面影响310
11.8 数据驱动测试的设计311
11.8.1 让PyTest支持中文ID311
11.8.2 更优雅的参数化测试314
11.8.3 用YML取代JSON316
11.8.4 面向对象的测试数据317
11.9 接受一定程度的重复代码319
11.10 本章小结320
第12章 实战12306之高阶篇 321
12.1 就近原则321
12.2 用Enum澄清设计意图322
12.3 支持链式表达324
12.4 简化函数名325
12.5 封装复杂逻辑326
12.6 单例设计模式328
12.7 异常和断言的使用场景的区别331
12.8 测试用例的维护333
12.9 本章小结334
术语表 335
参考文献 336
后记 337
显示部分信息

下载价格:免费
立即下载
登入/注册
知识就是力量
没有账号? 忘记密码?