展开全部

主编推荐语

帮助你快速上手Java多种帮助测试的工具和框架。

内容简介

本书从实战出发,介绍微服务架构所带来的测试方面的挑战,以及如何利用新的技术来应对这些挑战。通过本书,读者可以学会如何编写微服务架构下的单元测试、组件测试、集成测试以及契约测试。在此过程中还会用到Arquillian、ShrinkWrap、Pact、Selenium、Docker、Hoverfly等多个帮助测试的工具和框架。书中涵盖大量的代码和样例,可以帮助读者快速上手,并在自己的实际工作中应用这些技术。本书适合有一定Java 基础的开发和测试人员,对使用其他编程语言的开发者也会有一定的帮助。

目录

  • 版权信息
  • 内容简介
  • 译者序
  • 序言
  • 致谢
  • 关于本书
  • 关于作者
  • 关于封面
  • 第1章 微服务概述
  • 1.1 什么是微服务,为什么要使用微服务
  • 1.1.1 为什么要使用微服务
  • 1.1.2 什么是微服务
  • 1.1.3 持续集成、持续部署和Docker
  • 1.2 微服务网络及其功能
  • 1.2.1 微服务网络
  • 1.2.2 微服务特性
  • 1.3 微服务架构
  • 1.3.1 资源组件
  • 1.3.2 业务领域组件
  • 1.3.3 远程资源组件
  • 1.3.4 持久化组件
  • 1.4 微服务单元测试
  • 1.4.1 孤立型单元测试
  • 1.4.2 联合型单元测试
  • 总结
  • 第2章 测试下的应用
  • 2.1 准备开始
  • 2.2 准备工作
  • 2.2.1 Java Development Kit
  • 2.2.2 构建工具
  • 2.2.3 环境变量
  • 2.2.4 集成开发环境(IDE)
  • 2.3 架构
  • 2.3.1 游戏服务
  • 2.3.2 评论服务
  • 2.3.3 视频服务
  • 2.3.4 聚合服务
  • 2.3.5 整体架构
  • 2.4 应用设计模式
  • 2.4.1 解构
  • 2.4.2 ECB模式
  • 2.4.3 其他模式
  • 2.5 设计决策
  • 总结
  • 第3章 微服务单元测试
  • 3.1 单元测试技术
  • 3.1.1 联合型单元测试
  • 3.1.2 测试替身
  • 3.1.3 孤立型单元测试
  • 3.1.4 微服务的单元测试
  • 3.2 工具
  • 3.2.1 JUnit
  • 3.2.2 AssertJ
  • 3.2.3 Mockito
  • 3.2.4 构建脚本的修改
  • 3.3 编写Gamer应用的单元测试
  • 3.3.1 YouTubeVideoLinkCreator测试
  • 3.3.2 YouTubeLink测试
  • 3.3.3 Games测试
  • 3.3.4 GamesService测试
  • 3.3.5 GamesResource测试
  • 练习
  • 总结
  • 第4章 微服务组件测试
  • 4.1 Arquillian测试框架
  • 4.2 @RunWith(Arquillian.class)注解
  • 4.3 ShrinkWrap工具类
  • 4.3.1 利用ShrinkWrap构建归档文件
  • 4.3.2 给ShrinkWrap归档文件增加内容
  • 4.3.3 添加资源
  • 4.3.4 增加库和依赖
  • 4.3.5 利用Maven解析器增加复杂依赖
  • 4.3.6 增加服务实现
  • 4.4 写一次代码,然后复用
  • 4.5 构建脚本的修改
  • 4.5.1 定义Maven依赖
  • 4.5.2 定义Gradle依赖
  • 4.6 覆盖Arquillian的默认配置
  • 4.6.1 容器定义
  • 4.6.2 指定容器属性
  • 4.7 使用Arquillian REST扩展
  • 4.7.1 Arquillian REST客户端扩展
  • 4.7.2 Warp REST扩展
  • 4.8 使用Arquillian测试Spring应用
  • 4.8.1 Arquillian Spring框架扩展
  • 4.8.2 测试Spring Boot应用
  • 4.9 更复杂的Arquillian测试
  • 4.9.1 测试远程组件
  • 4.9.2 测试资源组件
  • 4.9.3 测试领域组件
  • 4.9.4 测试持久化组件
  • 练习
  • 总结
  • 第5章 微服务集成测试
  • 5.1 微服务架构下的集成测试
  • 5.1.1 网关组件层
  • 5.1.2 数据映射器和仓库
  • 5.2 使用Arquillian持久化扩展进行持久化测试
  • 5.2.1 描述式方法
  • 5.2.2 过程式方法
  • 5.2.3 使用NoSQLUnit进行持久化测试
  • 5.2.4 使用Arquillian多部署的持久化测试
  • 5.2.5 使用Arquillian序列的持久化测试
  • 5.2.6 构建脚本的修改
  • 5.3 Gamer应用的集成测试
  • 5.3.1 测试Comments类
  • 5.3.2 测试CommentsGateway类
  • 练习
  • 总结
  • 第6章 契约测试
  • 6.1 理解契约
  • 6.1.1 契约和单体应用
  • 6.1.2 契约和微服务应用
  • 6.1.3 使用集成测试进行验证
  • 6.1.4 什么是契约测试
  • 6.1.5 谁负责契约
  • 6.2 工具
  • 6.2.1 Pact
  • 6.2.2 JVM语言中的Pact
  • 6.2.3 利用Algeron将Pact JVM与Arquillian生态系统集成
  • 6.3 构建脚本的修改
  • 6.3.1 使用Pact JVM进行契约测试
  • 6.3.2 使用Arquillian Algeron进行契约测试
  • 6.4 为Gamer应用编写消费者驱动的契约测试
  • 6.4.1 评论服务的消费者端
  • 6.4.2 评论服务的生产者端
  • 6.5 契约类型总结
  • 练习
  • 总结
  • 第7章 端到端测试
  • 7.1 端到端测试在整个测试体系中的位置
  • 7.2 端到端测试技术
  • 7.2.1 垂直测试
  • 7.2.2 水平测试
  • 7.3 端到端测试工具介绍
  • 7.3.1 Arquillian Cube
  • 7.3.2 Arquillian Drone
  • 7.3.3 Arquillian Graphene 2
  • 7.3.4 JMeter
  • 7.3.5 Cukes in Space
  • 7.4 端到端测试样例
  • 7.4.1 构建微服务
  • 7.4.2 增加构建依赖和配置
  • 7.4.3 给测试增加@Deployment注解和@TargetsContainer注解
  • 7.4.4 跨域资源共享
  • 7.4.5 使用@ClassRule处理混合环境
  • 7.4.6 使用@OperateOnDeployment注解操作部署
  • 7.4.7 引入@Drone、页面对象、@Location和WebDriver
  • 7.4.8 在测试中操作页面对象
  • 7.4.9 运行测试
  • 练习
  • 总结
  • 第8章 Docker和测试
  • 8.1 Docker生态系统下的工具
  • 8.1.1 Docker
  • 8.1.2 Docker Machine
  • 8.1.3 Docker Compose
  • 8.2 Arquillian Cube
  • 8.2.1 设置Arquillian Cube
  • 8.2.2 编写容器测试
  • 8.2.3 编写集成测试
  • 8.2.4 编写端到端测试
  • 8.3 REST API
  • 8.4 Arquillian Drone和Graphene
  • 8.4.1 Arquillian Cube和Arquillian Drone的集成
  • 8.4.2 Arquillian Cube和Arquillian Graphene的集成
  • 8.5 并行测试
  • 8.6 Arquillian Cube和Algeron
  • 8.7 使用容器对象模式
  • 8.8 部署测试和Kubernetes
  • 8.9 构建脚本的修改
  • 8.9.1 Arquillian Cube Docker
  • 8.9.2 Arquillian Cube Docker JUnit规则
  • 8.9.3 Arquillian Cube Kubernetes
  • 8.9.4 Arquillian Cube OpenShift
  • 8.10 测试视频服务的Dockerfile
  • 练习
  • 总结
  • 第9章 服务虚拟化
  • 9.1 什么是服务虚拟化
  • 9.1.1 为什么要使用服务虚拟化
  • 9.1.2 什么时候使用服务虚拟化
  • 9.2 使用Hoverfly模拟服务响应
  • 9.2.1 Hoverfly模式
  • 9.2.2 JUnit Hoverfly
  • 9.2.3 配置Hoverfly
  • 9.3 构建脚本的修改
  • 9.4 对Gamer应用使用服务虚拟化
  • 总结
  • 第10章 微服务下的持续交付
  • 10.1 什么是持续交付
  • 10.2 微服务架构和持续交付
  • 10.3 持续交付的编排
  • 10.3.1 使用Jenkins
  • 10.3.2 Jenkins流水线
  • 10.3.3 确定性部署
  • 10.4 Jenkins
  • 10.4.1 定义一个流水线
  • 10.4.2 Jenkins流水线示例
  • 总结
  • 附录A 使用Arquillian Chameleon屏蔽不同类型的容器
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。