自動化接口測試以其容易實現(xiàn),維護成本低,成為每個公司開展自動化測試的*。本書主要介紹如何用Python語言調(diào)用接口進行自動化測試開發(fā)。本書主要內(nèi)容包括,Python算法基礎(chǔ)知識、自動化測試相關(guān)的網(wǎng)絡(luò)原理、測試執(zhí)行器的實際用法、如何用Jenkins持續(xù)集成進行接口測試,以及云計算、DevOps等技術(shù)方面的知識。本書內(nèi)容通俗易懂,讀者即使沒有編程經(jīng)驗,也可通過對書中實例和習題的學習,很快上手學會自動化測試關(guān)鍵技術(shù);不僅適合想要進入或轉(zhuǎn)行測試開發(fā)行業(yè)的初學者閱讀;還適合有一定經(jīng)驗的讀者進階使用。
這本自學手冊有三個特點(1)練習式學習。書中會給讀者布置很多小練習,并給予適當?shù)奶崾。讀者在完成這些小練習后,將會發(fā)現(xiàn)自己已經(jīng)通過實踐操作掌握了需要學習的知識。
(2)自助式擴展閱讀。書中會給出搜索關(guān)鍵字,讀者可以通過搜索引擎自行查找,通過這樣的搜索實踐操作來鍛煉大家的信息搜索能力和信息篩選能力,這兩種能力也是實際工作中非常實用的能力。
(3)循序漸進地學習。希望讀者在學習過程中沒有阻礙,遇到問題可以自己解決,從而自由順暢地往下學,不會在某處遇到問題,之后的內(nèi)容就會看不懂。本書并非一本大而全的百科全書,而是專門針對自動化測試選擇實用、核心的知識點來講解,F(xiàn)在各種學習資料十分豐富,但正因為太過豐富,導致我們在學習時很迷茫,不知道應該先學哪個?本書基于這樣一個學習困惑,幫助讀者通過*短學習路徑學會自動化測試。因此,書中選擇當今主要的、使用廣泛的接口測試作為切入點,帶給大家一個從零開始到掌握接口自動化測試的完整學習流程。
前 言
記得四年前,我在之前的公司給同事們做過一次selenium(一個Web自動化測試工具)的培訓。同事們聽得很認真,對于每一個知識點我也講解得非常細致;課后,當同事提出問題的時候,我非常耐心地進行講解。當時的我,信心滿滿,心想這樣細致地培訓下來,大家一定會把自動化測試做得很好。
然而,我很快發(fā)現(xiàn),這次培訓并沒有什么作用。不會寫代碼的同事還是不會寫;有的同事學了后面的知識,忘了前面的;有的同事學了我教過的知識,但內(nèi)容稍微一變化還是不會;有的同事看上去學習很認真努力,但并沒有掌握關(guān)鍵技術(shù);同時我還了解有很多人兩年前只會寫一點簡單的自動化測試腳本,兩年后仍然是這個水平。
這件事曾使我非常困惑,為什么這么細致地講解了卻沒有效果。在后來的工作中,我逐漸意識到自學能力是問題的關(guān)鍵。我們在網(wǎng)上可以找到各種各樣的學習資料,比如技術(shù)教程、相關(guān)書籍、微博資料、視頻講解、培訓課程等,這些學習資料會很詳細地講解各種知識點,但并沒有教給我們學習的方法導致遇到問題時不會自己解決。由此我萌生了編寫一本自學手冊的想法,指導對自動化測試感興趣的讀者如何自學這方面的知識。
本書的目標是:致力于把學習方法教給讀者,通過對這本自學手冊的學習,重點培養(yǎng)讀者的自學能力,培養(yǎng)自己的學習習慣,掌握一套完善的學習方法。終,使讀者具備自主學習新技術(shù)的能力。
這本自學手冊有三個特點
(1)練習式學習。書中會給讀者布置很多小練習,并給予適當?shù)奶崾尽Wx者在完成這些小練習后,將會發(fā)現(xiàn)自己已經(jīng)通過實踐操作掌握了需要學習的知識。
(2)自助式擴展閱讀。書中會給出搜索關(guān)鍵字,讀者可以通過搜索引擎自行查找,通過這樣的搜索實踐操作來鍛煉大家的信息搜索能力和信息篩選能力,這兩種能力也是實際工作中非常實用的能力。
(3)循序漸進地學習。希望讀者在學習過程中沒有阻礙,遇到問題可以自己解決,從而自由順暢地往下學,不會在某處遇到問題,之后的內(nèi)容就會看不懂。本書并非一本大而全的百科全書,而是專門針對自動化測試選擇實用、核心的知識點來講解。
現(xiàn)在各種學習資料十分豐富,但正因為太過豐富,導致我們在學習時很迷茫,不知道應該先學哪個?本書基于這樣一個學習困惑,幫助讀者通過短學習路徑學會自動化測試。因此,書中選擇當今主要的、使用廣泛的接口測試作為切入點,帶給大家一個從零開始到掌握接口自動化測試的完整學習流程。
目 錄
第1章 自動化測試概述
1.1 自動化測試分類 1
1.1.1 以測試對象分類 1
1.1.2 以技術(shù)基礎(chǔ)分類 1
1.1.3 其他分類方法 2
1.2 自動化測試學習路線和方法 3
1.2.1 學習路線 3
1.2.2 學習方法 3
1.3 自動化測試人員的職業(yè)發(fā)展 4
1.3.1 技術(shù)路線 4
1.3.2 管理路線 5
1.3.3 業(yè)務(wù)路線 5
第2章 Python環(huán)境搭建
2.1 安裝Python 7
2.1.1 下載Python安裝包 7
2.1.2 安裝Python 10
2.2 運行Python程序 11
2.2.1 進入命令行 11
2.2.2 交互模式 12
2.2.3 腳本模式 12
2.3 安裝PyCharm 12
2.3.1 下載PyCharm安裝包 12
2.3.2 安裝PyCharm 13
2.3.3 配置PyCharm 14
2.3.4 運行Hello world 16
2.4 搜索引擎使用方法 18
2.5 本章練習 18
第3章 Python基礎(chǔ)
3.1 基本語法 21
3.1.1 Print語句 21
3.1.2 字符串:一種專門的數(shù)據(jù)類型 22
3.1.3 理解并處理出現(xiàn)的錯誤和異常信息 22
3.1.4 變量:會發(fā)生變化的數(shù)據(jù) 24
3.1.5 用Python做數(shù)學運算 24
3.1.6 變量是可以更改的 25
3.1.7 注釋:用#符號開始的內(nèi)容 26
3.1.8 數(shù)字類型很簡單 26
3.1.9 多行字符串/多行注釋 27
3.1.10 布爾值是真是假 28
3.1.11 類型轉(zhuǎn)換 28
3.2 字符串 29
3.2.1 轉(zhuǎn)義字符 29
3.2.2 字符串索引 29
3.2.3 字符串方法 30
3.2.4 字符串拼接 30
3.2.5 時間日期的處理 31
3.3 條件分支語句 32
3.3.1 初識條件分支語句 32
3.3.2 比較運算符 33
3.3.3 判斷多個條件 34
3.3.4 條件分支語句的用法 37
3.3.5 程序設(shè)計:Pig Latin翻譯器 39
3.4 函數(shù)方法 45
3.4.1 初識函數(shù)方法 45
3.4.2 函數(shù)方法定義 46
3.4.3 調(diào)用和返回 46
3.4.4 參數(shù)表和傳入值 48
3.4.5 方法調(diào)用方法 49
3.4.6 模塊的導入 50
3.4.7 更多的內(nèi)建方法 52
3.5 列表和字典 55
3.5.1 初識列表 55
3.5.2 追加元素 56
3.5.3 列表切片和字符串切片 57
3.5.4 插入元素 59
3.5.5 遍歷 59
3.5.6 排序 60
3.5.7 初識字典 61
3.5.8 刪除元素 63
3.5.9 遍歷字典 64
3.5.10 復習 64
3.6 程序設(shè)計專題 68
3.6.1 練習:水果店 68
3.6.2 練習:算分數(shù) 69
3.7 列表和方法 71
3.7.1 復習列表 71
3.7.2 復習簡單練習中的方法 72
3.7.3 在方法里使用及修改列表的元素 73
3.7.4 使用range生成和遍歷列表 74
3.7.5 列表的拼接、嵌套與多層遍歷 76
3.8 循環(huán) 77
3.8.1 初識while循環(huán) 77
3.8.2 循環(huán)進入條件 78
3.8.3 用while處理用戶輸入 79
3.8.4 死循環(huán) 79
3.8.5 用break結(jié)束循環(huán) 80
3.8.6 For循環(huán) 81
3.8.7 更復雜的for循環(huán) 82
3.9 程序設(shè)計專題2 84
3.9.1 練習:制作戰(zhàn)船地圖 84
3.9.2 練習:戰(zhàn)船在地圖中隨機出現(xiàn) 86
3.9.3 練習:擊沉戰(zhàn)船判斷是否獲勝 88
3.9.4 練習:戰(zhàn)船游戲主循環(huán) 91
3.9.5 練習:編寫數(shù)學方法 91
3.9.6 練習:編寫更多方法 93
3.10 高級語法 94
3.10.1 操作符in 95
3.10.2 構(gòu)建列表 95
3.10.3 帶步長的切片 97
3.10.4 匿名函數(shù) 99
3.11 類 100
3.11.1 為什么要用類 100
3.11.2 定義一個類 102
3.11.3 類的變量類型 104
3.11.4 類的方法 105
3.11.5 類的繼承 107
3.11.6 類的復習 110
3.12 文件操作 111
3.12.1 寫文件 111
3.12.2 讀取文件 112
3.12.3 用with讀寫文件 113
第4章 接口測試基礎(chǔ)
4.1 網(wǎng)絡(luò)協(xié)議基礎(chǔ) 115
4.1.1 接口測試相關(guān)概念 115
4.1.2 網(wǎng)絡(luò)協(xié)議 116
4.1.3 網(wǎng)絡(luò)分層和數(shù)據(jù) 117
4.1.4 應用層和HTTP協(xié)議 119
4.1.5 其他層次和協(xié)議 121
4.2 接口測試常用工具 123
4.2.1 抓包工具 123
4.2.2 發(fā)包工具 125
4.3 使用Python調(diào)用接口 126
4.3.1 使用requests訪問GitHub 126
4.3.2 使用requests構(gòu)建http請求 127
4.3.3 requests中的響應 130
4.3.4 requests中的會話 132