逆天啦!一键执行混沌测试,服务会挂的,需要跑路吗?在线等!

发布时间 2023-04-12 11:56:48作者: itestAndy

一大早来公司老板给小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多个组合哈哈系统挂了,和老板得意的打了个招呼,我赶紧跑路走人,让研发去排查去!图片