Python服務(wù)端測(cè)試開(kāi)發(fā)實(shí)戰(zhàn)
定 價(jià):89.8 元
- 作者:無(wú)涯
- 出版時(shí)間:2024/3/1
- ISBN:9787302655473
- 出 版 社:清華大學(xué)出版社
- 中圖法分類(lèi):TP311.561
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書(shū)圍繞Python技術(shù)棧,講解測(cè)試開(kāi)發(fā)技術(shù)棧領(lǐng)域的各項(xiàng)核心技術(shù)要點(diǎn)。全書(shū)共11章,首先講解pytest單元測(cè)試框架在測(cè)試領(lǐng)域的技術(shù)棧要點(diǎn),包含pytest從最基本的應(yīng)用到高階應(yīng)用。接著講解服務(wù)端測(cè)試開(kāi)發(fā)領(lǐng)域主流的核心思想、主流測(cè)試開(kāi)發(fā)工具在解決服務(wù)端測(cè)試開(kāi)發(fā)中的技術(shù)難點(diǎn),以及服務(wù)端測(cè)試框架的設(shè)計(jì)和項(xiàng)目實(shí)戰(zhàn)案例。在框架的基礎(chǔ)上擴(kuò)展了服務(wù)端測(cè)試開(kāi)發(fā)領(lǐng)域的知識(shí)面,主要介紹Docker容器化技術(shù)、基于DevOps體系的CI/CD技術(shù)棧體系以及CI/CD的技術(shù)落地案例、服務(wù)端測(cè)試開(kāi)發(fā)領(lǐng)域的性能測(cè)試核心理論,方法論、流程化和主流性能測(cè)試在服務(wù)端的最佳實(shí)踐、性能測(cè)試過(guò)程中主流的監(jiān)控技術(shù)解決方案和JVM性能分析與實(shí)踐。同時(shí)在書(shū)中詳細(xì)講解了微服務(wù)架構(gòu)下質(zhì)量體系建設(shè)的方法論、可落地的思想和混沌工程針對(duì)底層高可用系統(tǒng)的保障技術(shù)。
本書(shū)適合不同業(yè)務(wù)領(lǐng)域的不同級(jí)別的測(cè)試工程師學(xué)習(xí),特別適合功能測(cè)試工程師、自動(dòng)化測(cè)試工程師和想要系統(tǒng)提升測(cè)試開(kāi)發(fā)能力的讀者學(xué)習(xí)。
大廠服務(wù)端測(cè)試技術(shù)專(zhuān)家10年實(shí)戰(zhàn)經(jīng)驗(yàn)總結(jié),手把手教您快速擺脫編程語(yǔ)言、框架、中間件及傳統(tǒng)編程思想束縛,全景式、體系化解讀服務(wù)端測(cè)試開(kāi)發(fā)的流程、技術(shù)棧和實(shí)用規(guī)范
創(chuàng)作背景
隨著微服務(wù)架構(gòu)技術(shù)和容器化技術(shù)在企業(yè)的全面落地,對(duì)構(gòu)建高可用以及可持續(xù)提供服務(wù)產(chǎn)品的能力要求越來(lái)越高,同時(shí)也對(duì)原有的質(zhì)量團(tuán)隊(duì)提出了更高的要求,特別是既不能局限于端到端的測(cè)試,也不能局限于功能性層面的測(cè)試,而是要在深入了解底層架構(gòu)設(shè)計(jì)以及程序內(nèi)在邏輯的基礎(chǔ)上,運(yùn)用測(cè)試工具或者編寫(xiě)代碼來(lái)測(cè)試底層服務(wù)的穩(wěn)定性,即在高并發(fā)的場(chǎng)景下可持續(xù)提供服務(wù)的能力。隨著敏捷開(kāi)發(fā)的持續(xù)推進(jìn),通過(guò)快速迭代和快速交付來(lái)應(yīng)對(duì)市場(chǎng)的變化和不確定性,對(duì)質(zhì)量團(tuán)隊(duì)而言,使用傳統(tǒng)模式已經(jīng)很難滿足這一特定需求,也很難應(yīng)對(duì)快速交付市場(chǎng)的訴求,因?yàn)檫@中間涉及產(chǎn)品質(zhì)量的把控。所以在這個(gè)過(guò)程中,市場(chǎng)需要QA(quality assurance,質(zhì)量保證)工程師不僅要進(jìn)行自動(dòng)化測(cè)試,而且能夠內(nèi)建質(zhì)量體系,在技術(shù)手段以及測(cè)試思維的基礎(chǔ)上打造可持續(xù)構(gòu)建使用的質(zhì)量體系,在產(chǎn)品發(fā)展的不同階段引入如混沌工程等技術(shù),以保障底層服務(wù)的穩(wěn)定性。
不管是企業(yè)的需要還是市場(chǎng)的訴求,都需要QA工程師具備服務(wù)端測(cè)試開(kāi)發(fā)技術(shù)棧的知識(shí)體系,包括對(duì)架構(gòu)、CI/CD、容器化技術(shù)、服務(wù)端性能測(cè)試領(lǐng)域、JVM、主流協(xié)議(HTTP&RPC)測(cè)試的支持,以及質(zhì)量體系的建設(shè)技術(shù)訴求和人員需要具備的技術(shù)棧能力模型。
本書(shū)以Python語(yǔ)言作為主線(不僅是Python)展開(kāi),從理論到實(shí)戰(zhàn),帶領(lǐng)讀者實(shí)現(xiàn)從功能測(cè)試工程師到自動(dòng)化測(cè)試工程師以及測(cè)試管理者的進(jìn)階,從零開(kāi)始構(gòu)建服務(wù)端測(cè)試開(kāi)發(fā)的知識(shí)體系和領(lǐng)域內(nèi)的知識(shí)對(duì)質(zhì)量體系的保障和落地。本書(shū)的核心內(nèi)容來(lái)自筆者在網(wǎng)易云課堂的Python服務(wù)端測(cè)試開(kāi)發(fā)實(shí)戰(zhàn)視頻課程,課程中融入了大量的實(shí)踐思考以及可在企業(yè)落地的技術(shù),對(duì)QA工程師將有很大的借鑒意義。
目標(biāo)讀者
功能測(cè)試工程師。
自動(dòng)化測(cè)試工程師。
測(cè)試開(kāi)發(fā)工程師。
測(cè)試管理者。
讀者服務(wù)
實(shí)戰(zhàn)源碼。
學(xué)習(xí)視頻。
讀者可以通過(guò)掃碼訪問(wèn)本書(shū)專(zhuān)享資源官網(wǎng),獲取項(xiàng)目實(shí)戰(zhàn)源碼、學(xué)習(xí)視頻,加入讀者群,下載最新學(xué)習(xí)資源或反饋書(shū)中的問(wèn)題。
勘誤和支持
本書(shū)在編寫(xiě)過(guò)程中歷經(jīng)多次勘校、查證,力求能減少差錯(cuò),做到盡善盡美,但由于筆者水平有限,書(shū)中難免存在疏漏之處,懇請(qǐng)廣大讀者批評(píng)指正,也歡迎讀者來(lái)信一起探討。
無(wú) 涯
資深測(cè)試工程師,Python自動(dòng)化測(cè)試博主,擁有多年工作經(jīng)驗(yàn)。在自動(dòng)化測(cè)試、服務(wù)端測(cè)試、性能測(cè)試、質(zhì)量管理等方向具備豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。
第1章 pytest測(cè)試實(shí)戰(zhàn) 1
1.1 編寫(xiě)自動(dòng)化測(cè)試 1
1.2 初識(shí)pytest 2
1.2.1 函數(shù)方式編寫(xiě)測(cè)試用例 3
1.2.2 面向?qū)ο蠓绞骄帉?xiě)測(cè)試用例 3
1.2.3 pytest執(zhí)行結(jié)果信息 5
1.3 pytest執(zhí)行規(guī)則 6
1.4 pytest常用命令 9
1.5 pytest參數(shù)化驅(qū)動(dòng)實(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測(cè)試報(bào)告實(shí)戰(zhàn) 47
1.10.3 Allure擴(kuò)展 52
第2章 服務(wù)端測(cè)試開(kāi)發(fā)實(shí)戰(zhàn) 54
2.1 服務(wù)端測(cè)試思想 54
2.2 HTTP協(xié)議 56
2.2.1 HTTP協(xié)議交互 56
2.2.2 通信模式 58
2.2.3 常用請(qǐng)求方法 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測(cè)試維度 78
2.5.1 單個(gè)API測(cè)試 78
2.5.2 業(yè)務(wù)驅(qū)動(dòng)服務(wù)測(cè)試 80
2.5.3 OpenAPI測(cè)試 82
2.5.4 API測(cè)試用例編寫(xiě)規(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測(cè)試的本質(zhì) 93
第3章 API測(cè)試框架 94
3.1 測(cè)試框架概述 94
3.2 Tavern實(shí)戰(zhàn) 94
3.2.1 單一API測(cè)試 95
3.2.2 關(guān)聯(lián)API測(cè)試 98
3.3 模板化API測(cè)試框架設(shè)計(jì) 100
3.4 面向?qū)ο驛PI測(cè)試框架設(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è)級(jí)的CI/CD持續(xù)
交付 166
第6章 性能測(cè)試?yán)碚?169
6.1 軟件性能的概念 169
6.2 性能測(cè)試常用術(shù)語(yǔ) 170
6.3 性能測(cè)試?yán)碚?172
6.3.1 調(diào)度器 172
6.3.2 等待隊(duì)列 175
6.3.3 并行&并發(fā) 176
第7章 常用性能測(cè)試工具及實(shí)戰(zhàn) 178
7.1 常用性能測(cè)試工具概述 178
7.2 JMeter實(shí)戰(zhàn) 178
7.2.1 JMeter執(zhí)行原理 179
7.2.2 測(cè)試計(jì)劃 179
7.2.3 場(chǎng)景設(shè)置 179
7.2.4 JMeter監(jiān)聽(tīng)器 181
7.2.5 JMeter配置元件 182
7.2.6 JMeter性能測(cè)試實(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性能測(cè)試平臺(tái) 195
7.3 Gatling實(shí)戰(zhàn) 199
7.3.1 Gatling安裝配置 200
7.3.2 Gatling性能測(cè)試實(shí)戰(zhàn) 201
7.4 nGrinder實(shí)戰(zhàn) 207
7.4.1 nGrinder安裝配置 207
7.4.2 nGrinder性能測(cè)試實(shí)戰(zhàn) 209
7.5 Locust實(shí)戰(zhàn) 212
7.5.1 什么是協(xié)程 212
7.5.2 Locust測(cè)試實(shí)戰(zhàn) 213
7.6 自研性能測(cè)試工具實(shí)戰(zhàn) 218
第8章 性能測(cè)試監(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性能測(cè)試實(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ù)的注冊(cè)與發(fā)現(xiàn)機(jī)制 282
10.3 質(zhì)量體系建設(shè) 288
10.3.1 質(zhì)量管理挑戰(zhàn) 288
10.3.2 測(cè)試策略 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 磁盤(pán)寫(xiě)滿實(shí)踐 304
11.4.4 數(shù)據(jù)庫(kù)調(diào)用延遲 305
11.4.5 網(wǎng)絡(luò)丟包實(shí)驗(yàn) 307