本书主要讲述软件接口测试的技术和方法,共11章。本书结合大量示例代码,介绍了Python编程环境,Python编程基础知识,单元测试框架UnitTest,接口测试的基础知识,接口测试环境的搭建,接口测试案例,接口 Mock 的应用,接口测试工具,基于接口的性能测试案例,Python项目持续集成的案例,接口自动化测试平台的设计与实现。
本书不仅适合测试人员、开发人员、运维人员、项目管理人员阅读,还适合作为高等院校相关专业的教材。
1.结合实战和典型案例的图书,从工具到实战,一本上手接口测试的实战指南;
2.作者于涌是多本软件测试畅销书的作者,在业界已名声在外;
3.用流行的语言Python和工具讲解接口测试,更符合读者的需求。
于涌,毕业于北京大学计算机系,先后担高级程序员、测试分析师、高级测试经理等职位。拥有二十年丰富的开发、测试及管理经验。现致力于软件测试理论和实践研究,尤其擅长自动化测试工具应用、性能测试和单元测试等。曾为多个大型软件公司、高校企事业和专业培训机构提供软件测试、性能测试、安全测试、移动测试、自动化测试等理论和相关工具应用方面的咨询、培训和实施指导工作,具有丰富的实践和教学经验。多本软件测试畅销书的作者。
目 录
第 1章 Python编程环境 1
1.1 为什么要学习Python 2
1.2 Python的版本选择与安装 7
1.2.1 Python的版本选择 7
1.2.2 Python的安装与配置 10
1.3 Python模块的安装方法 14
1.4 PyCharm的安装 17
1.5 使用PyCharm完成第 一个
Python项目 20
1.6 本章小结和习题 24
1.6.1 本章小结 24
1.6.2 习题 24
第 2章 Python编程基础知识 26
2.1 Python自带IDE——IDLE 27
2.2 Python的相关术语 29
2.2.1 变量 29
2.2.2 数据类型 31
2.2.3 数据类型转换 36
2.2.4 缩进 37
2.2.5 内置函数 38
2.3 列表 39
2.3.1 创建列表 40
2.3.2 通过索引获取列表元素 40
2.3.3 通过切片获取列表元素 41
2.3.4 添加列表元素 43
2.3.5 删除列表元素 44
2.3.6 列表元素计数 46
2.3.7 列表元素的索引位置 48
2.3.8 列表长度及反转 49
2.4 元组 50
2.4.1 创建元组 50
2.4.2 通过索引获取元组元素 50
2.4.3 通过切片获取元组元素 51
2.4.4 元组元素计数 51
2.4.5 元组元素的索引位置 52
2.4.6 删除整个元组 52
2.5 字典 53
2.5.1 创建字典 53
2.5.2 获取字典元素 55
2.5.3 修改字典 56
2.5.4 字典元素计数 56
2.5.5 删除字典或其元素 57
2.6 集合 58
2.6.1 创建集合 58
2.6.2 获取集合元素 60
2.6.3 添加集合元素 60
2.6.4 修改集合 61
2.6.5 集合元素计数 62
2.6.6 删除集合或其元素 62
2.7 常用运算符 63
2.7.1 算术运算符 63
2.7.2 逻辑运算符 66
2.7.3 比较运算符 67
2.7.4 赋值运算符 67
2.7.5 位运算符 68
2.8 常规语句应用基础 69
2.8.1 for循环语句 69
2.8.2 while循环语句 70
2.8.3 if...else条件语句 71
2.8.4 break语句 72
2.8.5 continue语句 72
2.8.6 模块导入 72
2.8.7 函数 75
2.8.8 断言 79
2.8.9 局部变量和全局变量 79
2.8.10 单行注释与多行注释 80
2.9 语法错误及异常处理 81
2.9.1 语法错误 81
2.9.2 异常 82
2.9.3 通过try...except异常
捕获 84
2.9.4 通过try...except...else...finally
异常捕获 85
2.9.5 抛出异常 86
2.10 多线程处理 87
2.10.1 __name__ ==
"__main__" 87
2.10.2 线程 89
2.10.3 创建单个线程 90
2.10.4 创建多个线程 90
2.10.5 守护线程 91
2.10.6 阻塞线程 95
2.11 类和对象 96
2.11.1 对象的思想 96
2.11.2 对象(类)的概念 96
2.11.3 类中的self 98
2.11.4 构造函数与析构函数 99
2.11.5 类的继承 100
2.12 字符串相关操作 102
2.12.1 转换为字符串类型 102
2.12.2 字符串的拼接 103
2.12.3 字符串的截取 104
2.12.4 字符串的替换 105
2.12.5 字符串的位置判断 106
2.13 文件的相关操作 106
2.13.1 文本文件的操作 107
2.13.2 Excel文件操作 109
2.13.3 JSON格式 112
2.14 本章小结和习题 114
2.14.1 本章小结 114
2.14.2 习题 115
第3章 单元测试框架UnitTest 116
3.1 UnitTest测试框架 117
3.2 UnitTest测试框架的应用 117
3.2.1 学习UnitTest前的准备 117
3.2.2 测试用例设计 119
3.2.3 Test Case(测试用例) 120
3.2.4 Test Fixture(测试
固件) 122
3.2.5 Test Suite(测试套件) 122
3.2.6 Test Runner(测试
运行器) 125
3.3 本章小结和作业习题 128
3.3.1 本章小结 128
3.3.2 作业习题 129
第4章 接口测试的基础知识 130
4.1 搭建案例的相关环境 131
4.1.1 开启Internet信息服务 131
4.1.2 编写页面代码 132
4.1.3 编写JavaScript文件 132
4.1.4 创建虚拟目录 133
4.1.5 部署及访问 134
4.1.6 页面访问过程 134
4.2 网络模型 135
4.2.1 OSI模型 135
4.2.2 TCP/IP模型 137
4.3 HTTP 137
4.3.1 通过浏览器捕获HTTP 137
4.3.2 请求和响应过程 140
4.3.3 封装HTTP请求的内容 141
4.3.4 封装HTTP响应的内容 144
4.3.5 HTTP的无状态特点 147
4.4 缓存 147
4.4.1 查看浏览器缓存 147
4.4.2 设置缓存过期时间 149
4.4.3 缓存处理机制 151
4.4.4 常见的缓存策略 153
4.5 Cookie 155
4.6 会话 156
4.7 XML 158
4.8 JSON 159
4.9 本章小结和习题 160
4.9.1 本章小结 160
4.9.2 习题 160
第5章 接口测试环境的搭建 161
5.1 创建虚拟环境 162
5.1.1 通过virtualenv创建虚拟
环境 162
5.1.2 通过virtualenvwrapper
创建虚拟环境 165
5.1.3 安装Django 167
5.1.4 安装Django REST
Framework 169
5.1.5 安装Django REST
Framework JWT 169
5.2 案例一:Django接口测试环境的
搭建 170
5.2.1 新建项目目录 170
5.2.2 创建项目 170
5.2.3 创建应用 171
5.2.4 查看项目结构 171
5.2.5 注册应用 172
5.2.6 编写视图代码 172
5.2.7 实现URL映射 173
5.2.8 运行服务 173
5.2.9 访问接口 174
5.2.10 原理分析 174
5.3 案例二:基于模型的Django接口
测试环境的搭建 175
5.3.1 创建Django项目 176
5.3.2 PyCharm中的设置 177
5.3.3 检查应用注册信息 177
5.3.4 运行服务器 178
5.3.5 建立模型 179
5.3.6 生成数据库变更文件 180
5.3.7 生成数据库和数据表 180
5.3.8 查看数据库 181
5.3.9 编写视图代码 182
5.3.10 实现URL映射 183
5.3.11 运行服务器 184
5.3.12 访问接口 184
5.3.13 Django后台管理 184
5.4 案例三:Django REST Framework
接口测试环境的搭建 186
5.4.1 新建应用 186
5.4.2 注册应用 187
5.4.3 建立模型 187
5.4.4 模型序列化 188
5.4.5 变更数据 188
5.4.6 编写视图代码 189
5.4.7 实现URL映射 191
5.4.8 运行服务器 191
5.4.9 访问接口 192
5.4.10 实现POST请求 192
5.4.11 实现GET请求 193
5.4.12 实现PUT请求 194
5.4.13 实现DELETE请求 195
5.4.14 原理分析 195
5.5 案例四:实现令牌用户的认证 196
5.5.1 新建应用 197
5.5.2 引入用户认证机制 197
5.5.3 实现序列化 198
5.5.4 编写视图代码 198
5.5.5 URL设置 199
5.5.6 改变数据库 200
5.5.7 访问用户列表 200
5.5.8 通过Postman模拟请求 202
5.5.9 获取令牌 202
5.5.10 模拟身份认证 203
5.6 案例五:实现JWT用户的认证 204
5.6.1 启用Django REST
Framework中JWT的
配置 205
5.6.2 获取URL 206
5.6.3 获取JWT 206
5.6.4 模拟请求 207
5.6.5 过期验证 208
5.7 本章小结和习题 208
5.7.1 本章小结 208
5.7.2 习题 209
第6章 接口测试案例 210
6.1 项目架构的演变 211
6.2 接口测试 213
6.3 接口文档 214
6.3.1 PM2.5查询接口文档 214
6.3.2 腾讯云人脸比对接口
文档 216
6.4 接口测试 217
6.4.1 实现接口测试案例 217
6.4.2 接口设计文档 220
6.4.3 设计测试用例 222
6.4.4 编写测试脚本 229
6.5 本章小结和习题 237
6.5.1 本章小结 237
6.5.2 习题 237
第7章 接口Mock的应用 238
7.1 接口Mock技术介绍 239
7.2 json-server Mock工具实例
讲解 239
7.2.1 json-server介绍 239
7.2.2 json-server安装 240
7.2.3 json-server应用简要
说明 242
7.2.4 案例讲解1:向图书中添加
数据接口验证 245
7.2.5 案例讲解2:图书数据信息
查询接口验证 246
7.2.6 案例讲解3:出版社数据
信息修改接口验证 249
7.2.7 案例讲解4:图书数据信息
删除接口验证 250
7.3 本章小结和作业习题 251
7.3.1 本章小结 251
7.3.2 作业习题 251
第8章 接口测试工具 253
8.1 JMeter工具在接口测试中的
应用 254
8.1.1 JMeter相关介绍 254
8.1.2 JMeter的安装环境下载 254
8.1.3 安装JDK 255
8.1.4 安装JMeter 257
8.1.5 JMeter的录制需求介绍 258
8.1.6 创建线程组 258
8.1.7 添加测试脚本录制器 260
8.1.8 配置证书 262
8.1.9 运行脚本录制器 266
8.1.10 添加监听器 271
8.1.11 添加检查点 272
8.1.12 结果信息分析 275
8.2 基于JMeter工具接口测试项目
实战 276
8.2.1 火车查询接口介绍 276
8.2.2 火车查询接口测试用例
设计 280
8.2.3 首条接口测试用例JMeter
脚本实现 282
8.2.4 首条接口测试用例JMeter
脚本执行与结果分析 284
8.2.5 接口测试用例JMeter
脚本实现 287
8.2.6 接口测试用例JMeter
脚本执行与结果分析 289
8.3 Postman工具应用 291
8.3.1 Postman安装及介绍 291
8.3.2 Postman发送请求 293
8.3.3 执行脚本 298
8.3.4 运行测试集合 302
8.4 基于Postman工具接口测试项目
实战 304
8.4.1 接口测试用例Postman
脚本实现 305
8.4.2 接口测试用例Postman
脚本执行与结果分析 312
8.5 本章小结和作业习题 314
8.5.1 本章总结 314
8.5.2 作业习题 315
第9章 基于接口的性能测试实战 316
9.1 性能测试的基本概念 317
9.1.1 典型的性能测试场景 317
9.1.2 性能测试的概念及其
分类 317
9.1.3 性能测试工具的引入 318
9.1.3 性能测试的基本过程 319
9.2 Locust性能测试工具安装与
应用 325
9.2.1 Locust性能测试工具
安装 325
9.2.2 性能测试接口需求 326
9.2.3 接口测试功能性用例
设计 331
9.2.4 测试用例脚本实现(接口
功能性验证) 332
9.2.5 接口测试性能用例设计 334
9.2.6 测试用例脚本实现 335
9.2.7 Locust两种执行方式
简介 337
9.2.8 Locust分布式压测方法
简介 343
9.2.9 性能测试场景执行 344
9.2.10 性能测试执行结果
分析与总结 348
9.3 本章小结和作业习题 350
9.3.1 本章小结 350
9.3.2 作业习题 350
第 10章 Python项目持续集成的案例 351
10.1 持续集成 352
10.2 在Gitee上托管代码 352
10.2.1 设置Git用户信息 353
10.2.2 设置SSH公钥 353
10.2.3 在PyCharm中配置
Gitee 355
10.2.4 共享项目 357
10.3 Jenkins的安装 358
10.3.1 安装及配置JDK 359
10.3.2 安装Jenkins 360
10.4 Jenkins的配置 362
10.4.1 系统更新 362
10.4.2 插件管理 363
10.4.3 配置Gitee 367
10.5 Jenkins的构建任务 369
10.6 运行构建任务 371
10.7 本章小结和习题 373
10.7.1 本章小结 373
10.7.2 习题 373
第 11章 自动化接口测试平台设计与
实现 374
11.1 接口测试面临的一些痛点
问题 375
11.2 接口自动化测试平台核心功能
设计 375
11.2.1 接口自动化测试平台
引入 375
11.2.2 接口自动化测试平台
投入 377
11.2.3 JMeter命令行调用执行
方法 378
11.2.4 Postman命令行调用执行
方法 380
11.2.5 测试平台开发综述 385
11.2.6 平台测试用例管理 387
11.2.7 平台测试环境管理 389
11.2.8 平台测试任务执行 390
11.2.9 平台测试结果分析 392
11.2.10 平台测试报告生成 393
11.2.11 平台测试邮件通知 396
11.3 本章小结和作业习题 397
11.3.1 本章小结 397
11.3.2 作业习题 398