微服务架构下的测试之(五)-行为驱动开发(Behavior Driven Development)

栏目: 后端 · 发布时间: 7年前

内容简介:行为驱动开发(Behavior Driven Development) : 行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。行为驱动开发有以下两个特点:在微服務的架構下,我們可以使用BDD来保证从根微服务开始,甚至是从UI页面开始,整个业务逻辑的调用都是正确的,前提是我们在践行BDD,即先写测试,然后开发,或者测试和开发同时由不同的人进行。

行为驱动开发(Behavior Driven Development)

行为驱动开发(Behavior Driven Development) : 行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。

行为驱动开发有以下两个特点:

  • 用自然的语言去描述Feature和场景进行测试
  • 根据定义好的Feature驱动开发

在微服務的架構下,我們可以使用BDD来保证从根微服务开始,甚至是从UI页面开始,整个业务逻辑的调用都是正确的,前提是我们在践行BDD,即先写测试,然后开发,或者测试和开发同时由不同的人进行。

更多的BDD信息可以参考 行为驱动开发(BDD)全面介绍

测试方案

举个例子,我们有三个微服务,一个是Gateway, 一个是ServiceA, 一个是ServiceB,它们的调用关系如下图。 现在三个微服务都已经上线了,我们要对整体的微服务进行测试,可以创建一个BDD项目,专门进行BDD测试。如果前面还有UI组件,我们也可以通过Selenium脚本在BDD项目中针对UI进行测试。

微服务架构下的测试之(五)-行为驱动开发(Behavior Driven Development)

java 中针对BDD可以使用 Cucumber 来实现。

项目代码

依旧拿之前的例子,有一个下单的流程,我们有4个微服务,分别是ms-gateway, ms-service, ms-product, ms-order. 其中

ms-gateway 负责gateway功能,所有微服务在一个子网,保证只有gateway可以与外网交互
ms-service 负责业务逻辑的处理
ms-product 负责产品信息的维护和库存的维护
ms-order 负责订单信息的维护

具体的调用时序图如下:

微服务架构下的测试之(五)-行为驱动开发(Behavior Driven Development)

现在四个微服务都部署好之后,我们可以启动我们的BDD项目来对整个微服务调用链进行测试。

测试代码

那么我们就可以使用 Cucumber 对整个微服务调用链进行测试,如下

pom.xml

<dependency>
	<groupId>info.cukes</groupId>
	<artifactId>cucumber-core</artifactId>
	<version>1.2.4</version>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>info.cukes</groupId>
	<artifactId>cucumber-java</artifactId>
	<version>1.2.4</version>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>info.cukes</groupId>
	<artifactId>cucumber-junit</artifactId>
	<version>1.2.4</version>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>info.cukes</groupId>
	<artifactId>cucumber-spring</artifactId>
	<version>1.2.4</version>
	<scope>test</scope>
</dependency>

CreateOrderTest.java

完整代码

请参照 GITHUB ms-bdd

參考資料

BDD : https://baike.baidu.com/item/BDD/10735732?fr=aladdin

Cucumber


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解计算机系统(英文版·第2版)

深入理解计算机系统(英文版·第2版)

[美] Randal E. Bryant、[美] David R. O'Hallaron / 机械工业出版社 / 2011-1 / 128.00元

本书是一本将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。本书的最大优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为为什么是这样的,以及造成效率低下的原因。 相对于第1版,本版主要是反映了过去十年间硬件技术和编译器的变化,具体更新如下: 1. 对系统的介绍(特别是实际使......一起来看看 《深入理解计算机系统(英文版·第2版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码