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

codes · 2023年04月12日 · 最后由 codes 回复于 2023年04月15日 · 8729 次阅读

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

共收到 7 条回复 时间 点赞

请问模糊测试和混沌测试是一回事吗?

不是很懂,这种测试叫混沌测试吗?

目的不同,对象也不同
chaos(混沌测试) 是系统级别的 fuzz(模糊测试) 都是函数或者类级别的
fuzz testing(模糊测试) 是为了发现安全漏洞,内存泄露,以及其他冲突问题
haos testing(混沌测试) 是为了验证系统的弹性能力,错误容忍能力,以及自愈能力

槽神 回复

系统级的搞破坏也算呀 😀

这个算是渗透测试吧😛 不算是故障注入

Codes 是什么?是一个工具吗?

testjson 回复

icodes.work 不限功能 只限用户数 10 个用户免费 不够可申请 ,且是安装在你本地 下面是 windows 版 最多 2 G 内存就行
https://download.icodes.work/codes_base/Codes1.0.0GA_home-SetupBindMysql8TomcatJreRedis.zip

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册