關(guān)于我們
書單推薦
新書推薦
|
HTTP抓包之接口自動化測試
本書內(nèi)容來自作者多年從事接口測試的經(jīng)驗總結(jié),貼近實際,能幫助讀者解決實際工作中的難題。本書的主要內(nèi)容有HTTP的基礎(chǔ)知識;如何使用Fiddler來抓HTTP包;如何分析HTTP包;如何通過JMeter和Postman等發(fā)送HTTP包,從而實現(xiàn)軟件自動化測試和接口的自動化測試;如何使用抓包工具來實現(xiàn)安全測試和性能測試等;幾個日常生活中應(yīng)用比較廣泛的綜合實例。
本書圖文并茂、實例豐富,方便讀者參考并動手實踐,適合前端開發(fā)工程師、測試工程師、線上故障技術(shù)人員、接口開發(fā)人員和Web開發(fā)人員閱讀。
《HTTP抓包實戰(zhàn)》作者新作!
1.《HTTP抓包實戰(zhàn)》的升級版,對書里很多知識點進行擴展和深入;
2.實例豐富:來自作者多年從事接口測試的經(jīng)驗總結(jié),貼近實際,幫助解決實際工作中的難題;
3.圖文并茂:讀者閱讀比較輕松、容易上手。
本書用豐富有趣的實例、簡潔明了的語言帶你領(lǐng)略接口自動化測試的別樣魅力。用Fiddler抓包,再用JMeter、 Postman和Python+requests發(fā)包,自動簽到或者自動下訂單等小工具難不倒你!溫馨提示:跟著圖例一起操作,一定會讓你事半功倍!
--陳慧楠,高級測試工程師
在本書中,肖老師用通俗易懂的語言講述了接口測試中常用工具Fiddler的使用和如何做接口自動化測試。該書將豐富的理論知識與實踐相結(jié)合,為廣大讀者叩開了接口測試的大門
--陳飛,高級測試工程師
肖佳,Vmware高級測試工程師,博客園知名博主(網(wǎng)名小坦克),《HTTP抓包實戰(zhàn)》一書的作者,軟件測試培訓構(gòu)“佳貓教育”創(chuàng)始人;從事軟件開發(fā)測試工作十余年,有豐富的手動測試和自動化測試經(jīng)驗;個人博客閱讀量已經(jīng)超過500萬,樂于分享,善于用淺顯的語言來講解技術(shù)。
第 1章 抓包的用處 1
1.1 Fiddler抓包的應(yīng)用 1
1.2 學習HTTP 2
1.2.1 HTTP請求的結(jié)構(gòu) 3
1.2.2 HTTP響應(yīng)的結(jié)構(gòu) 3
1.3 爬蟲 3
1.4 Fiddler在測試中的作用 5
1.4.1 抓包用于性能測試 5
1.4.2 抓包用于安全測試 5
1.4.3 抓包用于接口測試 6
1.4.4 大量制造測試數(shù)據(jù) 6
1.4.5 異常測試 6
1.4.6 排除故障和定位Bug 6
1.5 前端開發(fā)人員使用Fiddler調(diào)試Web 8
1.5.1 后端接口Mock 8
1.5.2 AJAX調(diào)試 9
1.5.3 線上調(diào)試 9
1.6 后端開發(fā)人員使用Fiddler抓包 9
1.7 安全測試 9
1.8 檢查網(wǎng)站的簡單問題 10
1.8.1 Fiddler檢查404錯誤 10
1.8.2 Fiddler檢查大響應(yīng) 10
1.9 自動化小工具的開發(fā) 11
1.9.1 購票助手 11
1.9.2 自動申請賬號工具 12
1.9.3 Fiddler找回密碼 12
1.9.4 網(wǎng)絡(luò)游戲助手 13
1.10 概念的區(qū)別 13
1.10.1 抓包和錄制的區(qū)別 13
1.10.2 自動化測試和爬蟲的區(qū)別 13
1.10.3 自動化測試和外掛的區(qū)別 13
1.11 本章小結(jié) 13
第 2章 Fiddler如何抓包 14
2.1 Fiddler必須要做的3個設(shè)置 14
2.1.1 第 1個設(shè)置:在Fiddler中安裝證書 14
2.1.2 第 2個設(shè)置:自動解壓HTTP響應(yīng) 14
2.1.3 第3個設(shè)置:隱藏“Tunnel to”請求 15
2.2 不允許抓包 16
2.2.1 某些App抓不到包 16
2.2.2 HTTP請求和響應(yīng)全部加密 16
2.2.3 不讓抓包 16
2.3 Fiddler抓不到包 17
2.3.1 Fiddler的抓包開關(guān) 17
2.3.2 瀏覽器抓不到包 17
2.3.3 能抓HTTP不能抓HTTPS的請求 18
2.3.4 抓不到手機中的包 19
2.3.5 經(jīng)過上面的設(shè)置,還是抓不到包 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 查看進程發(fā)包 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 本章小結(jié) 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 通過“=狀態(tài)碼”過濾 35
3.6 給Session下斷點 36
3.6.1 下斷點攔截HTTP請求 36
3.6.2 下斷點攔截HTTP響應(yīng) 37
3.6.3 及時取消斷點 37
3.7 本章小結(jié) 37
第4章 FiddlerScript的高級用法 38
4.1 FiddlerScript的界面 38
4.2 Fiddler的事件函數(shù) 38
4.3 在FiddlerScript中使用正則表達式 39
4.4 忽略抓包 39
4.5 顯示客戶端和服務(wù)器的IP 40
4.6 顯示響應(yīng)時間 41
4.7 讀寫本地txt文件 42
4.8 保存請求 42
4.9 重新發(fā)送請求 43
4.10 本章小結(jié) 43
第5章 常見的抓包工具 44
5.1 常見的抓包工具 44
5.2 瀏覽器開發(fā)者工具 44
5.2.1 調(diào)出開發(fā)者工具 44
5.2.2 用Chrome測試網(wǎng)頁加載時間 45
5.2.3 用Chrome捕獲網(wǎng)站登錄的POST請求 45
5.2.4 用Chrome測試接口的響應(yīng)時間 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配置規(guī)則 50
5.4.4 用Charles捕捉網(wǎng)站登錄的請求 50
5.5 Wireshark抓包工具 51
5.5.1 用Wireshark捕捉HTTP 51
5.5.2 用Wireshark捕捉HTTPS 53
5.6 本章小結(jié) 55
第6章 用Python發(fā)送HTTP請求 56
6.1 requests框架介紹 56
6.1.1 在pip中安裝requests框架 56
6.1.2 在PyCharm中安裝requests框架 56
6.2 發(fā)送GET請求 57
6.2.1 用Fiddler捕獲Python發(fā)出的HTTP請求 58
6.2.2 發(fā)送HTTPS請求 59
6.2.3 發(fā)送帶參數(shù)的GET請求 59
6.2.4 發(fā)送帶信息頭的請求 60
6.3 發(fā)送POST請求 61
6.3.1 發(fā)送普通POST請求 61
6.3.2 發(fā)送JSON的POST請求 61
6.4 會話維持 62
6.5 用Python發(fā)送各種請求 62
6.6 用Python下載文件 63
6.6.1 用Python下載圖片 63
6.6.2 用Python下載視頻 63
6.7 本章小結(jié) 63
第7章 用正則表達式提取數(shù)據(jù) 64
7.1 正則表達式測試工具 64
7.2 利用正則表達式提取數(shù)據(jù) 64
7.3 提取訂單號 64
7.4 提取token字符串 66
7.5 從JSON字符串中提取 67
7.6 提取Cookie字符串 67
7.7 爬蟲提取數(shù)據(jù) 68
7.8 本章小結(jié) 68
第8章 HTTP的9種請求方法 69
8.1 HTTP常見的9種請求方法 69
8.2 HTTP冪等性 69
8.3 9種請求方法的特性 70
8.4 HTTP和數(shù)據(jù)的增刪改查操作的對應(yīng)關(guān)系 70
8.5 PUT方法 70
8.5.1 POST方法和PUT方法的區(qū)別 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 本章小結(jié) 75
第9章 內(nèi)容類型 76
9.1 Content-Type介紹 76
9.1.1 Content-Type的格式 76
9.1.2 常見的Content-Type 77
9.2 POST提交數(shù)據(jù)的方式 77
9.3 3種常見的POST提交數(shù)據(jù)的方式 78
9.3.1 application/x-www-form-
urlencoded 78
9.3.2 application/json 79
9.3.3 text/xml 79
9.4 HTTP中的負荷 79
9.4.1 請求負荷 80
9.4.2 響應(yīng)負荷 81
9.5 錯誤的POST提交方法 81
9.6 根據(jù)接口文檔調(diào)用接口實例 81
9.7 鍵值對和JSON的混合 82
9.8 本章小結(jié) 83
第 10章 HTTP上傳和下載 84
10.1 HTTP上傳文件的兩種方式 84
10.2 multipart/form-data 84
10.2.1 對禪道上傳圖片的操作進行抓包 85
10.2.2 使用JMeter模擬上傳圖片 87
10.2.3 使用Python上傳圖片 88
10.3 application/octet-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實現(xiàn)下載文件 93
10.5 HTTP斷點續(xù)傳 94
10.5.1 HTTP請求信息頭 94
10.5.2 HTTP分段實例 94
10.6 本章小結(jié) 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系統(tǒng) 103
11.12 用Fiddler抓包堅果云 103
11.13 本章小結(jié) 104
第 12章 自動登錄和登錄安全 105
12.1 登錄的較量 105
12.2 登錄的風險 105
12.2.1 冒用他人賬戶登錄 106
12.2.2 賬戶和密碼在傳輸過程中被截獲 106
12.2.3 密碼被破解 106
12.2.4 系統(tǒng)被爬蟲軟件或者腳本自動登錄 106
12.3 登錄的風控 106
12.4 登錄用GET還是POST 106
12.4.1 GET方法的缺點 107
12.4.2 POST比GET安全 107
12.4.3 使用GET方法登錄的網(wǎng)站 108
12.5 安全的原則 108
12.6 使用POST方法登錄的網(wǎng)站 109
12.7 登錄響應(yīng)攜帶隱藏的token字符串 110
12.8 用JavaScript中的MD5給密碼加密 112
12.9 用JavaScript動態(tài)加密密碼 114
12.9.1 繞開JS混淆密碼 115
12.9.2 JS混淆密碼總結(jié) 116
12.10 短信驗證碼登錄 116
12.11 二維碼掃碼登錄 117
12.12 拼圖登錄 117
12.13 普通圖片驗證登錄 117
12.14 獨特的驗證方式 118
12.15 本章小結(jié) 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實現(xiàn)圖片驗證碼登錄 123
13.3 本章小結(jié) 124
第 14章 綜合實例——自動點贊 125
14.1 給文章自動點贊 125
14.1.1 拼圖驗證方式 125
14.1.2 直接使用Cookie繞過登錄 126
14.1.3 分析點贊的HTTP請求 126
14.2 用JMeter實現(xiàn)博客園文章自動點贊 129
14.3 使用Python實現(xiàn)博客園文章自動點贊 130
14.4 本章小結(jié) 131
第 15章 前端和后端 132
15.1 Web架構(gòu)圖 132
15.2 前端開發(fā)和后端開發(fā)的區(qū)別 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繞過前端實現(xiàn)投票 137
15.6 后臺和后臺管理的區(qū)別 138
15.7 本章小結(jié) 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 調(diào)用接口的方式 145
16.4 接口測試的工具 145
16.5 接口測試的本質(zhì) 146
16.6 接口測試的目的 147
16.6.1 接口測試的優(yōu)勢 147
16.6.2 接口測試是必需的嗎 147
16.6.3 接口測試需要的知識 148
16.6.4 接口測試的流程 148
16.6.5 接口測試的測試內(nèi)容 148
16.6.6 后端接口和前端測試是否重復 149
16.7 登錄接口的測試用例 149
16.8 接口測試是自動化測試嗎 149
16.9 如何設(shè)計接口測試用例 150
16.10 接口內(nèi)部狀態(tài)碼 151
16.11 本章小結(jié) 152
第 17章 JSON數(shù)據(jù)格式 153
17.1 JSON格式在接口中的應(yīng)用 153
17.2 JSON的概念 153
17.3 JSON的應(yīng)用場合 153
17.4 JSON的語法 154
17.5 JSON值的類型 154
17.6 JSON應(yīng)該使用雙引號 154
17.7 JSON數(shù)組 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 本章小結(jié) 160
第 18章 HTTP和RESTful服務(wù) 161
18.1 什么是RESTful 161
18.2 RESTful的優(yōu)點 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 資源的表現(xiàn)層可以是XML、JSON或者其他 164
18.3.6 認證機制 165
18.3.7 錯誤處理 165
18.4 本章小結(jié) 165
第 19章 用Postman測試分頁接口 166
19.1 接口介紹 166
19.2 設(shè)計測試用例 167
19.3 用Postman實現(xiàn)接口自動化 167
19.3.1 Postman介紹 167
19.3.2 Postman的使用 167
19.4 接口測試的發(fā)展方向 170
19.5 本章小結(jié) 170
第 20章 用JMeter測試單個接口 171
20.1 JMeter介紹 171
20.2 添加客房接口介紹 171
20.3 設(shè)計接口的測試用例 172
20.4 JMeter的操作過程 172
20.5 數(shù)據(jù)驅(qū)動測試 175
20.6 本章小結(jié) 177
第 21章 接口的token認證 178
21.1 接口的認證 178
21.2 token認證 178
21.2.1 調(diào)用天氣預報接口 180
21.2.2 token和Cookie的區(qū)別 181
21.3 token和Cookie一起用 182
21.4 在JMeter中如何處理token字符串 182
21.5 接口的三大安全性問題 185
21.6 請求參數(shù)被篡改 186
21.7 重放攻擊 186
21.7.1 在Fiddler中進行重放攻擊 187
21.7.2 UNIX時間戳 187
21.7.3 接口帶時間戳和簽名 188
21.8 本章小結(jié) 188
第 22章 發(fā)包常見的錯誤 189
22.1 發(fā)包的本質(zhì) 189
22.2 對比HTTP請求 189
22.3 用JMeter發(fā)包常見的錯誤 190
22.3.1 輸入的網(wǎng)址錯誤 190
22.3.2 端口號填錯 191
22.3.3 協(xié)議錯誤 191
22.3.4 變量取值錯誤 191
22.3.5 服務(wù)器返回404錯誤 192
22.3.6 服務(wù)器返回400錯誤 192
22.3.7 服務(wù)器返回500錯誤 192
22.4 Postman發(fā)包常見問題 193
22.5 JMeter和Postman的區(qū)別 193
22.6 接口測試尋求幫助 194
22.7 本章小結(jié) 195
第 23章 秒殺活動的壓力測試 196
23.1 秒殺活動的壓力測試方案 196
23.1.1 秒殺的原理 196
23.1.2 測試目標 197
23.1.3 業(yè)務(wù)分析 197
23.1.4 測試指標 197
23.2 使用Fiddler來測試秒殺活動 198
23.2.1 用Fiddler重新發(fā)送HTTP請求 198
23.2.2 用Fiddler測試秒殺活動的思路 198
23.2.3 用Fiddler測試優(yōu)惠券 199
23.2.4 單線程還是多線程 201
23.2.5 分辨腳本和用戶 201
23.3 捕獲App上的優(yōu)惠券活動 201
23.4 使用JMeter來測試秒殺活動 202
23.5 壓力測試報告 203
23.6 本章小結(jié) 204
第 24章 用Fiddler和JMeter進行 性能測試 205
24.1 性能測試概述 205
24.2 Web頁面加載時間測試 206
24.2.1 258原則 206
24.2.2 實例:博客園頁面加載時間測試 206
24.3 接口的響應(yīng)時間測試 208
24.4 視頻播放的性能測試 210
24.5 模擬5個用戶同時登錄網(wǎng)站 210
24.6 模擬5個不同的用戶同時登錄網(wǎng)站 212
24.7 本章小結(jié) 213
第 25章 HTTP中的支付安全測試 214
25.1 修改支付價格 214
25.2 漏洞發(fā)生的原因 215
25.3 支付漏洞的解決方法 216
25.3.1 前端不傳遞金額 216
25.3.2 簽名防止數(shù)據(jù)被篡改 217
25.4 修改充值金額測試 217
25.5 多線程提現(xiàn)測試 218
25.6 轉(zhuǎn)賬金額修改測試 219
25.7 重復支付 220
25.8 本章小結(jié) 221
第 26章 Web安全滲透測試 222
26.1 敏感信息泄露測試 222
26.2 重置密碼測試 222
26.3 修改任意賬號的郵箱密碼 225
26.4 Cookie是否是HttpOnly屬性 225
26.5 越權(quán)訪問漏洞 226
26.6 資源必須登錄才能訪問 227
26.7 修改VIP會員到期時間 228
26.8 本章小結(jié) 229
第 27章 綜合實例——自動提交訂單 230
27.1 背景 230
27.2 回歸測試 230
27.3 讓回歸測試自動化 231
27.4 產(chǎn)品的架構(gòu) 231
27.5 自動化測試方案 231
27.6 哪些測試用例可以自動化 232
27.7 下單的測試用例 233
27.8 用JMeter實現(xiàn)自動提交訂單 233
27.9 用Python實現(xiàn)自動提交訂單 236
27.10 用JMeter實現(xiàn)自動取消訂單 237
27.11 用Python實現(xiàn)自動取消訂單 239
27.12 模擬100個用戶同時下1000個訂單 240
27.13 本章小結(jié) 241
第 28章 綜合實例——自動申請賬號 242
28.1 一鍵申請賬號 242
28.2 用JMeter實現(xiàn)自動創(chuàng)建用戶 245
28.3 本章小結(jié) 248
第 29章 綜合實例——自動簽到領(lǐng)積分 249
29.1 自動簽到的思路 249
29.2 手機抓包 249
29.3 某電商簽到領(lǐng)豆子 249
29.4 某金融App簽到 251
29.5 自動運行腳本 252
29.5.1 Python腳本利用Windows計劃定時執(zhí)行 252
29.5.2 在Jenkins中定時執(zhí)行 253
29.6 本章小結(jié) 253
第30章 綜合實例——App約課助手 254
30.1 App約課助手的思路 254
30.2 自動化方案 254
30.3 模擬App端還是Web端 254
30.4 網(wǎng)課約課助手開發(fā) 255
30.4.1 第 1步:模擬登錄 255
30.4.2 第 2步:獲取課程ID 258
30.4.3 第3步:約課 259
30.5 本章小結(jié) 260
你還可能感興趣
我要評論
|