深度實(shí)踐微服務(wù)測試:構(gòu)建高質(zhì)量、高可用分布式服務(wù)
定 價(jià):99 元
- 作者:付彪 秦五一 齊磊 雷輝 著
- 出版時(shí)間:2022/7/1
- ISBN:9787111708216
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP393.4
- 頁碼:334
- 紙張:
- 版次:
- 開本:16
內(nèi)容簡介:
本書是4位作者服務(wù)多個(gè)大中型知名企業(yè)后總結(jié)的微服務(wù)測試方法論與實(shí)戰(zhàn)經(jīng)驗(yàn),內(nèi)容翔實(shí)、鮮見。全書內(nèi)容分9章,涵蓋測試策略、接口與界面自動(dòng)化測試、契約測試、性能測試、微服務(wù)監(jiān)控、服務(wù)虛擬化、混沌工程、安全測試。一本書破解當(dāng)下測試工作的眾多難題,可為微服務(wù)和分布式系統(tǒng)的質(zhì)量保障提供一站式解決方案。
本書內(nèi)容具體如下。
第1章梳理各種微服務(wù)測試工作的價(jià)值與要點(diǎn),幫助讀者快速建立測試工作全局視角。
第2章剖析微服務(wù)環(huán)境下制定測試策略的要點(diǎn)、影響因素與實(shí)戰(zhàn)技巧。
第3章介紹接口測試與頁面自動(dòng)化測試的主要思路與常見問題。
第4章重點(diǎn)講解如何基于Pact與Spring Cloud Contract進(jìn)行契約測試實(shí)踐。
第5章分析性能測試在微服務(wù)和傳統(tǒng)軟件環(huán)境下的區(qū)別,并介紹全鏈路壓測的實(shí)施思路要點(diǎn)。
第6章介紹微服務(wù)監(jiān)控的概念、模式分類,以及監(jiān)控實(shí)踐、系統(tǒng)搭建與容器化部署。
第7章重點(diǎn)介紹如何在微服務(wù)環(huán)境下運(yùn)用服務(wù)虛擬化技術(shù)來解決各種服務(wù)依賴問題。
第8章介紹混沌工程的價(jià)值、實(shí)施先決條件、原則與實(shí)施方法。
第9章包括安全測試的需求分析、測試人員角色定位以及多種測試工具實(shí)戰(zhàn)。
序
前言
第1章 微服務(wù)測試概述1
1.1 微服務(wù)測試的要點(diǎn)1
1.1.1 一份有效的測試策略1
1.1.2 一個(gè)構(gòu)建接口層數(shù)據(jù)的好辦法2
1.1.3 端到端測試,減少耗時(shí)2
1.1.4 把握微服務(wù)系統(tǒng)整體質(zhì)量3
1.1.5 隔離依賴,實(shí)現(xiàn)獨(dú)立測試4
1.1.6 守住第一道安全防護(hù)層4
1.2 微服務(wù)中的自動(dòng)化測試5
1.3 本章小結(jié)6
第2章 微服務(wù)測試策略7
2.1 傳統(tǒng)測試策略與敏捷測試策略7
2.1.1 傳統(tǒng)測試策略7
2.1.2 敏捷測試策略9
2.2 微服務(wù)中的測試策略14
2.2.1 測試象限14
2.2.2 測試金字塔16
2.2.3 環(huán)境管理策略19
2.2.4 流水線策略22
2.3 影響微服務(wù)測試策略制定的因素23
2.3.1 質(zhì)量目標(biāo)24
2.3.2 被測系統(tǒng)的具體實(shí)現(xiàn)與可測試性24
2.3.3 人員能力25
2.3.4 開發(fā)與測試的協(xié)作模式25
2.3.5 產(chǎn)品演進(jìn)的不同階段26
2.4 微服務(wù)的測試策略實(shí)戰(zhàn)27
2.4.1 迭代027
2.4.2 迭代N35
2.4.3 重構(gòu)37
2.5 本章小結(jié)38
第3章 接口測試及界面自動(dòng)化測試39
3.1 接口測試簡介39
3.1.1 接口說明文檔與測試用例類型40
3.1.2 接口測試重點(diǎn)42
3.2 接口自動(dòng)化測試實(shí)戰(zhàn)46
3.3 接口測試的常見問題56
3.4 前端界面測試思路57
3.5 前端界面自動(dòng)化測試59
3.6 本章小結(jié)64
第4章 契約測試65
4.1 初識契約測試65
4.2 基于Pact的契約測試實(shí)戰(zhàn)67
4.2.1 Pact的測試?yán)砟?7
4.2.2 被測應(yīng)用69
4.2.3 消費(fèi)者M(jìn)iku服務(wù)與生產(chǎn)者服務(wù)間的契約測試73
4.2.4 Gradle的相關(guān)配置88
4.2.5 消費(fèi)者Nanoha服務(wù)與生產(chǎn)者服務(wù)間的契約測試90
4.2.6 驗(yàn)證我們的測試98
4.3 基于Spring Cloud Contract的契約測試實(shí)踐99
4.3.1 認(rèn)識Spring Cloud Contract99
4.3.2 驗(yàn)證被測微服務(wù)系統(tǒng)102
4.3.3 在生產(chǎn)者服務(wù)端的測試102
4.3.4 在消費(fèi)者服務(wù)端的測試110
4.4 契約測試高階解惑112
4.4.1 關(guān)于測試的表述113
4.4.2 為什么要做契約測試114
4.4.3 契約測試和接口測試、集成測試的區(qū)別118
4.4.4 契約測試可以替代集成測試嗎120
4.4.5 關(guān)于Pact和Spring Cloud Contract的博弈121
4.4.6 消費(fèi)者服務(wù)端的集成測試需要做到什么程度122
4.4.7 關(guān)于“生產(chǎn)者驅(qū)動(dòng)的契約測試”123
4.5 本章小結(jié)124
第5章 性能測試125
5.1 接口的性能測試125
5.1.1 性能測試難在哪里125
5.1.2 基本概念126
5.1.3 測試方式分類127
5.1.4 測試工具128
5.1.5 性能測試場景129
5.1.6 測試過程131
5.1.7 性能瓶頸分析132
5.2 全鏈路壓測135
5.2.1 實(shí)施思路136
5.2.2 實(shí)施過程137
5.3 做好性能測試能否成為資深測試專家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)控模式的分類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à)值與簡單示例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的輕量級服務(wù)虛擬化方案253
7.4.1 最簡單的交互式服務(wù)虛擬化工具:Mockit253
7.4.2 支持團(tuán)隊(duì)協(xié)作的服務(wù)虛擬化工具:YApi256
7.5 服務(wù)虛擬化技術(shù)的靈活運(yùn)用264
7.5.1 在集成測試中的運(yùn)用264
7.5.2 在性能測試中的運(yùn)用265
7.5.3 在視覺測試中的運(yùn)用265
7.5.4 在契約測試中的運(yùn)用266
7.5.5 在UI自動(dòng)化測試中的運(yùn)用266
7.5.6 不要濫用服務(wù)虛擬化267
7.6 本章小結(jié)268
第8章 混沌工程269
8.1 初識混沌工程269
8.1.1 混沌工程的起源269
8.1.2 微服務(wù)為什么需要混沌工程270
8.1.3 混沌工程的兩類場景270
8.2 混沌工程實(shí)驗(yàn)與測試273
8.2.1 混沌工程實(shí)驗(yàn)和傳統(tǒng)測試的區(qū)別與聯(lián)系273
8.2.2 混沌工程與故障注入測試的區(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)可行性評估285
8.5.2 觀測指標(biāo)設(shè)計(jì)與對照287
8.5.3 實(shí)驗(yàn)場景設(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章 安全測試304
9.1 安全測試需求304
9.1.1 基于功能的安全測試需求306
9.1.2 基于風(fēng)險(xiǎn)的安全測試需求307
9.2 測試人員的定位308
9.2.1 測試人員的職責(zé)308
9.2.2 測試人員的角色309
9.2.3 安全內(nèi)建310
9.3 測試工具與實(shí)戰(zhàn)312
9.3.1 被測微服務(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 滲透測試工具簡介332
9.4 本章小結(jié)334
后記335