Java微服务测试 基于Arquillian、Hoverfly、AssertJ、JUnit、Selenium与MockitoPDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:刘梦馨译;(美国)亚历克斯·索托·布埃诺,安迪·巩布莱希,詹森·波特
- 出 版 社:北京:电子工业出版社
- 出版年份:2019
- ISBN:9787121367106
- 页数:282 页
第1章 微服务概述 1
1.1 什么是微服务,为什么要使用微服务 2
1.1.1 为什么要使用微服务 3
1.1.2 什么是微服务 5
1.1.3 持续集成、持续部署和Docker 6
1.2 微服务网络及其功能 7
1.2.1 微服务网络 7
1.2.2 微服务特性 8
1.3 微服务架构 9
1.3.1 资源组件 10
1.3.2 业务领域组件 10
1.3.3 远程资源组件 11
1.3.4 持久化组件 11
1.4 微服务单元测试 12
1.4.1 孤立型单元测试 12
1.4.2 联合型单元测试 12
总结 13
第2章 测试下的应用 14
2.1 准备开始 15
2.2 准备工作 16
2.2.1 Java Development Kit 16
2.2.2 构建工具 17
2.2.3 环境变量 17
2.2.4 集成开发环境(IDE) 18
2.3 架构 18
2.3.1 游戏服务 19
2.3.2 评论服务 22
2.3.3 视频服务 24
2.3.4 聚合服务 26
2.3.5 整体架构 27
2.4 应用设计模式 28
2.4.1 解构 28
2.4.2 ECB模式 38
2.4.3 其他模式 40
2.5 设计决策 42
总结 42
第3章 微服务单元测试 44
3.1 单元测试技术 44
3.1.1 联合型单元测试 45
3.1.2 测试替身 46
3.1.3 孤立型单元测试 48
3.1.4 微服务的单元测试 49
3.2 工具 51
3.2.1 JUnit 51
3.2.2 AssertJ 52
3.2.3 Mockito 53
3.2.4 构建脚本的修改 54
3.3 编写Gamer应用的单元测试 55
3.3.1 YouTubeVideoLinkCreator测试 55
3.3.2 YouTubeLink测试 56
3.3.3 Games测试 58
3.3.4 GamesService测试 60
3.3.5 GamesResource测试 63
练习 68
总结 68
第4章 微服务组件测试 69
4.1 Arquillian测试框架 70
4.2 @RunWith(Arquillian.class)注解 72
4.3 ShrinkWrap工具类 75
4.3.1 利用ShrinkWrap构建归档文件 76
4.3.2 给ShrinkWrap归档文件增加内容 77
4.3.3 添加资源 79
4.3.4 增加库和依赖 80
4.3.5 利用Maven解析器增加复杂依赖 80
4.3.6 增加服务实现 82
4.4 写一次代码,然后复用 83
4.5 构建脚本的修改 84
4.5.1 定义Maven依赖 85
4.5.2 定义Gradle依赖 86
4.6 覆盖Arquillian的默认配置 87
4.6.1 容器定义 89
4.6.2 指定容器属性 89
4.7 使用Arquillian REST扩展 90
4.7.1 Arquillian REST客户端扩展 90
4.7.2 Warp REST扩展 91
4.8 使用Arquillian测试Spring应用 93
4.8.1 Arquillian Spring框架扩展 94
4.8.2 测试Spring Boot应用 96
4.9 更复杂的Arquillian测试 98
4.9.1 测试远程组件 98
4.9.2 测试资源组件 101
4.9.3 测试领域组件 103
4.9.4 测试持久化组件 103
练习 106
总结 106
第5章 微服务集成测试 108
5.1 微服务架构下的集成测试 109
5.1.1 网关组件层 110
5.1.2 数据映射器和仓库 111
5.2 使用Arquillian持久化扩展进行持久化测试 111
5.2.1 描述式方法 114
5.2.2 过程式方法 116
5.2.3 使用NoSQLUnit进行持久化测试 121
5.2.4 使用Arquillian多部署的持久化测试 125
5.2.5 使用Arquillian序列的持久化测试 126
5.2.6 构建脚本的修改 127
5.3 Gamer应用的集成测试 128
5.3.1 测试Comments类 128
5.3.2 测试CommentsGateway类 131
练习 137
总结 137
第6章 契约测试 138
6.1 理解契约 138
6.1.1 契约和单体应用 139
6.1.2 契约和微服务应用 140
6.1.3 使用集成测试进行验证 145
6.1.4 什么是契约测试 146
6.1.5 谁负责契约 146
6.2 工具 149
6.2.1 Pact 150
6.2.2 JVM语言中的Pact 152
6.2.3 利用Algeron将Pact JVM与Arquillian生态系统集成 161
6.3 构建脚本的修改 168
6.3.1 使用Pact JVM进行契约测试 168
6.3.2 使用Arquillian Algeron进行契约测试 168
6.4 为Gamer应用编写消费者驱动的契约测试 170
6.4.1 评论服务的消费者端 170
6.4.2 评论服务的生产者端 173
6.5 契约类型总结 175
练习 176
总结 176
第7章 端到端测试 177
7.1 端到端测试在整个测试体系中的位置 178
7.2 端到端测试技术 178
7.2.1 垂直测试 179
7.2.2 水平测试 179
7.3 端到端测试工具介绍 180
7.3.1 Arquillian Cube 180
7.3.2 Arquillian Drone 180
7.3.3 Arquillian Graphene 2 181
7.3.4 JMeter 181
7.3.5 Cukes in Space 181
7.4 端到端测试样例 181
7.4.1 构建微服务 182
7.4.2 增加构建依赖和配置 182
7.4.3 给测试增加@Deployment注解和@TargetsContainer注解 189
7.4.4 跨域资源共享 191
7.4.5 使用@ClassRule处理混合环境 192
7.4.6 使用@OperateOnDeployment注解操作部署 197
7.4.7 引入@Drone、页面对象、@Location和WebDriver 198
7.4.8 在测试中操作页面对象 200
7.4.9 运行测试 202
练习 203
总结 203
第8章 Docker和测试 204
8.1 Docker生态系统下的工具 205
8.1.1 Docker 205
8.1.2 Docker Machine 207
8.1.3 Docker Compose 208
8.2 Arquillian Cube 210
8.2.1 设置Arquillian Cube 211
8.2.2 编写容器测试 214
8.2.3 编写集成测试 217
8.2.4 编写端到端测试 221
8.3 REST API 224
8.4 Arquillian Drone和Graphene 225
8.4.1 Arquillian Cube和Arquillian Drone的集成 225
8.4.2 Arquillian Cube和Arquillian Graphene的集成 228
8.5 并行测试 230
8.6 Arquillian Cube和Algeron 231
8.7 使用容器对象模式 233
8.8 部署测试和Kubernetes 240
8.9 构建脚本的修改 245
8.9.1 Arquillian Cube Docker 245
8.9.2 Arquillian Cube Docker JUnit规则 246
8.9.3 Arquillian Cube Kubernetes 246
8.9.4 Arquillian Cube OpenShift 247
8.10 测试视频服务的Dockerfile 247
练习 249
总结 249
第9章 服务虚拟化 250
9.1 什么是服务虚拟化 250
9.1.1 为什么要使用服务虚拟化 251
9.1.2 什么时候使用服务虚拟化 252
9.2 使用Hoverfly模拟服务响应 253
9.2.1 Hoverfly模式 253
9.2.2 JUnit Hoverfly 255
9.2.3 配置Hoverfly 257
9.3 构建脚本的修改 258
9.4 对Gamer应用使用服务虚拟化 258
总结 260
第10章 微服务下的持续交付 262
10.1 什么是持续交付 263
10.2 微服务架构和持续交付 264
10.3 持续交付的编排 266
10.3.1 使用Jenkins 267
10.3.2 Jenkins流水线 267
10.3.3 确定性部署 271
10.4 Jenkins 272
10.4.1 定义一个流水线 276
10.4.2 Jenkins流水线示例 278
总结 280
附录A 使用Arquillian Chameleon屏蔽不同类型的容器 281
- 《情报学 服务国家安全与发展的现代情报理论》赵冰峰著 2018
- 《中央财政支持提升专业服务产业发展能力项目水利工程专业课程建设成果 设施农业工程技术》赵英编 2018
- 《体育公共服务改革 理想之美与现实之殇》齐超 2019
- 《会议服务》黄程主编 2015
- 《创新的脚步 全国社区治理和服务创新实验区成果集萃》民政部编写组编著 2018
- 《土壤环境监测前沿分析测试方法研究》中国环境监测总站编著 2018
- 《大数据环境下的信息管理方法技术与服务创新丛书 俄罗斯档案事业改革与发展研究》徐胡乡责编;肖秋会 2019
- 《服务英语》姜宇彤 2018
- 《计算机自适应英语语用能力测试系统设计与效度验证 以TEM4词汇与语法题为例》张一鑫著 2019
- 《无机及分析测试技术》李巍巍 2018
- 《反常识》张娟责任编辑;(美国)邓肯·J.瓦茨 2019
- 《奶制品化学及生物化学》(爱尔兰)福克斯(FoxP.F.)等 2019
- 《手工咖啡 咖啡爱好者的完美冲煮指南》(美国)杰茜卡·伊斯托,安德烈亚斯·威尔霍夫 2019
- 《大历史 虚无与万物之间 全彩插图版》(美)大卫·克里斯蒂安,辛西娅·斯托克斯·布朗,克雷格·本杰明著;刘耀辉译 2017
- 《思维的囚徒 活出生命的意义7原则》赵晓瑞译;(美)亚历克斯·佩塔克斯 2019
- 《评弹与江南社会研究丛书 梅与竹 中国传统苏州评弹》李东鹏译;(美国)马克·本德尔 2019
- 《标准急救护理速查手册 普及版》美国骨科医师协会 (AAOS) ,美国急诊医师学会 (ACEP) 主编 2018
- 《搏击俱乐部》千之贺译;(美国)查克·帕拉尼克,卡梅隆·斯图尔特 2019
- 《林中的陌生人 最后一位隐士》何家炜责任编辑;(美国)迈克·芬克尔 2019
- 《解决数学问题》美国迪斯尼公司著 2012
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017