异常测试平台搭建方案

异常测试是有别于功能测试和性能测试的一种测试类型,通过异常测试,可以发现由系统异常、依赖服务异常、应用本身异常等原因引起的问题,提高系统的稳定性。

目的

在日常测试中,由于排期紧张以及异常情况难以模拟,异常测试通常被大家忽略或者放弃。只要功能没问题,就可以上线。但是线上情况千奇百怪,服务器宕机、用户走到代码的犄角旮旯、三方服务挂掉等情况无可避免,因此对于系统的健壮性和稳定性,异常测试不可或缺,但异常测试往往是通过让研发预留bug、注释代码、到测试机上杀死服务等方法进行,代价较大,且有可能带着bug上线。异常测试平台搭建的目的就是降低异常测试的门槛。

工具选型

目前异常测试工具有很多,比如模拟网络异常的tc(Traffic Control)、netem和iptables,模拟代码注入故障的jvm-sandbox,以及在生产环境随机模拟故障的Chao Monkey框架,经过了多次调研,秉持着“拿来主义”的原则,最终采用了“集大成”的chaosblade。chaosblade提供了cpu、磁盘、内存、网络、jvm等异常的注入功能。chaosblade的jvm异常注入能力是基于jvm-sandbox,提供了无侵入运行aop的能力,使用起来比jvm-sandbox更加简单。同时,它还提供了server模式,可以暴露web服务,上层可以通过http进行调用。

方案

将chaosblade服务在目标服务器上启动,然后springboot服务进行调用,springboot再对chaosblade进行一次封装(没有什么是通过一次封装解决不了的,如果有,那就两次),简化chaosblade的使用和对数据进行存储,以及一些针对我司的个性化需求,再通过前端,将参数界面化,通过一些简单的填写,就可以进行相应的异常注入。

后端实现
在这里插入图片描述
遇到无法编译的lib包解决办法:

git上下载chaosblade-exec-jvm源码,在查找需要编译的类那里将无法打开的lib包直接跳过即可。

前端页面
CPU满载场景 ,在ip的输入框,输入指定的IP 地址,IP的CPU负载会达到100% 。使用者要有该机器的权限才可以操作。

在这里插入图片描述

解除满载的操作 操作记录 列表 —>点击详情 进入详情页面 ;

点击解除故障按钮 ,cpu负载恢复到之前状态

在这里插入图片描述

自定义方法返回值

填写方法的服务名、包名、全路径类名、方法名,返回值的json格式。

日志获取返回值信息,然后转成json格式,放入到输入框中,该类型的异常注入时间在10s左右,请耐心等待。解除异常与上边操作一致

未来预期

  • 首次注入时间通常在15s以上,前端表现为接口超时,后续可以修改超时时间,提高用户体验
  • 将前端的很多输入框修改为选择项,进一步提高效率
  • 加入重试和编辑功能
  • 提供动态mock能力

在这里插入图片描述
另外,欢迎加入软件测试技术交流群 313782132 ~进群可领取免费软件测试资料以及群内测试大牛解惑!

测试工程师职业发展路线图

功能测试 — 接口测试 — 自动化测试 — 测试开发 — 测试架构师

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。事必有法,然后有成。

资源不错就给个推荐吧~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值