新書推薦:
《
笼中王国 : 18世纪法国的珍禽异兽与社会文化
》
售價:NT$
340.0
《
思考的框架3 巴菲特芒格马斯克推崇的思维方式 风靡华尔街的思维训练法 沙恩·帕里什 著
》
售價:NT$
295.0
《
森林疗法:拥抱大自然、获得幸福的季节性方法
》
售價:NT$
340.0
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:NT$
845.0
《
亚马逊六页纸 如何高效开会、写作、完成工作
》
售價:NT$
349.0
《
世界巨变:严复的角色(王中江著作系列)
》
售價:NT$
500.0
《
塔西佗(全二册)(二十世纪人文译丛)
》
售價:NT$
1800.0
《
(棱镜精装人文译丛)思想的假死
》
售價:NT$
290.0
|
編輯推薦: |
《HTTP抓包实战》作者新作!
1.《HTTP抓包实战》的升级版,对书里很多知识点进行扩展和深入;
2.实例丰富:来自作者多年从事接口测试的经验总结,贴近实际,帮助解决实际工作中的难题;
3.图文并茂:读者阅读比较轻松、容易上手。
本书用丰富有趣的实例、简洁明了的语言带你领略接口自动化测试的别样魅力。用Fiddler抓包,再用JMeter、 Postman和Python requests发包,自动签到或者自动下订单等小工具难不倒你!温馨提示:跟着图例一起操作,一定会让你事半功倍!
--陈慧楠,高级测试工程师
在本书中,肖老师用通俗易懂的语言讲述了接口测试中常用工具Fiddler的使用和如何做接口自动化测试。该书将丰富的理论知识与实践相结合,为广大读者叩开了接口测试的大门
《HTTP抓包实战》作者新作!
1.《HTTP抓包实战》的升级版,对书里很多知识点进行扩展和深入;
2.实例丰富:来自作者多年从事接口测试的经验总结,贴近实际,帮助解决实际工作中的难题;
3.图文并茂:读者阅读比较轻松、容易上手。
本书用丰富有趣的实例、简洁明了的语言带你领略接口自动化测试的别样
|
內容簡介: |
本书内容来自作者多年从事接口测试的经验总结,贴近实际,能帮助读者解决实际工作中的难题。本书的主要内容有HTTP的基础知识;如何使用Fiddler来抓HTTP包;如何分析HTTP包;如何通过JMeter和Postman等发送HTTP包,从而实现软件自动化测试和接口的自动化测试;如何使用抓包工具来实现安全测试和性能测试等;几个日常生活中应用比较广泛的综合实例。
本书图文并茂、实例丰富,方便读者参考并动手实践,适合前端开发工程师、测试工程师、线上故障技术人员、接口开发人员和Web开发人员阅读。
|
關於作者: |
肖佳,Vmware高级测试工程师,博客园知名博主网名小坦克,《HTTP抓包实战》一书的作者,软件测试培训构佳猫教育创始人;从事软件开发测试工作十余年,有丰富的手动测试和自动化测试经验;个人博客阅读量已经超过500万,乐于分享,善于用浅显的语言来讲解技术。
|
目錄:
|
第 1章 抓包的用处 1
1.1 Fiddler抓包的应用 1
1.2 学习HTTP 2
1.2.1 HTTP请求的结构 3
1.2.2 HTTP响应的结构 3
1.3 爬虫 3
1.4 Fiddler在测试中的作用 5
1.4.1 抓包用于性能测试 5
1.4.2 抓包用于安全测试 5
1.4.3 抓包用于接口测试 6
1.4.4 大量制造测试数据 6
1.4.5 异常测试 6
1.4.6 排除故障和定位Bug 6
1.5 前端开发人员使用Fiddler调试Web 8
1.5.1 后端接口Mock 8
1.5.2 AJAX调试 9
1.5.3 线上调试 9
1.6 后端开发人员使用Fiddler抓包 9
1.7 安全测试 9
1.8 检查网站的简单问题 10
1.8.1 Fiddler检查404错误 10
1.8.2 Fiddler检查大响应 10
1.9 自动化小工具的开发 11
1.9.1 购票助手 11
1.9.2 自动申请账号工具 12
1.9.3 Fiddler找回密码 12
1.9.4 网络游戏助手 13
1.10 概念的区别 13
1.10.1 抓包和录制的区别 13
1.10.2 自动化测试和爬虫的区别 13
1.10.3 自动化测试和外挂的区别 13
1.11 本章小结 13
第 2章 Fiddler如何抓包 14
2.1 Fiddler必须要做的3个设置 14
2.1.1 第 1个设置:在Fiddler中安装证书 14
2.1.2 第 2个设置:自动解压HTTP响应 14
2.1.3 第3个设置:隐藏Tunnel to请求 15
2.2 不允许抓包 16
2.2.1 某些App抓不到包 16
2.2.2 HTTP请求和响应全部加密 16
2.2.3 不让抓包 16
2.3 Fiddler抓不到包 17
2.3.1 Fiddler的抓包开关 17
2.3.2 浏览器抓不到包 17
2.3.3 能抓HTTP不能抓HTTPS的请求 18
2.3.4 抓不到手机中的包 19
2.3.5 经过上面的设置,还是抓不到包 20
2.3.6 在macOS中抓包 20
2.3.7 Fiddler证书安装不成功 20
2.3.8 iOS 10.3以上,手动信任证书 21
2.4 Fiddler包太多找不到自己想要的 22
2.4.1 停止抓包 22
2.4.2 只抓手机,不抓本地的包 22
2.4.3 过滤会话 23
2.4.4 只抓特定的进程 23
2.4.5 观察URL和HOST 23
2.4.6 查看进程发包 24
2.5 HTTPS是否安全 24
2.6 计算机连接手机热点抓包 24
2.7 用Fiddler测试App升级 25
2.7.1 App升级原理 25
2.7.2 App升级的测试 26
2.7.3 坚果云的升级 26
2.8 短链接 27
2.8.1 短链接原理解析 27
2.8.2 使用短链接 27
2.8.3 用Fiddler抓包短链接 28
2.9 本章小结 28
第3章 Session分类和查询 29
3.1 Session的概念 29
3.2 为什么Fiddler中有这么多Session 29
3.3 Session的类型 30
3.4 搜索Session 31
3.4.1 搜索登录的会话 31
3.4.2 在请求搜索框中搜索 32
3.5 用命令行工具查询Session 32
3.5.1 通过select命令过滤 32
3.5.2 通过allbut过滤 33
3.5.3 通过 过滤 33
3.5.4 通过Session类型的大小来过滤 34
3.5.5 通过=HTTP方法过滤 35
3.5.6 通过@Host过滤 35
3.5.7 通过=状态码过滤 35
3.6 给Session下断点 36
3.6.1 下断点拦截HTTP请求 36
3.6.2 下断点拦截HTTP响应 37
3.6.3 及时取消断点 37
3.7 本章小结 37
第4章 FiddlerScript的高级用法 38
4.1 FiddlerScript的界面 38
4.2 Fiddler的事件函数 38
4.3 在FiddlerScript中使用正则表达式 39
4.4 忽略抓包 39
4.5 显示客户端和服务器的IP 40
4.6 显示响应时间 41
4.7 读写本地txt文件 42
4.8 保存请求 42
4.9 重新发送请求 43
4.10 本章小结 43
第5章 常见的抓包工具 44
5.1 常见的抓包工具 44
5.2 浏览器开发者工具 44
5.2.1 调出开发者工具 44
5.2.2 用Chrome测试网页加载时间 45
5.2.3 用Chrome捕获网站登录的POST请求 45
5.2.4 用Chrome测试接口的响应时间 46
5.2.5 过滤请求 47
5.3 vConsole 47
5.4 Charles抓包工具 48
5.4.1 Charles工具的安装与使用方法 48
5.4.2 在Charles中安装根证书 48
5.4.3 Charles配置规则 50
5.4.4 用Charles捕捉网站登录的请求 50
5.5 Wireshark抓包工具 51
5.5.1 用Wireshark捕捉HTTP 51
5.5.2 用Wireshark捕捉HTTPS 53
5.6 本章小结 55
第6章 用Python发送HTTP请求 56
6.1 requests框架介绍 56
6.1.1 在pip中安装requests框架 56
6.1.2 在PyCharm中安装requests框架 56
6.2 发送GET请求 57
6.2.1 用Fiddler捕获Python发出的HTTP请求 58
6.2.2 发送HTTPS请求 59
6.2.3 发送带参数的GET请求 59
6.2.4 发送带信息头的请求 60
6.3 发送POST请求 61
6.3.1 发送普通POST请求 61
6.3.2 发送JSON的POST请求 61
6.4 会话维持 62
6.5 用Python发送各种请求 62
6.6 用Python下载文件 63
6.6.1 用Python下载图片 63
6.6.2 用Python下载视频 63
6.7 本章小结 63
第7章 用正则表达式提取数据 64
7.1 正则表达式测试工具 64
7.2 利用正则表达式提取数据 64
7.3 提取订单号 64
7.4 提取token字符串 66
7.5 从JSON字符串中提取 67
7.6 提取Cookie字符串 67
7.7 爬虫提取数据 68
7.8 本章小结 68
第8章 HTTP的9种请求方法 69
8.1 HTTP常见的9种请求方法 69
8.2 HTTP幂等性 69
8.3 9种请求方法的特性 70
8.4 HTTP和数据的增删改查操作的对应关系 70
8.5 PUT方法 70
8.5.1 POST方法和PUT方法的区别 71
8.5.2 PUT方法和POST方法的选择 71
8.6 DELETE方法 71
8.7 HEAD方法 72
8.8 OPTIONS方法 73
8.9 CONNECT方法 73
8.10 PATCH方法 74
8.11 TRACE方法 74
8.12 本章小结 75
第9章 内容类型 76
9.1 Content-Type介绍 76
9.1.1 Content-Type的格式 76
9.1.2 常见的Content-Type 77
9.2 POST提交数据的方式 77
9.3 3种常见的POST提交数据的方式 78
9.3.1 applicationx-www-form-
urlencoded 78
9.3.2 applicationjson 79
9.3.3 textxml 79
9.4 HTTP中的负荷 79
9.4.1 请求负荷 80
9.4.2 响应负荷 81
9.5 错误的POST提交方法 81
9.6 根据接口文档调用接口实例 81
9.7 键值对和JSON的混合 82
9.8 本章小结 83
第 10章 HTTP上传和下载 84
10.1 HTTP上传文件的两种方式 84
10.2 multipartform-data 84
10.2.1 对禅道上传图片的操作进行抓包 85
10.2.2 使用JMeter模拟上传图片 87
10.2.3 使用Python上传图片 88
10.3 applicationoctet-stream 88
10.3.1 在博客园的文章中上传图片 88
10.3.2 用JMeter模拟博客园上传图片 90
10.3.3 用Python模拟博客园上传图片 91
10.4 用HTTP下载文件 92
10.4.1 用JMeter下载文件 92
10.4.2 用Python实现下载文件 93
10.5 HTTP断点续传 94
10.5.1 HTTP请求信息头 94
10.5.2 HTTP分段实例 94
10.6 本章小结 95
第 11章 HTTP对各种类型程序的抓包 96
11.1 用Fiddler抓取视频 96
11.2 用Fiddler抓音频文件 97
11.3 用Fiddler抓Flash 97
11.4 用Fiddler抓公众号 98
11.5 用Fiddler抓包小程序 99
11.6 用AJAX抓包 99
11.7 用Fiddler抓包C# 100
11.8 用Fiddler抓包Java 100
11.9 用Fiddler抓包Postman 101
11.10 用Fiddler捕获macOS 101
11.11 用Fiddler捕获Linux系统 103
11.12 用Fiddler抓包坚果云 103
11.13 本章小结 104
第 12章 自动登录和登录安全 105
12.1 登录的较量 105
12.2 登录的风险 105
12.2.1 冒用他人账户登录 106
12.2.2 账户和密码在传输过程中被截获 106
12.2.3 密码被破解 106
12.2.4 系统被爬虫软件或者脚本自动登录 106
12.3 登录的风控 106
12.4 登录用GET还是POST 106
12.4.1 GET方法的缺点 107
12.4.2 POST比GET安全 107
12.4.3 使用GET方法登录的网站 108
12.5 安全的原则 108
12.6 使用POST方法登录的网站 109
12.7 登录响应携带隐藏的token字符串 110
12.8 用JavaScript中的MD5给密码加密 112
12.9 用JavaScript动态加密密码 114
12.9.1 绕开JS混淆密码 115
12.9.2 JS混淆密码总结 116
12.10 短信验证码登录 116
12.11 二维码扫码登录 117
12.12 拼图登录 117
12.13 普通图片验证登录 117
12.14 独特的验证方式 118
12.15 本章小结 119
第 13章 图片验证码识别 120
13.1 图片验证码 120
13.1.1 图片验证码原理 121
13.1.2 图片识别介绍 121
13.1.3 Tesseract的安装与使用 121
13.1.4 Tesseract的使用 122
13.1.5 pytesseract的使用 122
13.2 用Python实现图片验证码登录 123
13.3 本章小结 124
第 14章 综合实例自动点赞 125
14.1 给文章自动点赞 125
14.1.1 拼图验证方式 125
14.1.2 直接使用Cookie绕过登录 126
14.1.3 分析点赞的HTTP请求 126
14.2 用JMeter实现博客园文章自动点赞 129
14.3 使用Python实现博客园文章自动点赞 130
14.4 本章小结 131
第 15章 前端和后端 132
15.1 Web架构图 132
15.2 前端开发和后端开发的区别 133
15.2.1 展示方式不同 133
15.2.2 运行不同 133
15.2.3 全栈工程师 133
15.2.4 前端和后端分离 134
15.3 前端验证和后端验证 134
15.3.1 前端验证 134
15.3.2 后端验证 135
15.3.3 前端验证和后端验证都需要 136
15.4 后端验证的Bug 136
15.5 Fiddler绕过前端实现投票 137
15.6 后台和后台管理的区别 138
15.7 本章小结 139
第 16章 接口和接口测试 140
16.1 接口的概念 140
16.1.1 后端接口 140
16.1.2 在线英语App示例 141
16.1.3 我的订单的前端和接口 141
16.2 登录接口示例 142
16.3 接口文档的维护 143
16.3.1 用Word文档维护 143
16.3.2 用Wiki页面维护 143
16.3.3 Swagger 143
16.3.4 调用接口的方式 145
16.4 接口测试的工具 145
16.5 接口测试的本质 146
16.6 接口测试的目的 147
16.6.1 接口测试的优势 147
16.6.2 接口测试是必需的吗 147
16.6.3 接口测试需要的知识 148
16.6.4 接口测试的流程 148
16.6.5 接口测试的测试内容 148
16.6.6 后端接口和前端测试是否重复 149
16.7 登录接口的测试用例 149
16.8 接口测试是自动化测试吗 149
16.9 如何设计接口测试用例 150
16.10 接口内部状态码 151
16.11 本章小结 152
第 17章 JSON数据格式 153
17.1 JSON格式在接口中的应用 153
17.2 JSON的概念 153
17.3 JSON的应用场合 153
17.4 JSON的语法 154
17.5 JSON值的类型 154
17.6 JSON应该使用双引号 154
17.7 JSON数组 155
17.8 JSON的嵌套 155
17.9 JSON格式错误 156
17.10 JSON解析工具 156
17.10.1 在线的解析工具 156
17.10.2 Notepad格式化JSON 156
17.10.3 在JMeter中格式化JSON 157
17.10.4 在Fiddler中格式化JSON 157
17.11 拼接JSON字符串 158
17.12 JMeter中的JSON提取器 159
17.13 本章小结 160
第 18章 HTTP和RESTful服务 161
18.1 什么是RESTful 161
18.2 RESTful的优点 162
18.3 RESTful的主要原则 162
18.3.1 以资源为核心 162
18.3.2 每个资源分配唯一的URL 163
18.3.3 通过标准的HTTP(HTTPS)方法操作资源 163
18.3.4 过滤信息 164
18.3.5 资源的表现层可以是XML、JSON或者其他 164
18.3.6 认证机制 165
18.3.7 错误处理 165
18.4 本章小结 165
第 19章 用Postman测试分页接口 166
19.1 接口介绍 166
19.2 设计测试用例 167
19.3 用Postman实现接口自动化 167
19.3.1 Postman介绍 167
19.3.2 Postman的使用 167
19.4 接口测试的发展方向 170
19.5 本章小结 170
第 20章 用JMeter测试单个接口 171
20.1 JMeter介绍 171
20.2 添加客房接口介绍 171
20.3 设计接口的测试用例 172
20.4 JMeter的操作过程 172
20.5 数据驱动测试 175
20.6 本章小结 177
第 21章 接口的token认证 178
21.1 接口的认证 178
21.2 token认证 178
21.2.1 调用天气预报接口 180
21.2.2 token和Cookie的区别 181
21.3 token和Cookie一起用 182
21.4 在JMeter中如何处理token字符串 182
21.5 接口的三大安全性问题 185
21.6 请求参数被篡改 186
21.7 重放攻击 186
21.7.1 在Fiddler中进行重放攻击 187
21.7.2 UNIX时间戳 187
21.7.3 接口带时间戳和签名 188
21.8 本章小结 188
第 22章 发包常见的错误 189
22.1 发包的本质 189
22.2 对比HTTP请求 189
22.3 用JMeter发包常见的错误 190
22.3.1 输入的网址错误 190
22.3.2 端口号填错 191
22.3.3 协议错误 191
22.3.4 变量取值错误 191
22.3.5 服务器返回404错误 192
22.3.6 服务器返回400错误 192
22.3.7 服务器返回500错误 192
22.4 Postman发包常见问题 193
22.5 JMeter和Postman的区别 193
22.6 接口测试寻求帮助 194
22.7 本章小结 195
第 23章 秒杀活动的压力测试 196
23.1 秒杀活动的压力测试方案 196
23.1.1 秒杀的原理 196
23.1.2 测试目标 197
23.1.3 业务分析 197
23.1.4 测试指标 197
23.2 使用Fiddler来测试秒杀活动 198
23.2.1 用Fiddler重新发送HTTP请求 198
23.2.2 用Fiddler测试秒杀活动的思路 198
23.2.3 用Fiddler测试优惠券 199
23.2.4 单线程还是多线程 201
23.2.5 分辨脚本和用户 201
23.3 捕获App上的优惠券活动 201
23.4 使用JMeter来测试秒杀活动 202
23.5 压力测试报告 203
23.6 本章小结 204
第 24章 用Fiddler和JMeter进行 性能测试 205
24.1 性能测试概述 205
24.2 Web页面加载时间测试 206
24.2.1 258原则 206
24.2.2 实例:博客园页面加载时间测试 206
24.3 接口的响应时间测试 208
24.4 视频播放的性能测试 210
24.5 模拟5个用户同时登录网站 210
24.6 模拟5个不同的用户同时登录网站 212
24.7 本章小结 213
第 25章 HTTP中的支付安全测试 214
25.1 修改支付价格 214
25.2 漏洞发生的原因 215
25.3 支付漏洞的解决方法 216
25.3.1 前端不传递金额 216
25.3.2 签名防止数据被篡改 217
25.4 修改充值金额测试 217
25.5 多线程提现测试 218
25.6 转账金额修改测试 219
25.7 重复支付 220
25.8 本章小结 221
第 26章 Web安全渗透测试 222
26.1 敏感信息泄露测试 222
26.2 重置密码测试 222
26.3 修改任意账号的邮箱密码 225
26.4 Cookie是否是HttpOnly属性 225
26.5 越权访问漏洞 226
26.6 资源必须登录才能访问 227
26.7 修改VIP会员到期时间 228
26.8 本章小结 229
第 27章 综合实例自动提交订单 230
27.1 背景 230
27.2 回归测试 230
27.3 让回归测试自动化 231
27.4 产品的架构 231
27.5 自动化测试方案 231
27.6 哪些测试用例可以自动化 232
27.7 下单的测试用例 233
27.8 用JMeter实现自动提交订单 233
27.9 用Python实现自动提交订单 236
27.10 用JMeter实现自动取消订单 237
27.11 用Python实现自动取消订单 239
27.12 模拟100个用户同时下1000个订单 240
27.13 本章小结 241
第 28章 综合实例自动申请账号 242
28.1 一键申请账号 242
28.2 用JMeter实现自动创建用户 245
28.3 本章小结 248
第 29章 综合实例自动签到领积分 249
29.1 自动签到的思路 249
29.2 手机抓包 249
29.3 某电商签到领豆子 249
29.4 某金融App签到 251
29.5 自动运行脚本 252
29.5.1 Python脚本利用Windows计划定时执行 252
29.5.2 在Jenkins中定时执行 253
29.6 本章小结 253
第30章 综合实例App约课助手 254
30.1 App约课助手的思路 254
30.2 自动化方案 254
30.3 模拟App端还是Web端 254
30.4 网课约课助手开发 255
30.4.1 第 1步:模拟登录 255
30.4.2 第 2步:获取课程ID 258
30.4.3 第3步:约课 259
30.5 本章小结 260
|
|