目 录
第 1章 测试那点事\t1
1.1 软件测试概述\t1
1.2 测试和质量\t2
1.3 从找缺陷到质量保障\t4
1.4 从质量保障到质量效能\t7
1.5 自动化测试\t8
1.6 接口\t10
1.6.1 内部接口\t11
1.6.2 外部接口\t11
1.7 接口测试\t12
1.8 小结\t13
第 2章 为接口测试储备技术\t15
2.1 接口测试都是以网络协议为基础的\t15
2.1.1 OSI七层模型\t16
2.1.2 TCP/IP四层模型\t19
2.2 HTTP/HTTPS\t20
2.2.1 HTTP状态码\t22
2.2.2 HTTP头\t25
2.3 Web服务器Tomcat\t27
2.4 小结\t28
第3章 着手准备接口测试\t29
3.1 抓包工具Fiddler\t29
3.1.1 Fiddler的使用技巧\t30
3.1.2 Fiddler中常用的QuickExec命令\t32
3.1.3 Fiddler的其他一些常见操作\t33
3.2 开源的抓包工具mitmproxy\t36
3.2.1 列表操作\t38
3.2.2 mitmweb\t39
3.3 接口测试的标准输入\t41
3.3.1 理想的接口测试提测项目\t41
3.3.2 理想的情况很难发生\t43
3.3.3 开始第 一个接口测试\t43
3.3.4 串联多个接口\t48
3.4 接口测试工具Postman\t49
3.4.1 使用测试用例集管理被测接口\t49
3.4.2 验证接口返回结果的正确性\t50
3.4.3 使用全局变量解决上下文依赖问题\t52
3.5 接口测试的关键逻辑\t53
3.5.1 明确被测系统\t53
3.5.2 开始接口测试\t53
3.5.3 Postman的接口测试和持续集成\t57
3.6 小结\t59
第4章 接口测试和代码\t60
4.1 测试工程师需要掌握的Python基础知识\t60
4.1.1 Python版的“Hello World!”程序\t60
4.1.2 基本数据类型\t61
4.1.3 组合数据类型\t64
4.1.4 None类型\t80
4.2 接口测试常用库requests\t81
4.2.1 初识requests库\t81
4.2.2 HTTP头的模拟\t83
4.2.3 响应的处理\t88
4.3 为什么要搭建团队自己的测试框架\t89
4.3.1 搭建前的准备工作\t90
4.3.2 开始打造测试框架\t91
4.3.3 使用新框架完成多接口测试\t93
4.4 unittest详解\t98
4.5 小结\t105
第5章 接口测试框架进阶\t106
5.1 支持RESTful风格的接口\t106
5.1.1 RESTful是什么\t106
5.1.2 RESTful接口测试\t108
5.2 让框架快速支持陌生协议的接口测试\t113
5.2.1 面对陌生协议的接口测试\t113
5.2.2 使用Fiddler查看WebSocket协议的接口交互信息\t114
5.2.3 完成WebSocket接口测试以及扩展之前框架的功能\t115
5.2.4 WebSocket一点通\t119
5.2.5 WebSocket数据帧的格式\t121
5.3 使框架拥有RPC接口测试能力\t122
5.3.1 RPC和gRPC\t122
5.3.2 gRPC接口如何测试\t123
5.4 测试数据的处理\t124
5.4.1 测试数据的原始方式\t124
5.4.2 建立数据驱动方式\t126
5.5 测试框架应有的其他一些技术属性\t130
5.5.1 设计base_url\t130
5.5.2 建立全局等待时间\t131
5.5.3 建立全局变量的管理器\t132
5.5.4 处理测试字符串\t135
5.6 小结\t138
第6章 性能测试\t139
6.1 性能测试的一些概念\t139
6.1.1 性能测试的常用指标\t139
6.1.2 性能测试的分类\t140
6.1.3 性能测试的前期准备\t141
6.1.4 性能测试的执行\t143
6.2 性能测试即代码\t144
6.3 Locust和LoadRunner的对比\t145
6.3.1 场景设置\t146
6.3.2 结果对比\t147
6.3.3 对比分析\t148
6.4 初识Locust和常用参数\t149
6.5 详解Locust的关键代码\t158
6.6 断言和参数化\t160
6.7 使用Locust测试gRPC接口的性能\t163
6.8 小结\t165
第7章 测试主导的服务解耦\t166
7.1 微服务下混乱的调用关系\t166
7.2 如何进行微服务的解耦\t167
7.3 快速、轻便的Moco框架\t169
7.3.1 配置Moco的运行环境\t170
7.3.2 Moco的运行\t170
7.3.3 Moco的JSON语法\t171
7.4 小结\t179
第8章 持续测试\t180
8.1 持续集成、持续交付和持续部署下的持续测试\t180
8.2 持续测试进行时\t182
8.2.1 测试左移\t182
8.2.2 测试右移\t183
8.3 质量门禁\t184
8.3.1 开发阶段的质量门禁\t184
8.3.2 测试阶段的质量门禁\t185
8.4 小结\t186
第9章 智能化测试\t187
9.1 智能化测试是发展的必然\t188
9.2 分层测试模型中的智能化测试\t192
9.2.1 开源的智能化单元测试\t192
9.2.2 智能化UI测试\t194
9.3 小结\t195
附录A HTTP知识点\t196
附录B HTTP代理工具\t201
附录C Python环境的配置和Battle 系统API\t206
附录D gRPC服务\t210
附录E SonarQube的部署和使用\t212
附录F EvoSuite的配置和使用问题\t218