复杂业务场景‘基因重组‘组件

复杂业务场景“基因重组”组件

现状

       随着业务参数配置中心所对接的参数越来越多,而且每个参数都包含一定的业务逻辑,系统自身的组件功能越来越丰富,同时业务参数配置中心也面临一些情况:

  1. 主流程、核心代码影响为全局的,组件开发都会涉及到主流程、核心代码的变化(比如:梯度组件、完整度组件、生命周期等),代码变化对现有已对接的参数有何影响未知
  2. 开发资源短缺、测试资源不稳定(自动系统上线已经有三个测试组进行交接,新人接手测试、对已有的版本只知甚少),给系统质量保证带来一定影响。
  3. 参数业务场景复杂度较高,各参数之间有依赖关系,开发自测及测试回归耗时、耗力。
  4. N录N核模式基于配置不同,带来的场景结果不同,每个参数场景太多,迭代版本时间有限,测试无发全覆盖。
  5. 特殊模式(比如:强制或非强制提交模式、生命周期交叉模式、批量事务支持模式、单录或批量衍生模式、触发流程时机模式、梯度组件模式、完整度组件模式、适配模式等等)需要外部资源(会服系统、结算库、做市商库等)配合才能实现,搭建外部资源太耗时、耗力。
  6. 如何让参数的场景:write once run everywhere ?
  7. 如何借助业务人员的UAT验收场景?如何有效利用集成测试的业务场景?

针对上面所面临的问题,开发出基于复杂业务场景“基因重组”组件,此组件的目的就是解决上面所面临的困境。并且此组件也可供系统测试中心所使用,把其所设计的测试场景用例一次录入,终生随时随地进行一键回归

“基因重组”设计原理

抽象

每个业务参数的业务场景均不同,但是结合N录N核功能进行逻辑抽象后,一个业务场景可以拆分为N个场景片段,每个场景片段只包含一个执行功能。

 

重组

复杂业务场景也是由一个一个的普通业务场景组合而来,那么基于抽象出来的场景、场景片段、执行段进行重组、排列就可以构建一个复杂业务场景。

重用

       基于抽象图可以看到,场景片段组成场景,场景片段同时也关联执行段。同一个场景片段、执行段,可以进行复用,出现在不同的场景里。

比如:

 

 

由图可知:

  • 不同的场景,可以复用场景片段及执行段
  • 不同的场景,相同的场景片段可以挂载不同的执行段
  • 不同的场景,相同的场景片段执行顺序可以不同
  • 同一场景中,不同的场景片段可以挂载相同的执行段

顺序

这里所说的“顺序”指的是执行片段所依赖的上下文顺序(类似多线程切换时,需要保存当前线程的上下文数据)。比如:当前执行段执行时所需要的前置条件。

 

执行段

定义

真正触发业务逻辑的执行者及断言结果。

分类

执行段基于N录N核模式又分为如下类型:

 

逻辑

执行片段自身逻辑:

 

结合场景片段后的逻辑为:

 

使用

此组件已经开发完成,研发这边已经录入近200个复杂业务场景,50条基础业务场景,后续也会继续录入。

执行:可以通过Bamboo自动执行,也可以手动运行程序。

开发完成后,也和系统测试中心沟通过,编写相应的使用手册,供其使用。

度量

程序代码每次变更,提交Pull Request,均会触发组件的执行,并把此次的每个场景的场景片段执行结果存入数据库,统计每个场景是否执行通过,若是不通过,会有相应的异常结果或者异常日志记录在库中,方便开发进行查看。从而反应出此次代码修订是否对已有参数的业务场景是否造成影响。

使用说明

主要步骤

  1. 明确要测试的业务场景
  2. 编排此业务场景的各个场景片段
  3. 识别各个场景片段的前置、后置处理
  4. 通过系统,执行各个场景片段,并把请求参数录入到数据库
  5. 填写各个执行段的预期
  6. 填写完,可手动触发一次,看执行结果是否符合预期

详细步骤

  1. 涉及到的数据库表

CC_TEST_BIZ_SCENE

场景配置表

CC_TEST_BIZ_SCENE_PART

场景片段配置表

CC_TEST_EXEC_SEGMENT_CONFIG

执行段配置表

CC_TEST_RESULT

执行结果统计表

  1. CC_TEST_BIZ_SCENE表

字段

说明

BIZ_SCENE_ID

场景配置表主键

STATUS

是否启用,1:启用,0:停用

REMARK

场景详细描述

举例:

  1. CC_TEST_BIZ_SCENE_PART

字段

说明

BIZ_SCENE_PART_ID

业务场景片段ID

SCENE_PART_BEFORE

场景片段执行前逻辑

EXECU_SEGMENT_CONFIG_ID

执行段配置ID

SCENE_PART_AFTER

场景片段执行后逻辑

BIZ_SCENE_ID

所属业务场景ID

SCENE_PART_ORDER

场景片段序号,从1开始,同一个业务场景下,此字段递增

STATUS

状态,是否启用。1:启用,0:不启用;默认值1

REMARK

备注信息

  1. CC_TEST_EXEC_SEGMENT_CONFIG

EXEC_SEGMENT_CONFIG_ID

执行段主键

CURRENT_EXEC_USER

当前执行人

BEFORE_SQL

前置执行SQL

EXEC_SEGMENT_TYPE

执行段类型

BIZ_MAIN_PARAMS

执行段参数,可通过浏览器F12获取

BIZ_OTHER_PARAMS

执行段其他参数,json格式

ASSERT_STATUS

执行段Http Status 断言码

ASSERT_SUCCESS

执行段结果,json格式。{“success”:true,”message”:”xxxx”,”data”:”yyyyy”}

AFTER_SQL

后置执行SQL

BATCH_FLAG

是否批量标识,0:单录模式,1:批量模式

BEFORE_EXEC_SEGMENT_CONFIG_ID

上下文的前置执行段配置ID

REMARK

备注

  1. CC_TEST_RESULT

TEST_ID

测试ID,每一轮测试一个ID,从1开始累加,每次加1

EXECUTE_ID

复杂测试的执行段ID或基础测试的测试流程参数配置ID

SCENE_PART_ID

测试场景片段ID,基础测试为测试流程参数配置ID

SCENE_ID

测试场景ID,基础测试为测试流程参数配置ID

SUCCESS

测试结果: 1  成功,0  断言失败, -1  异常失败

TEST_LOG

测试日志,记录测试失败的信息或异常日志信息

TEST_TYPE

测试类型: 1  基础测试, 2  复杂场景测试

TEST_RESULT

测试结果信息

TEST_TIME

测试时间

场景配置

具体可参照第五章节。以一个实际的实例进行了详细的描述说明。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一路乘风向前进

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值