混沌测试在加密方法改造项目中的实践

1 摘要

主机环境一直是相对封闭的平台,很多高频核心交易都运行在主机上。某系统加密方法改造项目首次实现从主机系统外调开放系统,如果外调系统出现异常,外调环节不能及时释放端口和资源,可能会导致主机环境也出现故障。为了保证主机能够在外调的各种异常场景中稳定运行,在测试过程中要模拟主机网络和开放环境的各种故障,及时发现导致主机异常的故障。

2 某系统加密方法改造项目测试结构

该系统加密方法改造过程中在新增新加密方法相关功能的同时,旧加密算法流程全部保留,可用于服务降级。

相应的,该项目的测试策略为:功能测试和性能测试连接正常UEP环境测试,混沌测试中的降级和熔断场景需要模拟UEP故障,UEP有多个测试系统调用,不方便直接注入故障,所以自行开发MOCK环境模拟UEP异常场景。

综合考虑项目改造事项以及主机的特点,测试主要关注以下两个方面:

  • 1.主机自身处理能力下降后对上游系统即客户端的影响;

  • 2.关联系统UEP故障后,对主机处理能力的影响。

3 混沌测试场景设计

结合系统特点及测试需求,本次混沌测试设计了三个测试场景,分别为:流控、降级和熔断。

1.流控场景:分为测试主机针对客户端流量的限流与主机外调UEP的流控,需从入口出口两侧通过混沌测试进行验证。

2.降级场景:根据设计方案要求,不管是主机还是UEP出现异常均会降级走回主机逻辑。需使用混沌模拟所有可能触发降级的场景并验证系统是否正常处理。

3.熔断场景:主机至UEP链路出现故障时,除了降级之外,会累计异常次数,到达配置阈值时会触发熔断,此时系统级的外调开关会被关闭。

4 实践效果

MockUEP可以通过设置交易码、交易名、响应码、响应报文、延迟实践等字段进行创建Mock接口。其使用界面如下:

流控场景实践:

1.测试环境主机对客户端发来的单交易并发阈值设置为10。当并发量超过10时,经验证会报EXXXXX错误码提示到达限流阈值;当并发量降到10以下,交易正常,不再报错。

2.在测试环境中把主机外调UEP的并发阈值调整为3。当主机外调UEP的并发量超过3时,降级流水表中会记录超并发的交易,状态为C1,走回主机旧逻辑,客户端无感;当并发量降到3以下时,降级流水表不再增加记录,走回UEP的新加密方法逻辑。

降级场景实践:

测试针对主机或者UEP出现的异常处理是否符合设计预期。除鉴定码校验失败和密码校验失败外,均降级走回主机中原有的逻辑。其中对于并发数超过主机外调UEP并发数阈值的场景,会多关注降级时候的并发量是否符合设计的阈值,以及当并发量降到阈值以下时是否走回UEP新加密逻辑。

降级累积触发熔断场景实践:

以下类型异常失败次数积累会触发熔断,测试过程中关注熔断开关是否依据配置阈值准确熔断,也会验证服务恢复正常后整个业务能否衔接上。

UEP响应超时不熔断/熔断场景实践:

1.未配置熔断情况下,开放端引入故障后,随着并发量上升,主机出现越来越多FINWT2状态端口,交易失败率越来越高。

2.配置熔断,开放端引入故障后,及时熔断,交易与主机端口状态正常。

只降级不熔断场景实践:

以下类型降级不熔断,测试时除了关注降级时候的流水之外,也要关注异常恢复之后是否走回新加密逻辑。

5 总结

本次实践开展了中国农业银行内首次主机系统外调开放系统场景的混沌测试,通过设计流控、降级和熔断等场景,充分验证主机在外调的各种异常场景中运行的稳定性。在实践中,我们通过开发MockUEP,在测试环境模拟了触发流控场景、降级场景、降级累积触发熔断场景、UEP响应超时不熔断/熔断场景、只降级不熔断场景等,测试主机能否正确处理外调开放环境的异常,保持业务的连续性。本方案已在多个系统的加密方法改造项目都进行了实践,可供同类系统改造提供参考。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末自行领取】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值