平台搭建_异常测试平台搭建方案

作者|陈俊华、刘琳琳

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

在日常测试中,由于排期紧张以及异常情况难以模拟,异常测试通常被大家忽略或者放弃。只要功能没问题,就可以上线。但是线上情况千奇百怪,服务器宕机、用户走到代码的犄角旮旯、三方服务挂掉等情况无可避免,因此对于系统的健壮性和稳定性,异常测试不可或缺,但异常测试往往是通过让研发预留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的使用和对数据进行存储,以及一些针对我司的个性化需求,再通过前端,将参数界面化,通过一些简单的填写,就可以进行相应的异常注入。

4a9939547f8e8cb9db912124cec473b7.png

后端实现

a0197ff93ca301572e2e096e04d4c7d7.png

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

6befa7d331f4b672fc6a957b419a5db1.png

前端页面

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

f1a3fe0d101d05b002f6f5f2879804c0.png

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

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

83917b977032af98278415584872eece.png

自定义方法返回值 

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

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

0e4259459b9bc45a4cc6db2de0478c6b.png

未来预期
  1. 首次注入时间通常在15s以上,前端表现为接口超时,后续可以修改超时时间,提高用户体验

  2. 将前端的很多输入框修改为选择项,进一步提高效率

  3. 加入重试和编辑功能

  4. 提供动态mock能力

往期精彩回顾

异常场景测试

转转App代码覆盖率方案

测试环境问题排查的那些事儿

广告召回自动化测试之路

场景接口测试平台搭建实践

转转发布系统问题排查实战

业务场景抽离,助力测试提效

工具尝鲜--单元测试自动生成工具 evosuite

辅助型QA转型之路

Matrix-ApkChecker的实际应用

一名测试实习生的心路历程

转转直播测试揭秘

App测试,安装包走过的一生

RPC服务接口测试自动化初探

H5页面多端兼容测试与监控

移动端自动化测试-远程设备调度

电商业务测试方案与实战落地(转转)

IOS远程真机控制实践

Java字节码增强技术介绍

9db8c2c93b50b7b9179c4aae8505334c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值