HTTP抓包之接口自動化測試( 簡體 字) | |
作者:肖佳 | 類別:1. -> 程式設計 -> 綜合 |
出版社:人民郵電出版社 | 3dWoo書號: 53739 詢問書籍請說出此書號! 有庫存 NT售價: 345 元 |
出版日:12/1/2020 | |
頁數:260 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787115534316 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第 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 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 響應負荷 81 9.5 錯誤的POST提交方法 81 9.6 根據接口文檔調用接口實例 81 9.7 鍵值對和JSON的混合 82 9.8 本章小結 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實現下載文件 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 本書內容來自作者多年從事接口測試的經驗總結,貼近實際,能幫助讀者解決實際工作中的難題。本書的主要內容有HTTP的基礎知識;如何使用Fiddler來抓HTTP包;如何分析HTTP包;如何通過JMeter和Postman等發送HTTP包,從而實現軟件自動化測試和接口的自動化測試;如何使用抓包工具來實現安全測試和性能測試等;幾個日常生活中應用比較廣泛的綜合實例。
本書圖文并茂、實例豐富,方便讀者參考并動手實踐,適合前端開發工程師、測試工程師、線上故障技術人員、接口開發人員和Web開發人員閱讀。 |