本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
9787000022442
9787121367106 9787121328404
Java微服务测试:基于Arquillian、Hoverfly、AssertJ、JUnit、Selenium与Mockito
内容简介
本书从实战出发,介绍微服务架构所带来的测试方面的挑战,以及如何利用新的技术来应对这些挑战。通过本书,读者可以学会如何编写微服务架构下的单元测试、组件测试、集成测试以及契约测试。在此过程中还会用到Arquillian、ShrinkWrap、Pact、Selenium、Docker、Hoverfly 等多个帮助测试的工具和框架。书中涵盖大量的代码和样例,可以帮助读者快速上手,并在自己的实际工作中应用这些技术。本书适合有一定Java 基础的开发和测试人员,对使用其他编程语言的开发者也会有一定的帮助。
目录
第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.....................
内容简介
本书分为三部分:基础框架篇(1~6章)、服务框架篇(7~10章)、监控部署篇(11~13章),由浅入深来讲解微服务的相关技术。基础框架篇从微服务架构的基本概念与技术选型出发,详细的介绍了微服务基础框架SpringBoot、自动化API文档生成工具Swagger、动态数据源和缓存系统,并深入的分析了SpringBoot启动过程的核心源码,这一部分是整本书的基础;服务框架篇详细的介绍了服务注册与发现框架Consul、热配置管理框架Archaius、服务降级容错框架Hystrix,以及服务通信框架OkHttp、AsyncHttpClient和Retrofit,这一部分是整本书的核心;监控部署篇详细的介绍了ELK日志系统的实现、Zipkin全链路追踪系统的实现,最后介绍了持续集成与持续部署系统的实现,这一部分是开发运维的部分。