本书是为测试人员编写的Python开发实战指南,包含Python的核心知识点和实战案例,帮助测试人员快速掌握Python工具开发技能。本书共3篇:基础篇(第1章至第3章)介绍Python和PyCharm工具的安装与环境部署,并讲解日常实际工作中用到的Python基础知识点;专题篇(第4章至第6章)介绍Python开发时使用频度较高的常用技能如异常处理、日志处理、邮件处理等,高级技能如Kafka、Redis、MySQL等,以及通用框架如FastAPI、Celery和Scrapy;实战篇(第7章至第12章)分享一些实际应用,包括音频测试工具、自定义套接字测试工具、接口测试工具、数据测试工具、性能测试工具、安全测试工具等6种测试工具的开发实战。
适读人群 :本书始终贯穿“二八定律”、封装复用和质量自测的指导思想,结构清晰,案例丰富,实用性强,适合使用Python进行测试开发的读者阅读和提升,也适合Python初学者参考学习。 1.包含丰富工具百宝箱,快速掌握Python的20%的核心知识点,依托于测试工具开发实战,轻松理解Python开发的思路,快速提高开发能力,让小白学开发像搭积木一样简单!
2.实用性强,覆盖面广,是一本测试人员或开发人员学习Python难得的实战类好书。
3.由浅入深,循序渐进,掌握Python。本书从Python基础入手,再到通用能力和通用框架的专题知识,最后是丰富的实战案例,通俗易懂、图文并茂,让读者快速掌握Python知识。
4.示例易懂,轻松易学,快速上手。本书通过丰富的示例代码,让读者轻松了解实际开发场景。书中的关键代码还提供相应的注释,便于读者阅读代码,快速上手Python开发。
5.精彩栏目,贴心提示,技能提升。本书在各章设置了很多提示、注意等栏目,让读者可以在学习过程中轻松地理解相关知识点及概念,助力读者的Python开发技能提升。
胡通 中移(杭州)信息技术有限公司高级工程师、信息系统项目管理师,《大话性能测试:JMeter实战》作者,具有近10年工作经验,擅长性能测试和测试工具开发,对JMeter和Python有较多研究和实践,著有6项发明专利,并在技术领域持续思考和创新。
第 一篇 基础篇
第 1 章 Python 环境 2
1.1 Python 简介 2
1.1.1 Python 的特点 2
1.1.2 Python 的用途 3
1.1.3 Python 的历史 3
1.2 Python 安装升级 5
1.2.1 Python 安装 5
1.2.2 Python 运行 8
1.3 pip 管理工具包 8
1.3.1 pip 命令 8
1.3.2 离线安装 9
1.3.3 更换 pip 源 9
1.4 Python 虚拟环境 10
1.4.1 基本概念 10
1.4.2 pipenv 特性 11
1.4.3 pipenv 安装 11
1.4.4 创建虚拟环境 12
1.4.5 pipenv 管理依赖 13
1.4.6 pipenv 安装依赖工具包 14
1.4.7 常用命令 15
1.4.8 部署迁移虚拟环境 16
1.5 本章小结 17
第 2 章 PyCharm 工具 18
2.1 PyCharm 简介 18
2.2 配置虚拟开发环境 19
2.2.1 使用本地虚拟 Python 环境 19
2.2.2 使用远程虚拟 Python 环境 20
2.3 配置远程开发环境 25
2.4 PyCharm 常用功能 27
2.4.1 编码设置 27
2.4.2 分屏查看代码 28
2.4.3 解释器设置 28
2.4.4 模板设置 29
2.4.5 指定运行参数 30
2.4.6 调试程序 31
2.4.7 安装依赖工具包 32
2.4.8 配置 PyPI 国内源 33
2.4.9 tab 和空格的自动转换 33
2.4.10 函数注释和参数注释 34
2.4.11 _ _name_ _== '_ _main_ _'的作用 34
2.4.12 设置去除显示的波浪线 35
2.4.13 可视化操作数据库 35
2.5 配置 Git 代码管理仓库 36
2.6 本章小结 37
第 3 章 Python 基础 38
3.1 Python 基本数据类型 38
3.1.1 数值类型 38
3.1.2 布尔类型 38
3.1.3 字符串类型 39
3.1.4 列表类型 40
3.1.5 元组类型 41
3.1.6 集合类型 41
3.1.7 字典类型 41
3.1.8 字节类型 45
3.2 面向对象编程 46
3.2.1 面向对象编程的要素 46
3.2.2 面向对象编程的特征 50
3.2.3 设计思想 52
3.3 面向过程编程 53
3.3.1 特殊函数 54
3.3.2 函数的参数 56
3.3.3 变量的作用域 57
3.4 import 机制 59
3.5 Python 项目打包发布 60
3.5.1 包的概念 61
3.5.2 包管理的作用 61
3.5.3 包管理工具 61
3.5.4 发布方式 62
3.6 typing 类型提示 66
3.6.1 typing 模块介绍 66
3.6.2 typing 模块的使用 66
3.6.3 函数注解 68
3.6.4 参数注解 68
3.7 本章小结 68
第二篇 专题篇
第 4 章 常用百宝箱 70
4.1 自定义异常处理 70
4.1.1 异常含义 70
4.1.2 异常处理方法 71
4.1.3 自定义异常 71
4.1.4 封装示例 73
4.2 日志处理 75
4.2.1 logging 库 75
4.2.2 logging 日志等级 75
4.2.3 logging 四大组件 76
4.2.4 封装示例 77
4.3 邮件处理 79
4.4 时间处理 83
4.5 多线程处理 89
4.5.1 线程的含义 89
4.5.2 线程的使用 89
4.5.3 线程池的使用 92
4.5.4 高级用法 94
4.6 Excel 处理 95
4.6.1 基本概念 96
4.6.2 封装示例 99
4.7 配置文件处理 101
4.7.1 yaml 基础 102
4.7.2 PyYAML 库 103
4.7.3 封装示例 105
4.8 正则表达式处理 106
4.8.1 常用字符功能 106
4.8.2 re 模块简介 107
4.9 命令行参数解析 110
4.9.1 命令行参数含义 110
4.9.2 命令行参数解析库 110
4.10 with 正确使用 114
4.11 文件读写处理 116
4.11.1 基本的语法 116
4.11.2 文件的读写 117
4.11.3 文件的关闭 118
4.11.4 大文件处理 118
4.11.5 分块下载大文件 119
4.12 序列化处理 120
4.12.1 序列化和反序列化方法 120
4.12.2 pickle 库 121
4.12.3 json 库 122
4.12.4 msgpack 库 123
4.13 本章小结 124
第 5 章 高级百宝箱 125
5.1 消息中间件简介 125
5.2 Kafka 的使用与封装 126
5.2.1 Kafka 简介 126
5.2.2 使用 Kafka 128
5.2.3 封装示例 136
5.3 RabbitMQ 的使用与封装 143
5.3.1 RabbitMQ 简介 143
5.3.2 使用 RabbitMQ 144
5.3.3 封装示例 147
5.4 缓存中间件简介 151
5.5 MongoDB 的使用与封装 151
5.5.1 MongoDB 简介 151
5.5.2 使用 MongoDB 153
5.5.3 封装示例 158
5.6 Redis 的使用与封装 161
5.6.1 Redis 简介 161
5.6.2 使用 Redis 161
5.6.3 封装示例 164
5.7 数据库中间件简介 166
5.8 MySQL 的使用与封装 166
5.8.1 MySQL 简介 166
5.8.2 使用 MySQL 167
5.8.3 封装示例 170
5.9 SQLite 的使用与封装 172
5.9.1 SQLite 简介 173
5.9.2 使用 SQLite 173
5.9.3 封装示例 176
5.10 本章小结 181
第 6 章 通用框架 182
6.1 Web 应用框架 FastAPI 182
6.1.1 FastAPI 简介 182
6.1.2 使用 FastAPI 183
6.1.3 封装示例 193
6.2 异步处理框架 Celery 196
6.2.1 Celery 简介 196
6.2.2 使用 Celery 198
6.2.3 封装示例 201
6.3 爬虫框架 Scrapy 209
6.3.1 Scrapy 简介 209
6.3.2 使用 Scrapy 211
6.3.3 封装示例 216
6.4 本章小结 220
第三篇 实战篇
第 7 章 音频测试工具开发 222
7.1 需求背景 222
7.2 涉及知识 222
7.2.1 MP3 文件 224
7.2.2 WAV 文件 226
7.3 代码解读 228
7.4 本章小结 235
第 8 章 自定义套接字测试工具开发 236
8.1 需求背景 236
8.2 涉及知识 237
8.2.1 socket 库 237
8.2.2 struct 库 240
8.3 代码解读 242
8.4 本章小结 246
第 9 章 接口测试工具开发 247
9.1 需求背景 247
9.2 涉及知识 249
9.2.1 requests 库 249
9.2.2 序列化和反序列化 253
9.3 代码解读 254
9.4 本章小结 266
第 10 章 数据测试工具开发 267
10.1 需求背景 267
10.2 涉及知识 267
10.2.1 pandas 库 267
10.2.2 pyecharts 库 270
10.3 代码解读 271
10.4 本章小结 278
第 11 章 性能测试工具开发 279
11.1 需求背景 279
11.2 涉及知识 281
11.2.1 Linux 概念 281
11.2.2 subprocess 库 283
11.3 代码解读 285
11.4 本章小结 291
第 12 章 安全测试工具开发 292
12.1 需求背景 292
12.2 涉及知识 294
12.2.1 端口 294
12.2.2 Nmap 295
12.3 代码解读 297
12.4 本章小结 300