您好,欢迎来到聚文网。 登录 免费注册
Java微服务测试 基于Arquillian、Hoverfly、AssertJ、JUnit、Selenium与Mockito

Java微服务测试 基于Arquillian、Hoverfly、AssertJ、JUnit、Selenium与Mockito

  • 字数: 350千字
  • 装帧: 平装
  • 出版社: 电子工业出版社
  • 作者: (美)亚历克斯·索托·布埃诺(Alex Soto Bueno),(美)安迪·巩布莱希(Andy Gumbrecht),(美)詹森·波特(Jason Porter)
  • 出版日期: 2019-07-01
  • 商品条码: 9787121367106
  • 版次: 1
  • 开本: 16开
  • 页数: 282
  • 出版年份: 2019
定价:¥89 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
编辑推荐
  
内容简介
本书从实战出发,介绍微服务架构所带来的测试方面的挑战,以及如何利用新的技术来应对这些挑战。通过本书,读者可以学会如何编写微服务架构下的单元测试、组件测试、集成测试以及契约测试。在此过程中还会用到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.1Java 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.2ECB 模式 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.1JUnit 51
3.2.2AssertJ 52
3.2.3Mockito 53
3.2.4构建脚本的修改 54
3.3编写Gamer应用的单元测试 55
3.3.1YouTubeVideoLinkCreator 测试 55
3.3.2YouTubeLink 测试 56
3.3.3Games 测试 58
3.3.4GamesService 测试 60
3.3.5GamesResource 测试 63
练习 68
总结 68
第4章微服务组件测试69
4.1Arquillian测试框架 70
4.2@RunWith(Arquillian.class)注解72
4.3ShrinkWrap 工具类 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.1Arquillian REST 客户端扩展 90
4.7.2Warp REST 扩展91
4.8使用Arquillian测试Spring应用 93
4.8.1Arquillian 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.3Gamer应用的集成测试 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.1Pact 150
6.2.2JVM 语言中的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.1Arquillian Cube 180
7.3.2Arquillian Drone 180
7.3.3Arquillian Graphene 2 181
7.3.4JMeter 181
7.3.5Cukes 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.1Docker生态系统下的工具 205
8.1.1Docker 205
8.1.2Docker Machine 207
8.1.3Docker Compose 208
8.2Arquillian Cube 210
8.2.1设置Arquillian Cube 211
8.2.2编写容器测试 214
8.2.3编写集成测试 217
8.2.4编写端到端测试 221
8.3REST API 224
8.4Arquillian Drone和Graphene 225
8.4.1Arquillian Cube 和Arquillian Drone 的集成 225
8.4.2Arquillian Cube 和Arquillian Graphene 的集成 228
8.5并行测试 230
8.6Arquillian Cube和Algeron 231
8.7使用容器对象模式 233
8.8部署测试和Kubernetes 240
8.9构建脚本的修改 245
8.9.1Arquillian Cube Docker 245
8.9.2Arquillian Cube Docker JUnit 规则246
8.9.3Arquillian Cube Kubernetes 246
8.9.4Arquillian 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.1Hoverfly 模式 253
9.2.2JUnit 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.2Jenkins 流水线 267
10.3.3确定性部署 271
10.4Jenkins 272
10.4.1定义一个流水线 276
10.4.2Jenkins 流水线示例 278
总结 280
附录A使用Arquillian Chameleon屏蔽不同类型的容器281

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网