涵蓋HTTP 協定
快速掌握Fiddler 封包截取工具、JMeter 和Postman
生動有趣的實例搭配圖說明,讀者可以輕鬆掌握並動手實作
HTTP封包截取利用Fiddler封包截取工具來捕獲HTTP資料包,然後進行重發、編輯等操作。
HTTP封包截取的用途非常廣泛,主要用於Web開發偵錯、軟體自動化測試、介面自動化測試、性能測試和網路爬蟲等方面。也用來檢查網路安全。封包截取也經常被用來進行資料截取等。
全書共有22章,著重介紹HTTP協議、如何使用Fiddler對HTTP進行封包截取,如何對HTTP進行分析,使用JMeter等工具來發送HTTP封包以實現軟體的自動化測試。
本書適用讀者:適合前端開發工程師、測試工程師、線上故障支援人員、介面開發和Web 開發人員,或對自動化測試感興趣者。
作者簡介:
肖佳
VMware高級測試工程師,博客園知名博主(網名小坦克),發表很多軟體發展和測試方面的技術文章;有豐富的手動測試和自動化測試經驗;個人博客閱讀量超過500萬,樂於分享,善於用淺顯的語言講解技術。
作者序
前言
為什麼寫這本書
我從事軟體測試工作10 多年,一直有寫部落格的習慣,在部落格發表了上百篇關於開發和測試的高品質文章。把平常工作所學的知識和業餘時間亂玩的技術歸納成部落格,對我來說是非常好的沉澱方式,同時也可以幫助很多的技術人員。這些技術文章是組成本書的重要素材。
最近身邊很多朋友都已經出書了,為什麼自己不出本書呢?我還曾經在教育訓練機構擔任軟體測試的講師,培養過上千名的軟體測試人員,對於教育訓練非常有經驗。所以我感覺,寫一本技術圖書是水到渠成的事。
為了把書寫好,我開始在外面「吹牛皮」,說我要出書了。先把話說出去,然後逼著自己每天花2 小時寫書。否則牛皮吹出來,書沒寫成就丟人了。
本書資源
我為本書建立一個學習QQ 群:656587652。我將在QQ 群中解答讀者的問題,並且還會提供大家一些補充的學習資料。
本書的核心思想
這是一本講封包截取的書。全書核心思想可以歸納為3 個:封包、封包截取、發送封包。
本書內容主要包含HTTP資料封包長什麼樣子,如何使用工具封包截取,如何使用工具來發送封包。想要學會HTTP 協定,就要同時熟練使用Fiddler 封包截取工具。想要學好JMeter 工具,就必須先學好HTTP 協定。
HTTP 協定、Fiddler 封包截取工具、JMeter 和Postman,這幾個方面是相輔相成的,應該一起學。
本書的獨特之處
目前市面上已經有很多經典的圖書講述HTTP 協定和Fiddler,但它們都是獨立的。本書巧妙地將這些結合起來,包含很多有趣的小實例,深入淺出地用實際的操作實例來說明相關知識。讀者可以輕鬆掌握從第一章到最後一章的內容,學習的過程會很順利。
本書適合讀者
本書適合前端開發工程師、測試工程師、線上故障支援人員、介面開發人員和Web 開發人員閱讀。
本書介紹的技術適用場景
開發人員可以使用本書介紹的技術來進行Web 開發、Web 偵錯等。測試人員可以將本書介紹的技術用於做以HTTP 協定為基礎的自動化效能測試、Restful API 自動化測試和介面測試等。
本書介紹的技術還適合用於開發測試工具、電子郵件自動登入以及開發網路爬蟲等。
本書的內容和組織結構
特別介紹了HTTP 協定,以及如何使用Fiddler 來抓HTTP 封包,如何分析HTTP 封包。本書還介紹如何使用JMeter 等工具來發送HTTP 封包,實現軟體自動化測試。
全書22 章,每章的內容精簡,以生動有趣的實例搭配圖說明,方便讀者參考並動手實作。
繁體中文版說明
本書作者為中國大陸人士,範例多為中國大陸網站,書中有關中國大陸網站的說明圖,維持簡體中文介面,請讀者參閱書中文字閱讀。
致謝
我寫書的時候33 歲,已感受到非常嚴重的中年危機。工作十多年,還沒什麼大的成就。
寫書的過程的確很耗費時間和體力。白天上班,週末要兼職當講師,業餘時間還要教小孩英文,送小孩去各種補習班。寫作本書期間,每天晚上只睡5 個小時,把其他時間都用在寫書上面。
要感謝高博老師的鼓勵。高博老師是我以前在VMware 的同事。有一天高博老師打電話給我,鼓勵我寫這本書。
另外,要感謝人民郵電出版社的陳冀康編輯在本書的寫作過程中給予的大力支持。
前言
為什麼寫這本書
我從事軟體測試工作10 多年,一直有寫部落格的習慣,在部落格發表了上百篇關於開發和測試的高品質文章。把平常工作所學的知識和業餘時間亂玩的技術歸納成部落格,對我來說是非常好的沉澱方式,同時也可以幫助很多的技術人員。這些技術文章是組成本書的重要素材。
最近身邊很多朋友都已經出書了,為什麼自己不出本書呢?我還曾經在教育訓練機構擔任軟體測試的講師,培養過上千名的軟體測試人員,對於教育訓練非常有經驗。所以我感覺,寫一本技術圖書是水到渠成的事。
為了把書寫好,我開始在外面「吹牛皮」,說我要...
目錄
前言
第1章 HTTP 協定和Fiddler 封包截取
1.1 HTTP 協定介紹
1.2 Fiddler 的介紹
1.3 HTTP 協定封包的結構
1.4 Fiddler 封包截取的原理
第2章 HTTPS 協定和Fiddler 封包截取
2.1 HTTP 協定是不安全的
2.2 Web 通訊如何做到安全
2.3 什麼是HTTPS
2.4 Fiddler 如何捕捉HTTPS 階段
第3章 HTTP 協定請求方法和狀態碼
3.1 URL 詳解
3.2 HTTP 請求方法
3.3 HTTP 狀態碼
第4章 HTTP 協定Header 介紹
4.1 HTTP Header 介紹
4.2 Fiddler 檢視HTTP 請求Header
4.3 Fiddler 檢視HTTP 回應Header
4.4 Fiddler 檢視和複製Header
第5章 Web 網頁封包截取和Fiddler 修改封包
5.1 網頁是如何開啟的
5.2 Web 頁面簡單的效能測試
5.3 使用Fiddler 來檢視回應
5.4 Fiddler 下中斷點,修改HTTP 封包
第6章 HTTP 協定中的快取
6.1 快取的概念
6.2 快取的優點
6.3 Fiddler 可以方便地檢視快取的Header
6.4 如何判斷快取新鮮度
6.5 透過最後修改時間來判斷快取新鮮度
6.6 與快取有關的Header
6.7 ETag
6.8 瀏覽器不使用快取
6.9 直接使用快取,不去伺服器驗證
6.10 如何設定IE 不使用快取
6.11 公有快取和私有快取的區別
第7章 HTTP 協定壓縮和URL Encode
7.1 HTTP 壓縮的過程
7.2 URL Encode 介紹
7.3 Fiddler 中的TextWizard
第8章 Fiddler 使用技巧
8.1 Fiddler 和其他封包截取軟體的比較
8.2 Fiddler 抓不到封包應該怎麼解決
8.3 如何找到想抓的封包
8.4 Fiddler 例外退出後無法上網
8.5 Fiddler 排序
8.6 Fiddler 中查詢階段
8.7 Fiddler 中儲存抓到的封包
8.8 Fiddler 中編輯階段
8.9 過濾階段
8.10 常用快速鍵
8.11 QuickExec 命令列的使用
8.12 Fiddler 比較階段的不同
8.13 Fiddler 外掛程式
第9章 Fiddler 前端快速偵錯
9.1 如何在伺服器上偵錯JavaScript 檔案
9.2 Fiddler AutoResponder 的工作原理
9.3 Fiddler 線上偵錯JavaScript 檔案
9.4 浪漫的程式設計師
9.5 取代網頁中的圖片
第10章 Fiddler 的Script 用法
10.1 Fiddler Script 介紹
10.2 Fiddler Script Editor
10.3 CustomRules.js 中的主要方法
10.4 Fiddler 訂製選單
10.5 修改Session 在Fiddler 的顯示樣式
10.6 修改HTTP 請求
10.7 修改HTTP 回應
10.8 讀寫txt 檔案
10.9 使用正規表示法
10.10 儲存Session
10.11 讀取Session,並且使用Fiddler 來發送
第11章 深入了解Cookie 機制
11.1 HTTP 協定是無狀態的
11.2 階段機制
11.3 Cookie 機制
11.4 Cookie 是什麼
11.5 Cookie 的作用
11.6 封包截取觀察上海科技館網站的登入
11.7 Cookie 的屬性
11.8 Cookie 的分類
11.9 Cookie 儲存在哪裡
11.10 使用和禁用Cookie
11.11 網站自動登入的原理
11.12 Cookie 和檔案快取的區別
11.13 Cookie 洩露隱私
第12章 Fiddler 實現Cookie 綁架攻擊
12.1 截獲Cookie 冒充別人身份
12.2 Cookie 綁架的原理
12.3 Cookie 綁架實例介紹
12.4 網站退出的作用
第13章 HTTP 基本認證
13.1 什麼是HTTP 基本認證
13.2 摘要認證
第14章 Fiddler 手機封包截取
14.1 環境準備
14.2 Fiddler 截獲手機電路圖
14.3 截獲手機發出的HTTP 封包有什麼作用
14.4 手機封包截取
14.5 設定過濾
14.6 如何移除憑證
14.7 手機封包截取提醒
第15章 Fiddler 發送HTTP 請求
15.1 Fiddler Composer 發送HTTP 請求
15.2 Fiddler 重新發送HTTP 請求
15.3 安全測試之重放攻擊
15.4 尋找和登入相關的Cookie
第16章 Fiddler 實現弱網測試
16.1 什麼是弱網
16.2 弱網環境帶來的問題
16.3 弱網測試的目的
16.4 弱網的場
16.5 Fiddler 模擬網路延遲
16.6 精確控制網速
16.7 Fiddler 模擬網路中斷
16.8 實例:Fiddler 傳回500 狀態碼
16.9 Fiddler 模擬網路逾時
第17章 自動化測試和介面測試
17.1 自動化測試分類
17.2 分層的自動化測試理念
17.3 Web 自動化測試的兩種想法
17.4 什麼是介面測試
17.5 介面測試工具
17.6 Web 原理
17.7 Web 自動化測試原理
17.8 效能測試的原理
17.9 APP 的後台測試
17.10 如何學習Web 自動化測試和效能測試
第18章 JMeter 工具使用介紹
18.1 JMeter 介紹
18.2 JMeter 的下載和執行
18.3 建立測試工作
18.4 增加HTTP 請求
18.5 實例:密碼用MD5 加密
第19章 JMeter 天氣介面自動化測試
19.1 天氣查詢的實例
19.2 天氣查詢網站封包截取
19.3 封包截取分析
19.4 取得城市地區代碼
19.5 處理JMeter 中HTTP 回應亂碼
19.6 增加驗證點
19.7 使用使用者自訂變數
19.8 正規表示法分析城市地區程式
19.9 取得天氣
第20章 JMeter 中BeanShell 的用法
20.1 什麼是BeanShell
20.2 操作變數
20.3 JMeter 有哪些BeanShell
20.4 BeanShell 呼叫自己寫的jar 套件進行MD5 加密
第21章 自動登入禪道和自動開Bug
21.1 HTTP Cookie 管理員
21.2 HTTP 請求預設值
21.3 禪道介紹和部署
21.4 禪道操作和封包截取分析
第22章 JMeter 給網站做壓力測試
22.1 案例介紹
22.2 壓力測試的目的
22.3 封包截取分析Mozy 網站的登入過程
22.4 封包截取分析
22.5 實現Mozy 登入
22.6 簡單的壓力測試
前言
第1章 HTTP 協定和Fiddler 封包截取
1.1 HTTP 協定介紹
1.2 Fiddler 的介紹
1.3 HTTP 協定封包的結構
1.4 Fiddler 封包截取的原理
第2章 HTTPS 協定和Fiddler 封包截取
2.1 HTTP 協定是不安全的
2.2 Web 通訊如何做到安全
2.3 什麼是HTTPS
2.4 Fiddler 如何捕捉HTTPS 階段
第3章 HTTP 協定請求方法和狀態碼
3.1 URL 詳解
3.2 HTTP 請求方法
3.3 HTTP 狀態碼
第4章 HTTP 協定Header 介紹
4.1 HTTP Header 介紹
4.2 Fiddler 檢視HTTP 請求Header
4.3 Fiddler 檢視HTTP 回應Header
4.4 Fiddler ...