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