深度實(shí)踐微服務(wù)測(cè)試:構(gòu)建高質(zhì)量、高可用分布式服務(wù)
定 價(jià):99 元
- 作者:付彪 秦五一 齊磊 雷輝 著
- 出版時(shí)間:2022/7/1
- ISBN:9787111708216
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP393.4
- 頁(yè)碼:334
- 紙張:
- 版次:
- 開(kāi)本:16
內(nèi)容簡(jiǎn)介:
本書(shū)是4位作者服務(wù)多個(gè)大中型知名企業(yè)后總結(jié)的微服務(wù)測(cè)試方法論與實(shí)戰(zhàn)經(jīng)驗(yàn),內(nèi)容翔實(shí)、鮮見(jiàn)。全書(shū)內(nèi)容分9章,涵蓋測(cè)試策略、接口與界面自動(dòng)化測(cè)試、契約測(cè)試、性能測(cè)試、微服務(wù)監(jiān)控、服務(wù)虛擬化、混沌工程、安全測(cè)試。一本書(shū)破解當(dāng)下測(cè)試工作的眾多難題,可為微服務(wù)和分布式系統(tǒng)的質(zhì)量保障提供一站式解決方案。
本書(shū)內(nèi)容具體如下。
第1章梳理各種微服務(wù)測(cè)試工作的價(jià)值與要點(diǎn),幫助讀者快速建立測(cè)試工作全局視角。
第2章剖析微服務(wù)環(huán)境下制定測(cè)試策略的要點(diǎn)、影響因素與實(shí)戰(zhàn)技巧。
第3章介紹接口測(cè)試與頁(yè)面自動(dòng)化測(cè)試的主要思路與常見(jiàn)問(wèn)題。
第4章重點(diǎn)講解如何基于Pact與Spring Cloud Contract進(jìn)行契約測(cè)試實(shí)踐。
第5章分析性能測(cè)試在微服務(wù)和傳統(tǒng)軟件環(huán)境下的區(qū)別,并介紹全鏈路壓測(cè)的實(shí)施思路要點(diǎn)。
第6章介紹微服務(wù)監(jiān)控的概念、模式分類(lèi),以及監(jiān)控實(shí)踐、系統(tǒng)搭建與容器化部署。
第7章重點(diǎn)介紹如何在微服務(wù)環(huán)境下運(yùn)用服務(wù)虛擬化技術(shù)來(lái)解決各種服務(wù)依賴(lài)問(wèn)題。
第8章介紹混沌工程的價(jià)值、實(shí)施先決條件、原則與實(shí)施方法。
第9章包括安全測(cè)試的需求分析、測(cè)試人員角色定位以及多種測(cè)試工具實(shí)戰(zhàn)。
序
前言
第1章 微服務(wù)測(cè)試概述1
1.1 微服務(wù)測(cè)試的要點(diǎn)1
1.1.1 一份有效的測(cè)試策略1
1.1.2 一個(gè)構(gòu)建接口層數(shù)據(jù)的好辦法2
1.1.3 端到端測(cè)試,減少耗時(shí)2
1.1.4 把握微服務(wù)系統(tǒng)整體質(zhì)量3
1.1.5 隔離依賴(lài),實(shí)現(xiàn)獨(dú)立測(cè)試4
1.1.6 守住第一道安全防護(hù)層4
1.2 微服務(wù)中的自動(dòng)化測(cè)試5
1.3 本章小結(jié)6
第2章 微服務(wù)測(cè)試策略7
2.1 傳統(tǒng)測(cè)試策略與敏捷測(cè)試策略7
2.1.1 傳統(tǒng)測(cè)試策略7
2.1.2 敏捷測(cè)試策略9
2.2 微服務(wù)中的測(cè)試策略14
2.2.1 測(cè)試象限14
2.2.2 測(cè)試金字塔16
2.2.3 環(huán)境管理策略19
2.2.4 流水線(xiàn)策略22
2.3 影響微服務(wù)測(cè)試策略制定的因素23
2.3.1 質(zhì)量目標(biāo)24
2.3.2 被測(cè)系統(tǒng)的具體實(shí)現(xiàn)與可測(cè)試性24
2.3.3 人員能力25
2.3.4 開(kāi)發(fā)與測(cè)試的協(xié)作模式25
2.3.5 產(chǎn)品演進(jìn)的不同階段26
2.4 微服務(wù)的測(cè)試策略實(shí)戰(zhàn)27
2.4.1 迭代027
2.4.2 迭代N35
2.4.3 重構(gòu)37
2.5 本章小結(jié)38
第3章 接口測(cè)試及界面自動(dòng)化測(cè)試39
3.1 接口測(cè)試簡(jiǎn)介39
3.1.1 接口說(shuō)明文檔與測(cè)試用例類(lèi)型40
3.1.2 接口測(cè)試重點(diǎn)42
3.2 接口自動(dòng)化測(cè)試實(shí)戰(zhàn)46
3.3 接口測(cè)試的常見(jiàn)問(wèn)題56
3.4 前端界面測(cè)試思路57
3.5 前端界面自動(dòng)化測(cè)試59
3.6 本章小結(jié)64
第4章 契約測(cè)試65
4.1 初識(shí)契約測(cè)試65
4.2 基于Pact的契約測(cè)試實(shí)戰(zhàn)67
4.2.1 Pact的測(cè)試?yán)砟?7
4.2.2 被測(cè)應(yīng)用69
4.2.3 消費(fèi)者M(jìn)iku服務(wù)與生產(chǎn)者服務(wù)間的契約測(cè)試73
4.2.4 Gradle的相關(guān)配置88
4.2.5 消費(fèi)者Nanoha服務(wù)與生產(chǎn)者服務(wù)間的契約測(cè)試90
4.2.6 驗(yàn)證我們的測(cè)試98
4.3 基于Spring Cloud Contract的契約測(cè)試實(shí)踐99
4.3.1 認(rèn)識(shí)Spring Cloud Contract99
4.3.2 驗(yàn)證被測(cè)微服務(wù)系統(tǒng)102
4.3.3 在生產(chǎn)者服務(wù)端的測(cè)試102
4.3.4 在消費(fèi)者服務(wù)端的測(cè)試110
4.4 契約測(cè)試高階解惑112
4.4.1 關(guān)于測(cè)試的表述113
4.4.2 為什么要做契約測(cè)試114
4.4.3 契約測(cè)試和接口測(cè)試、集成測(cè)試的區(qū)別118
4.4.4 契約測(cè)試可以替代集成測(cè)試嗎120
4.4.5 關(guān)于Pact和Spring Cloud Contract的博弈121
4.4.6 消費(fèi)者服務(wù)端的集成測(cè)試需要做到什么程度122
4.4.7 關(guān)于“生產(chǎn)者驅(qū)動(dòng)的契約測(cè)試”123
4.5 本章小結(jié)124
第5章 性能測(cè)試125
5.1 接口的性能測(cè)試125
5.1.1 性能測(cè)試難在哪里125
5.1.2 基本概念126
5.1.3 測(cè)試方式分類(lèi)127
5.1.4 測(cè)試工具128
5.1.5 性能測(cè)試場(chǎng)景129
5.1.6 測(cè)試過(guò)程131
5.1.7 性能瓶頸分析132
5.2 全鏈路壓測(cè)135
5.2.1 實(shí)施思路136
5.2.2 實(shí)施過(guò)程137
5.3 做好性能測(cè)試能否成為資深測(cè)試專(zhuān)家141
5.4 本章小結(jié)142
第6章 微服務(wù)監(jiān)控143
6.1 了解微服務(wù)監(jiān)控143
6.1.1 為什么要監(jiān)控你的微服務(wù)144
6.1.2 微服務(wù)監(jiān)控與傳統(tǒng)監(jiān)控的區(qū)別145
6.2 微服務(wù)監(jiān)控模式的分類(lèi)146
6.2.1 健康檢查146
6.2.2 服務(wù)日志監(jiān)控149
6.2.3 鏈路追蹤151
6.2.4 監(jiān)控指標(biāo)156
6.3 微服務(wù)監(jiān)控實(shí)踐162
6.3.1 利用Spring Boot Actuator進(jìn)行服務(wù)監(jiān)控162
6.3.2 Spring Boot Actuator結(jié)合
Prometheus和Grafana進(jìn)行可視化監(jiān)控168
6.3.3 利用docker-compose快速搭建監(jiān)控系統(tǒng)169
6.3.4 Kubernetes環(huán)境下SkyWalking容器化部署175
6.4 本章小結(jié)180
第7章 服務(wù)虛擬化181
7.1 服務(wù)虛擬化價(jià)值與簡(jiǎn)單示例181
7.2 基于WireMock的服務(wù)虛擬化184
7.2.1 模擬系統(tǒng)184
7.2.2 基于Java的基本使用189
7.2.3 基于獨(dú)立執(zhí)行文件的基本使用194
7.2.4 錄制與回放197
7.2.5 異常模擬204
7.2.6 狀態(tài)行為208
7.3 基于Hoverfly的服務(wù)虛擬化213
7.3.1 理解Hoverfly的服務(wù)方式214
7.3.2 選擇合適的工作模式216
7.3.3 深入simulation的細(xì)節(jié)225
7.3.4 使用模板實(shí)現(xiàn)動(dòng)態(tài)響應(yīng)228
7.3.5 Hoverfly的狀態(tài)行為233
7.3.6 使用中間件244
7.4 提供Web UI的輕量級(jí)服務(wù)虛擬化方案253
7.4.1 最簡(jiǎn)單的交互式服務(wù)虛擬化工具:Mockit253
7.4.2 支持團(tuán)隊(duì)協(xié)作的服務(wù)虛擬化工具:YApi256
7.5 服務(wù)虛擬化技術(shù)的靈活運(yùn)用264
7.5.1 在集成測(cè)試中的運(yùn)用264
7.5.2 在性能測(cè)試中的運(yùn)用265
7.5.3 在視覺(jué)測(cè)試中的運(yùn)用265
7.5.4 在契約測(cè)試中的運(yùn)用266
7.5.5 在UI自動(dòng)化測(cè)試中的運(yùn)用266
7.5.6 不要濫用服務(wù)虛擬化267
7.6 本章小結(jié)268
第8章 混沌工程269
8.1 初識(shí)混沌工程269
8.1.1 混沌工程的起源269
8.1.2 微服務(wù)為什么需要混沌工程270
8.1.3 混沌工程的兩類(lèi)場(chǎng)景270
8.2 混沌工程實(shí)驗(yàn)與測(cè)試273
8.2.1 混沌工程實(shí)驗(yàn)和傳統(tǒng)測(cè)試的區(qū)別與聯(lián)系273
8.2.2 混沌工程與故障注入測(cè)試的區(qū)別274
8.2.3 QA In Production與混沌工程274
8.3 實(shí)施混沌工程的先決條件275
8.3.1 我的項(xiàng)目需要實(shí)施混沌工程嗎275
8.3.2 實(shí)施混沌工程的先決條件275
8.4 混沌工程原則277
8.4.1 建立系統(tǒng)穩(wěn)定狀態(tài)的假設(shè)278
8.4.2 用多樣的現(xiàn)實(shí)世界事件做驗(yàn)證278
8.4.3 在生產(chǎn)環(huán)境運(yùn)行實(shí)驗(yàn)280
8.4.4 利用CI/CD進(jìn)行混沌工程實(shí)驗(yàn)281
8.4.5 最小化爆炸半徑283
8.5 設(shè)計(jì)混沌工程實(shí)驗(yàn)284
8.5.1 實(shí)驗(yàn)可行性評(píng)估285
8.5.2 觀(guān)測(cè)指標(biāo)設(shè)計(jì)與對(duì)照287
8.5.3 實(shí)驗(yàn)場(chǎng)景設(shè)計(jì)287
8.6 混沌工程實(shí)踐288
8.6.1 Chaos Monkey實(shí)踐288
8.6.2 Chaos Blade實(shí)踐294
8.6.3 Chaos Mesh實(shí)踐297
8.7 本章小結(jié)303
第9章 安全測(cè)試304
9.1 安全測(cè)試需求304
9.1.1 基于功能的安全測(cè)試需求306
9.1.2 基于風(fēng)險(xiǎn)的安全測(cè)試需求307
9.2 測(cè)試人員的定位308
9.2.1 測(cè)試人員的職責(zé)308
9.2.2 測(cè)試人員的角色309
9.2.3 安全內(nèi)建310
9.3 測(cè)試工具與實(shí)戰(zhàn)312
9.3.1 被測(cè)微服務(wù)系統(tǒng)示例312
9.3.2 SAST工具之SonarQube實(shí)戰(zhàn)312
9.3.3 DAST工具之OWASP ZAP實(shí)戰(zhàn)323
9.3.4 SCA工具之Dependency Check實(shí)戰(zhàn)329
9.3.5 滲透測(cè)試工具簡(jiǎn)介332
9.4 本章小結(jié)334
后記335