Python服務端測試開發(fā)實戰(zhàn)
定 價:89.8 元
- 作者:無涯
- 出版時間:2024/3/1
- ISBN:9787302655473
- 出 版 社:清華大學出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書圍繞Python技術棧,講解測試開發(fā)技術棧領域的各項核心技術要點。全書共11章,首先講解pytest單元測試框架在測試領域的技術棧要點,包含pytest從最基本的應用到高階應用。接著講解服務端測試開發(fā)領域主流的核心思想、主流測試開發(fā)工具在解決服務端測試開發(fā)中的技術難點,以及服務端測試框架的設計和項目實戰(zhàn)案例。在框架的基礎上擴展了服務端測試開發(fā)領域的知識面,主要介紹Docker容器化技術、基于DevOps體系的CI/CD技術棧體系以及CI/CD的技術落地案例、服務端測試開發(fā)領域的性能測試核心理論,方法論、流程化和主流性能測試在服務端的最佳實踐、性能測試過程中主流的監(jiān)控技術解決方案和JVM性能分析與實踐。同時在書中詳細講解了微服務架構下質量體系建設的方法論、可落地的思想和混沌工程針對底層高可用系統(tǒng)的保障技術。
本書適合不同業(yè)務領域的不同級別的測試工程師學習,特別適合功能測試工程師、自動化測試工程師和想要系統(tǒng)提升測試開發(fā)能力的讀者學習。
大廠服務端測試技術專家10年實戰(zhàn)經驗總結,手把手教您快速擺脫編程語言、框架、中間件及傳統(tǒng)編程思想束縛,全景式、體系化解讀服務端測試開發(fā)的流程、技術棧和實用規(guī)范
創(chuàng)作背景
隨著微服務架構技術和容器化技術在企業(yè)的全面落地,對構建高可用以及可持續(xù)提供服務產品的能力要求越來越高,同時也對原有的質量團隊提出了更高的要求,特別是既不能局限于端到端的測試,也不能局限于功能性層面的測試,而是要在深入了解底層架構設計以及程序內在邏輯的基礎上,運用測試工具或者編寫代碼來測試底層服務的穩(wěn)定性,即在高并發(fā)的場景下可持續(xù)提供服務的能力。隨著敏捷開發(fā)的持續(xù)推進,通過快速迭代和快速交付來應對市場的變化和不確定性,對質量團隊而言,使用傳統(tǒng)模式已經很難滿足這一特定需求,也很難應對快速交付市場的訴求,因為這中間涉及產品質量的把控。所以在這個過程中,市場需要QA(quality assurance,質量保證)工程師不僅要進行自動化測試,而且能夠內建質量體系,在技術手段以及測試思維的基礎上打造可持續(xù)構建使用的質量體系,在產品發(fā)展的不同階段引入如混沌工程等技術,以保障底層服務的穩(wěn)定性。
不管是企業(yè)的需要還是市場的訴求,都需要QA工程師具備服務端測試開發(fā)技術棧的知識體系,包括對架構、CI/CD、容器化技術、服務端性能測試領域、JVM、主流協議(HTTP&RPC)測試的支持,以及質量體系的建設技術訴求和人員需要具備的技術棧能力模型。
本書以Python語言作為主線(不僅是Python)展開,從理論到實戰(zhàn),帶領讀者實現從功能測試工程師到自動化測試工程師以及測試管理者的進階,從零開始構建服務端測試開發(fā)的知識體系和領域內的知識對質量體系的保障和落地。本書的核心內容來自筆者在網易云課堂的Python服務端測試開發(fā)實戰(zhàn)視頻課程,課程中融入了大量的實踐思考以及可在企業(yè)落地的技術,對QA工程師將有很大的借鑒意義。
目標讀者
功能測試工程師。
自動化測試工程師。
測試開發(fā)工程師。
測試管理者。
讀者服務
實戰(zhàn)源碼。
學習視頻。
讀者可以通過掃碼訪問本書專享資源官網,獲取項目實戰(zhàn)源碼、學習視頻,加入讀者群,下載最新學習資源或反饋書中的問題。
勘誤和支持
本書在編寫過程中歷經多次勘校、查證,力求能減少差錯,做到盡善盡美,但由于筆者水平有限,書中難免存在疏漏之處,懇請廣大讀者批評指正,也歡迎讀者來信一起探討。
無 涯
資深測試工程師,Python自動化測試博主,擁有多年工作經驗。在自動化測試、服務端測試、性能測試、質量管理等方向具備豐富的實戰(zhàn)經驗。
第1章 pytest測試實戰(zhàn) 1
1.1 編寫自動化測試 1
1.2 初識pytest 2
1.2.1 函數方式編寫測試用例 3
1.2.2 面向對象方式編寫測試用例 3
1.2.3 pytest執(zhí)行結果信息 5
1.3 pytest執(zhí)行規(guī)則 6
1.4 pytest常用命令 9
1.5 pytest參數化驅動實戰(zhàn) 14
1.5.1 參數化實戰(zhàn) 14
1.5.2 固件request 27
1.6 fixture實戰(zhàn) 28
1.6.1 fixture返回值 29
1.6.2 初始化清理 30
1.6.3 fixture重命名 33
1.7 conftest.py實戰(zhàn) 34
1.8 pytest常用插件 35
1.8.1 pytest-dependency 35
1.8.2 pytest-returnfailures 38
1.8.3 pytest-repeat 39
1.8.4 pytest-timeout 39
1.8.5 pytest-xdist 41
1.8.6 pytest-html 42
1.9 pytest配置 43
1.9.1 pytest.ini 43
1.9.2 tox.ini 44
1.10 Allure報告 47
1.10.1 搭建Allure環(huán)境 47
1.10.2 Allure測試報告實戰(zhàn) 47
1.10.3 Allure擴展 52
第2章 服務端測試開發(fā)實戰(zhàn) 54
2.1 服務端測試思想 54
2.2 HTTP協議 56
2.2.1 HTTP協議交互 56
2.2.2 通信模式 58
2.2.3 常用請求方法 59
2.2.4 常用狀態(tài)碼 60
2.2.5 SESSION詳解 60
2.2.6 TOKEN詳解 64
2.3 gRPC協議 65
2.3.1 gRPC調用流程 66
2.3.2 gRPC協議通信 67
2.3.3 gRPC協議實戰(zhàn) 71
2.4 Thrift 74
2.5 API測試維度 78
2.5.1 單個API測試 78
2.5.2 業(yè)務驅動服務測試 80
2.5.3 OpenAPI測試 82
2.5.4 API測試用例編寫規(guī)則 82
2.6 服務端業(yè)務關聯 83
2.6.1 PostMan解決思路 83
2.6.2 JMeter解決思路 85
2.6.3 代碼解決思路 87
2.7 MockServer 89
2.7.1 Moco實踐應用 90
2.7.2 Mock實踐應用 91
2.8 API測試的本質 93
第3章 API測試框架 94
3.1 測試框架概述 94
3.2 Tavern實戰(zhàn) 94
3.2.1 單一API測試 95
3.2.2 關聯API測試 98
3.3 模板化API測試框架設計 100
3.4 面向對象API測試框架設計 108
第4章 Docker實戰(zhàn) 118
4.1 Docker鏡像管理 118
4.2 Docker容器管理 124
4.3 Dockerfile命令和實戰(zhàn) 128
4.3.1 Dockerfile命令 128
4.3.2 Dockerfile實戰(zhàn) 130
第5章 持續(xù)交付 139
5.1 持續(xù)交付概述 139
5.2 GitLab持續(xù)交付 140
5.3 Jenkins整合GitLab 150
5.4 SonarQube實戰(zhàn) 158
5.4.1 搭建SonarQube 159
5.4.2 SonarScanner配置 161
5.4.3 Maven整合Sonar 161
5.4.4 Jenkins整合Sonar 163
5.5 打造企業(yè)級的CI/CD持續(xù)
交付 166
第6章 性能測試理論 169
6.1 軟件性能的概念 169
6.2 性能測試常用術語 170
6.3 性能測試理論 172
6.3.1 調度器 172
6.3.2 等待隊列 175
6.3.3 并行&并發(fā) 176
第7章 常用性能測試工具及實戰(zhàn) 178
7.1 常用性能測試工具概述 178
7.2 JMeter實戰(zhàn) 178
7.2.1 JMeter執(zhí)行原理 179
7.2.2 測試計劃 179
7.2.3 場景設置 179
7.2.4 JMeter監(jiān)聽器 181
7.2.5 JMeter配置元件 182
7.2.6 JMeter性能測試實戰(zhàn) 185
7.2.7 JMeter命令行執(zhí)行 185
7.2.8 JMeter整合Taurus 187
7.2.9 JMeter整合CI 190
7.2.10 JMeter分布式執(zhí)行 192
7.2.11 JMeter性能測試平臺 195
7.3 Gatling實戰(zhàn) 199
7.3.1 Gatling安裝配置 200
7.3.2 Gatling性能測試實戰(zhàn) 201
7.4 nGrinder實戰(zhàn) 207
7.4.1 nGrinder安裝配置 207
7.4.2 nGrinder性能測試實戰(zhàn) 209
7.5 Locust實戰(zhàn) 212
7.5.1 什么是協程 212
7.5.2 Locust測試實戰(zhàn) 213
7.6 自研性能測試工具實戰(zhàn) 218
第8章 性能測試監(jiān)控實戰(zhàn) 225
8.1 構建監(jiān)控基礎設施 225
8.1.1 Grafana 225
8.1.2 Prometheus 226
8.1.3 Prometheus整合Grafana 229
8.1.4 Linux資源監(jiān)控 230
8.1.5 MySQL資源監(jiān)控 231
8.2 全鏈路監(jiān)控 233
8.2.1 搭建Skywalking 234
8.2.2 Spring Boot整合Skywalking 238
8.3 分布式追蹤監(jiān)控 243
8.3.1 分布式追蹤系統(tǒng) 243
8.3.2 Jaeger實戰(zhàn) 244
第9章 JVM性能測試實戰(zhàn) 255
9.1 JVM概述 255
9.2 JVM資源監(jiān)控 256
9.2.1 內存溢出案例 256
9.2.2 XX參數 258
9.2.3 導出內存映像文件 259
9.2.4 MAT分析內存泄露 260
9.2.5 JVisualVM監(jiān)控 263
9.2.6 JConsole監(jiān)控 269
9.2.7 jstat監(jiān)控 271
9.2.8 GC日志 273
第10章 微服務質量體系保障 277
10.1 微服務架構的前世今生 277
10.2 微服務的注冊與發(fā)現機制 282
10.3 質量體系建設 288
10.3.1 質量管理挑戰(zhàn) 288
10.3.2 測試策略 288
10.3.3 構建質量體系 289
10.3.4 多集群保障 291
10.3.5 線上巡檢機制 294
10.3.6 穩(wěn)定性體系建設 297
第11章 混沌工程實戰(zhàn) 298
11.1 混沌工程的前世今生 298
11.2 混沌工程的原則 299
11.3 混沌工程實驗 300
11.4 混沌工程實踐 302
11.4.1 chaosblade環(huán)境搭建 302
11.4.2 系統(tǒng)資源負載實踐 303
11.4.3 磁盤寫滿實踐 304
11.4.4 數據庫調用延遲 305
11.4.5 網絡丟包實驗 307