作品简介

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

《Java微服务测试:基于Arquillian、Hoverfly、AssertJ、JUnit、Selenium与Mockito》适合有一定Java基础的开发和测试人员,对使用其他编程语言的开发者也会有一定的帮助。

(美)亚历克斯·索托·布埃诺(Alex Soto Bueno)是一位Java大师,也是一位在Red Hat工作的软件工程师,主要研发提升测试体验的工具。他十分喜爱Java、软件自动化,并且深信开源软件。

(美)安迪·巩布莱希(Andy Gumbrecht)是Tomitribe的高级软件工程师。从12岁起他就对任何与计算机相关的事情感兴趣,并在那时幸运地拥有了一台高达1KB内存的计算机Sinclair ZX81。

(美)詹森·波特(Jason Porter)从12岁起就开始不断提升自己的软件开发技术。在那之前的几年间,他通过查看一个在古老的80286上用BASIC编写的游戏开启了自己的计算机和编程之旅。

作品目录

  • 译者序
  • 其他
  • 序言
  • 致谢
  • 关于本书
  • 关于作者
  • 关于封面
  • 1 微服务概述
  • 1.1 什么是微服务,为什么要使用微服务
  • 1.2 微服务网络及其功能
  • 1.3 微服务架构
  • 1.4 微服务单元测试
  • 总结
  • 2 测试下的应用
  • 2.1 准备开始
  • 2.2 准备工作
  • 2.3 架构
  • 2.4 应用设计模式
  • 2.5 设计决策
  • 总结
  • 3 微服务单元测试
  • 3.1 单元测试技术
  • 3.2 工具
  • 3.3 编写Gamer应用的单元测试
  • 练习
  • 总结
  • 4 微服务组件测试
  • 4.1 Arquillian测试框架
  • 4.2 @RunWith(Arquillian.class)注解
  • 4.3 ShrinkWrap 工具类
  • 4.4 写一次代码,然后复用
  • 4.5 构建脚本的修改
  • 4.6 覆盖Arquillian的默认配置
  • 4.7 使用Arquillian REST扩展
  • 4.8 使用Arquillian测试Spring应用
  • 4.9 更复杂的Arquillian测试
  • 练习
  • 总结
  • 5 微服务集成测试
  • 5.1 微服务架构下的集成测试
  • 5.2 使用Arquillian持久化扩展进行持久化测试
  • 5.3 Gamer应用的集成测试
  • 练习
  • 总结
  • 6 契约测试
  • 6.1 理解契约
  • 6.2 工具
  • 6.3 构建脚本的修改
  • 6.4 为Gamer应用编写消费者驱动的契约测试
  • 6.5 契约类型总结
  • 练习
  • 总结
  • 7 端到端测试
  • 7.1 端到端测试在整个测试体系中的位置
  • 7.2 端到端测试技术
  • 7.3 端到端测试工具介绍
  • 7.4 端到端测试样例
  • 练习
  • 总结
  • 8 Docker和测试
  • 8.1 Docker生态系统下的工具
  • 8.2 Arquillian Cube
  • 8.3 REST API
  • 8.4 Arquillian Drone和Graphene
  • 8.5 并行测试
  • 8.6 Arquillian Cube和Algeron
  • 8.7 使用容器对象模式
  • 8.8 部署测试和Kubernetes
  • 8.9 构建脚本的修改
  • 8.10 测试视频服务的Dockerfile
  • 练习
  • 总结
  • 9 服务虚拟化
  • 9.1 什么是服务虚拟化
  • 9.2 使用Hoverfly模拟服务响应
  • 9.3 构建脚本的修改
  • 9.4 对Gamer应用使用服务虚拟化
  • 总结
  • 10 微服务下的持续交付
  • 10.1 什么是持续交付
  • 10.2 微服务架构和持续交付
  • 10.3 持续交付的编排
  • 10.4 Jenkins
  • 总结
  • 附录A 使用Arquillian Chameleon屏蔽不同类型的容器
展开全部