本書主要講述軟件接口測試的技術和方法,共11章。本書結(jié)合大量示例代碼,介紹了Python編程環(huán)境,Python編程基礎知識,單元測試框架UnitTest,接口測試的基礎知識,接口測試環(huán)境的搭建,接口測試案例,接口 Mock 的應用,接口測試工具,基于接口的性能測試案例,Python項目持續(xù)集成的案例,接口自動化測試平臺的設計與實現(xiàn)。
本書不僅適合測試人員、開發(fā)人員、運維人員、項目管理人員閱讀,還適合作為高等院校相關專業(yè)的教材。
1.結(jié)合實戰(zhàn)和典型案例的圖書,從工具到實戰(zhàn),一本上手接口測試的實戰(zhàn)指南;
2.作者于涌是多本軟件測試暢銷書的作者,在業(yè)界已名聲在外;
3.用流行的語言Python和工具講解接口測試,更符合讀者的需求。
于涌,畢業(yè)于北京大學計算機系,先后擔高級程序員、測試分析師、高級測試經(jīng)理等職位。擁有二十年豐富的開發(fā)、測試及管理經(jīng)驗,F(xiàn)致力于軟件測試理論和實踐研究,尤其擅長自動化測試工具應用、性能測試和單元測試等。曾為多個大型軟件公司、高校企事業(yè)和專業(yè)培訓機構提供軟件測試、性能測試、安全測試、移動測試、自動化測試等理論和相關工具應用方面的咨詢、培訓和實施指導工作,具有豐富的實踐和教學經(jīng)驗。多本軟件測試暢銷書的作者。
目 錄
第 1章 Python編程環(huán)境 1
1.1 為什么要學習Python 2
1.2 Python的版本選擇與安裝 7
1.2.1 Python的版本選擇 7
1.2.2 Python的安裝與配置 10
1.3 Python模塊的安裝方法 14
1.4 PyCharm的安裝 17
1.5 使用PyCharm完成第 一個
Python項目 20
1.6 本章小結(jié)和習題 24
1.6.1 本章小結(jié) 24
1.6.2 習題 24
第 2章 Python編程基礎知識 26
2.1 Python自帶IDE——IDLE 27
2.2 Python的相關術語 29
2.2.1 變量 29
2.2.2 數(shù)據(jù)類型 31
2.2.3 數(shù)據(jù)類型轉(zhuǎn)換 36
2.2.4 縮進 37
2.2.5 內(nèi)置函數(shù) 38
2.3 列表 39
2.3.1 創(chuàng)建列表 40
2.3.2 通過索引獲取列表元素 40
2.3.3 通過切片獲取列表元素 41
2.3.4 添加列表元素 43
2.3.5 刪除列表元素 44
2.3.6 列表元素計數(shù) 46
2.3.7 列表元素的索引位置 48
2.3.8 列表長度及反轉(zhuǎn) 49
2.4 元組 50
2.4.1 創(chuàng)建元組 50
2.4.2 通過索引獲取元組元素 50
2.4.3 通過切片獲取元組元素 51
2.4.4 元組元素計數(shù) 51
2.4.5 元組元素的索引位置 52
2.4.6 刪除整個元組 52
2.5 字典 53
2.5.1 創(chuàng)建字典 53
2.5.2 獲取字典元素 55
2.5.3 修改字典 56
2.5.4 字典元素計數(shù) 56
2.5.5 刪除字典或其元素 57
2.6 集合 58
2.6.1 創(chuàng)建集合 58
2.6.2 獲取集合元素 60
2.6.3 添加集合元素 60
2.6.4 修改集合 61
2.6.5 集合元素計數(shù) 62
2.6.6 刪除集合或其元素 62
2.7 常用運算符 63
2.7.1 算術運算符 63
2.7.2 邏輯運算符 66
2.7.3 比較運算符 67
2.7.4 賦值運算符 67
2.7.5 位運算符 68
2.8 常規(guī)語句應用基礎 69
2.8.1 for循環(huán)語句 69
2.8.2 while循環(huán)語句 70
2.8.3 if...else條件語句 71
2.8.4 break語句 72
2.8.5 continue語句 72
2.8.6 模塊導入 72
2.8.7 函數(shù) 75
2.8.8 斷言 79
2.8.9 局部變量和全局變量 79
2.8.10 單行注釋與多行注釋 80
2.9 語法錯誤及異常處理 81
2.9.1 語法錯誤 81
2.9.2 異!82
2.9.3 通過try...except異常
捕獲 84
2.9.4 通過try...except...else...finally
異常捕獲 85
2.9.5 拋出異常 86
2.10 多線程處理 87
2.10.1 __name__ ==
"__main__" 87
2.10.2 線程 89
2.10.3 創(chuàng)建單個線程 90
2.10.4 創(chuàng)建多個線程 90
2.10.5 守護線程 91
2.10.6 阻塞線程 95
2.11 類和對象 96
2.11.1 對象的思想 96
2.11.2 對象(類)的概念 96
2.11.3 類中的self 98
2.11.4 構造函數(shù)與析構函數(shù) 99
2.11.5 類的繼承 100
2.12 字符串相關操作 102
2.12.1 轉(zhuǎn)換為字符串類型 102
2.12.2 字符串的拼接 103
2.12.3 字符串的截取 104
2.12.4 字符串的替換 105
2.12.5 字符串的位置判斷 106
2.13 文件的相關操作 106
2.13.1 文本文件的操作 107
2.13.2 Excel文件操作 109
2.13.3 JSON格式 112
2.14 本章小結(jié)和習題 114
2.14.1 本章小結(jié) 114
2.14.2 習題 115
第3章 單元測試框架UnitTest 116
3.1 UnitTest測試框架 117
3.2 UnitTest測試框架的應用 117
3.2.1 學習UnitTest前的準備 117
3.2.2 測試用例設計 119
3.2.3 Test Case(測試用例) 120
3.2.4 Test Fixture(測試
固件) 122
3.2.5 Test Suite(測試套件) 122
3.2.6 Test Runner(測試
運行器) 125
3.3 本章小結(jié)和作業(yè)習題 128
3.3.1 本章小結(jié) 128
3.3.2 作業(yè)習題 129
第4章 接口測試的基礎知識 130
4.1 搭建案例的相關環(huán)境 131
4.1.1 開啟Internet信息服務 131
4.1.2 編寫頁面代碼 132
4.1.3 編寫JavaScript文件 132
4.1.4 創(chuàng)建虛擬目錄 133
4.1.5 部署及訪問 134
4.1.6 頁面訪問過程 134
4.2 網(wǎng)絡模型 135
4.2.1 OSI模型 135
4.2.2 TCP/IP模型 137
4.3 HTTP 137
4.3.1 通過瀏覽器捕獲HTTP 137
4.3.2 請求和響應過程 140
4.3.3 封裝HTTP請求的內(nèi)容 141
4.3.4 封裝HTTP響應的內(nèi)容 144
4.3.5 HTTP的無狀態(tài)特點 147
4.4 緩存 147
4.4.1 查看瀏覽器緩存 147
4.4.2 設置緩存過期時間 149
4.4.3 緩存處理機制 151
4.4.4 常見的緩存策略 153
4.5 Cookie 155
4.6 會話 156
4.7 XML 158
4.8 JSON 159
4.9 本章小結(jié)和習題 160
4.9.1 本章小結(jié) 160
4.9.2 習題 160
第5章 接口測試環(huán)境的搭建 161
5.1 創(chuàng)建虛擬環(huán)境 162
5.1.1 通過virtualenv創(chuàng)建虛擬
環(huán)境 162
5.1.2 通過virtualenvwrapper
創(chuàng)建虛擬環(huán)境 165
5.1.3 安裝Django 167
5.1.4 安裝Django REST
Framework 169
5.1.5 安裝Django REST
Framework JWT 169
5.2 案例一:Django接口測試環(huán)境的
搭建 170
5.2.1 新建項目目錄 170
5.2.2 創(chuàng)建項目 170
5.2.3 創(chuàng)建應用 171
5.2.4 查看項目結(jié)構 171
5.2.5 注冊應用 172
5.2.6 編寫視圖代碼 172
5.2.7 實現(xiàn)URL映射 173
5.2.8 運行服務 173
5.2.9 訪問接口 174
5.2.10 原理分析 174
5.3 案例二:基于模型的Django接口
測試環(huán)境的搭建 175
5.3.1 創(chuàng)建Django項目 176
5.3.2 PyCharm中的設置 177
5.3.3 檢查應用注冊信息 177
5.3.4 運行服務器 178
5.3.5 建立模型 179
5.3.6 生成數(shù)據(jù)庫變更文件 180
5.3.7 生成數(shù)據(jù)庫和數(shù)據(jù)表 180
5.3.8 查看數(shù)據(jù)庫 181
5.3.9 編寫視圖代碼 182
5.3.10 實現(xiàn)URL映射 183
5.3.11 運行服務器 184
5.3.12 訪問接口 184
5.3.13 Django后臺管理 184
5.4 案例三:Django REST Framework
接口測試環(huán)境的搭建 186
5.4.1 新建應用 186
5.4.2 注冊應用 187
5.4.3 建立模型 187
5.4.4 模型序列化 188
5.4.5 變更數(shù)據(jù) 188
5.4.6 編寫視圖代碼 189
5.4.7 實現(xiàn)URL映射 191
5.4.8 運行服務器 191
5.4.9 訪問接口 192
5.4.10 實現(xiàn)POST請求 192
5.4.11 實現(xiàn)GET請求 193
5.4.12 實現(xiàn)PUT請求 194
5.4.13 實現(xiàn)DELETE請求 195
5.4.14 原理分析 195
5.5 案例四:實現(xiàn)令牌用戶的認證 196
5.5.1 新建應用 197
5.5.2 引入用戶認證機制 197
5.5.3 實現(xiàn)序列化 198
5.5.4 編寫視圖代碼 198
5.5.5 URL設置 199
5.5.6 改變數(shù)據(jù)庫 200
5.5.7 訪問用戶列表 200
5.5.8 通過Postman模擬請求 202
5.5.9 獲取令牌 202
5.5.10 模擬身份認證 203
5.6 案例五:實現(xiàn)JWT用戶的認證 204
5.6.1 啟用Django REST
Framework中JWT的
配置 205
5.6.2 獲取URL 206
5.6.3 獲取JWT 206
5.6.4 模擬請求 207
5.6.5 過期驗證 208
5.7 本章小結(jié)和習題 208
5.7.1 本章小結(jié) 208
5.7.2 習題 209
第6章 接口測試案例 210
6.1 項目架構的演變 211
6.2 接口測試 213
6.3 接口文檔 214
6.3.1 PM2.5查詢接口文檔 214
6.3.2 騰訊云人臉比對接口
文檔 216
6.4 接口測試 217
6.4.1 實現(xiàn)接口測試案例 217
6.4.2 接口設計文檔 220
6.4.3 設計測試用例 222
6.4.4 編寫測試腳本 229
6.5 本章小結(jié)和習題 237
6.5.1 本章小結(jié) 237
6.5.2 習題 237
第7章 接口Mock的應用 238
7.1 接口Mock技術介紹 239
7.2 json-server Mock工具實例
講解 239
7.2.1 json-server介紹 239
7.2.2 json-server安裝 240
7.2.3 json-server應用簡要
說明 242
7.2.4 案例講解1:向圖書中添加
數(shù)據(jù)接口驗證 245
7.2.5 案例講解2:圖書數(shù)據(jù)信息
查詢接口驗證 246
7.2.6 案例講解3:出版社數(shù)據(jù)
信息修改接口驗證 249
7.2.7 案例講解4:圖書數(shù)據(jù)信息
刪除接口驗證 250
7.3 本章小結(jié)和作業(yè)習題 251
7.3.1 本章小結(jié) 251
7.3.2 作業(yè)習題 251
第8章 接口測試工具 253
8.1 JMeter工具在接口測試中的
應用 254
8.1.1 JMeter相關介紹 254
8.1.2 JMeter的安裝環(huán)境下載 254
8.1.3 安裝JDK 255
8.1.4 安裝JMeter 257
8.1.5 JMeter的錄制需求介紹 258
8.1.6 創(chuàng)建線程組 258
8.1.7 添加測試腳本錄制器 260
8.1.8 配置證書 262
8.1.9 運行腳本錄制器 266
8.1.10 添加監(jiān)聽器 271
8.1.11 添加檢查點 272
8.1.12 結(jié)果信息分析 275
8.2 基于JMeter工具接口測試項目
實戰(zhàn) 276
8.2.1 火車查詢接口介紹 276
8.2.2 火車查詢接口測試用例
設計 280
8.2.3 首條接口測試用例JMeter
腳本實現(xiàn) 282
8.2.4 首條接口測試用例JMeter
腳本執(zhí)行與結(jié)果分析 284
8.2.5 接口測試用例JMeter
腳本實現(xiàn) 287
8.2.6 接口測試用例JMeter
腳本執(zhí)行與結(jié)果分析 289
8.3 Postman工具應用 291
8.3.1 Postman安裝及介紹 291
8.3.2 Postman發(fā)送請求 293
8.3.3 執(zhí)行腳本 298
8.3.4 運行測試集合 302
8.4 基于Postman工具接口測試項目
實戰(zhàn) 304
8.4.1 接口測試用例Postman
腳本實現(xiàn) 305
8.4.2 接口測試用例Postman
腳本執(zhí)行與結(jié)果分析 312
8.5 本章小結(jié)和作業(yè)習題 314
8.5.1 本章總結(jié) 314
8.5.2 作業(yè)習題 315
第9章 基于接口的性能測試實戰(zhàn) 316
9.1 性能測試的基本概念 317
9.1.1 典型的性能測試場景 317
9.1.2 性能測試的概念及其
分類 317
9.1.3 性能測試工具的引入 318
9.1.3 性能測試的基本過程 319
9.2 Locust性能測試工具安裝與
應用 325
9.2.1 Locust性能測試工具
安裝 325
9.2.2 性能測試接口需求 326
9.2.3 接口測試功能性用例
設計 331
9.2.4 測試用例腳本實現(xiàn)(接口
功能性驗證) 332
9.2.5 接口測試性能用例設計 334
9.2.6 測試用例腳本實現(xiàn) 335
9.2.7 Locust兩種執(zhí)行方式
簡介 337
9.2.8 Locust分布式壓測方法
簡介 343
9.2.9 性能測試場景執(zhí)行 344
9.2.10 性能測試執(zhí)行結(jié)果
分析與總結(jié) 348
9.3 本章小結(jié)和作業(yè)習題 350
9.3.1 本章小結(jié) 350
9.3.2 作業(yè)習題 350
第 10章 Python項目持續(xù)集成的案例 351
10.1 持續(xù)集成 352
10.2 在Gitee上托管代碼 352
10.2.1 設置Git用戶信息 353
10.2.2 設置SSH公鑰 353
10.2.3 在PyCharm中配置
Gitee 355
10.2.4 共享項目 357
10.3 Jenkins的安裝 358
10.3.1 安裝及配置JDK 359
10.3.2 安裝Jenkins 360
10.4 Jenkins的配置 362
10.4.1 系統(tǒng)更新 362
10.4.2 插件管理 363
10.4.3 配置Gitee 367
10.5 Jenkins的構建任務 369
10.6 運行構建任務 371
10.7 本章小結(jié)和習題 373
10.7.1 本章小結(jié) 373
10.7.2 習題 373
第 11章 自動化接口測試平臺設計與
實現(xiàn) 374
11.1 接口測試面臨的一些痛點
問題 375
11.2 接口自動化測試平臺核心功能
設計 375
11.2.1 接口自動化測試平臺
引入 375
11.2.2 接口自動化測試平臺
投入 377
11.2.3 JMeter命令行調(diào)用執(zhí)行
方法 378
11.2.4 Postman命令行調(diào)用執(zhí)行
方法 380
11.2.5 測試平臺開發(fā)綜述 385
11.2.6 平臺測試用例管理 387
11.2.7 平臺測試環(huán)境管理 389
11.2.8 平臺測試任務執(zhí)行 390
11.2.9 平臺測試結(jié)果分析 392
11.2.10 平臺測試報告生成 393
11.2.11 平臺測試郵件通知 396
11.3 本章小結(jié)和作業(yè)習題 397
11.3.1 本章小結(jié) 397
11.3.2 作業(yè)習題 398