一大早来公司老板给小 T 安排做一个系统的业务场景稳定性测试,我一脸蒙呀,老板解释到:就是让我一顿乱整,看看系统会不会挂掉,天下还有这等好事儿?哈哈,我和老板说,我有办法了,搞死系统可别怪我呀,老板发话了:测试环境搞死也没事,主要是要测试出系统的健壮性!
话是说出了口,但实际真的很容易吗?急得小 T 是左右为男(难)又满头大汉(汗),没办法找到了 Chatgpt 一顿操作猛如虎,哈哈,Chatgpt 提供了一个接口混沌测试,大概思路是以撞库的形式来进行测试接口,原理如下:
配置好混沌规则 ,然后以 “撞库” 的形式排列组合,替换掉正向接口用例中的参数值去执行撞库,瞬间完成接口健壮性测试 “撞库时” 先单独一个一个去换, 然后再排例组合。
好了,现在关键问题来了,小 T 不会写这种代码耶(哈哈哈哈)!!!不过还有一个很牛的办法,手动操作穷举走起,不过看了一下接口数量:10 几个,每个参数也不算少,不穷举,排列组合下来也很多了,小 T 想了一下大约需要 50 来个小时而已,OK,系统没挂掉小 T 先挂了!
同时小 T 测试的不是单一接口是一个包含一系列接口的业务场景,这不上周一个讲过的:《研发管理你痛过吗?》的推文中提到过接口编排。
最后还是小 C 给小 T 支了招,了解一下 Codes 的对应功能,小 T 赶紧进了 Codes 的技术支持群,技术支持告诉小 T,这个小 case 呀 ,接口场景编排加接口混沌测试可以一步到位 ,真是爽得不要不要的,真担心系统会不会一搞就挂了,先拿告诉我的方案 POC 一下,之前真是发愁呀,小 T 就一个小白,按官方给的 DEMO POC 下来几分钟完事,不信你看看 POC 过程。
step1:定义好接口场景中的每个接口
听说是可以进行录制可惜小 T 还不会用,先手动增加登录接口以及 POC 的场景中其它相关接口。
step2:设置登录接口断言
小 T 觉得拖拽式的方式设置断言蛮爽的,当然高级玩家们也可以自己编码实现哦。
step3:编排业务场景
拖拽式编排接口为业务场景,说实在的不要太爽啦!(小 T 已晕)
step4:设置业务场景流转条件
真的就像是工作流一样,双击接口间的连线可以设置流转条件,会把前一个接口的响应结果解析为一个树状结构,拖动树状结构上的节点,如下图所示:
step5:设置好所有流转逻辑
step6:下面是最哇塞的功能,自动化推导接口间依赖拓扑
step7:配置混沌规则并在场景中应用
Codes 可以配置任意多的混沌规则,小 T 假定场景中某个接口的参数为 M,配置了 N 个混沌规则,执行场景中每个接口的次数 M+C ab * P aa (M 和 N 哪个大哪个是 a 另一个是 B),假定场景中有 X 个接口那么总执行次数就是希格码 M+C ab * P aa
step8:运行场景查看调用链
step9:查看调用情况及混沌日志
查看某次正常执行情况。
(还好系统在这里居然没挂,30 多秒里运行了 1800 多次)
小 T 最后总结一下:
如果做业务场景中的反向测试,不需要手动一个一个去执行,手动操作穷举的方式搞数据驱动也很难搞定,如果参数复杂数据驱动文件也不好配置。所以 Codes 另辟蹊径,配置反向规则及对应的值,场景中所有接口一起来排列组合,最后排列组合去替换掉正常参数进行测试。还真别说我们有一个内部的 MIS 系统,一次跑了 3000 多个组合哈哈系统挂了,和老板得意的打了个招呼,我赶紧跑路走人,让研发去排查去!图片