测试工具-ChaosBlade

ChaosBlade是阿里开源的一款Java虚拟机故障注入工具,它能够模拟很多Java中间件的延时和异常故障,包括RocketMQ, MySQL, Redis, Dubbo等。也可以模拟其它故障,例如CPU满载,磁盘空间不够等,这里不做介绍。
为了方便大家使用,我把ChaosBlade 1.3版本放到这个Wiki上供大家下载,原始代码和版本可以在这里找到:https://github.com/chaosblade-io/chaosblade
chaosblade-1.3.0-mac-amd64.tar.gz
chaosblade-1.3.0-linux-amd64.tar.gz

如何使用

准备
以SFTP等的方式上传到Java应用所部署的机器,将gz文件上传到某一个目录,例如/tmp,然后用命令“tar -xf chaosblade-1.3.0-linux-amd64.tar.gz" 解压。

基本步骤

  1. 查看当前的常用命令: ./blade -h
  2. attach到Java进程: ./blade prepare jvm --pid 具体的pid
  3. 注入错误,例如跑出异常给某个MQ topic的消费者: ./blade create throwCustomException --exception=java.lang.Exception --consumerGroup=myGroup --topic=myTopic
  4. 恢复JVM状态 (重要),如果不恢复,JVM将一直处于错误状态:./blade destroy uid, 其中uid可以用这个命令查到:./blade status --type create
  5. 如后续不再需要继续其它操作,从Java进程detach:./blade revoke uid, 其中uid可以用这个命令查到: ./blade status --type prepare

注意:以上的操作顺序很重要
第一步:先attach到当前java进行(attach Java进程时会启动chaosblade服务)
第二步:创建挡板
第三步:revoke/destroy 挡板
第四步:detach java进程
第五步:stop chaosblade服务

常用命令参考

每一个命令的每一级后面都可以加“-h“来获得具体的帮助

  • RocketMQ
    ./blade create rocketmq delay -h
    ./blade create rocketmq throwCustomException -h
  • Redis
    ./blade create jedis delay -h
    ./blade create jedis throwCustomException -h
  • MySQL
    ./blade create mysql delay -h
    ./blade create mysql throwCustomException -h
  • Dubbo
    ./blade create dubbo delay -h
    ./blade create dubbo throwCustomException -h
  • 数据库连接池
    ./blade create druid connectionpoolfull -h
  • redis 异常模拟
    ./blade create jedis -h
  • 指定方法名称
    ./blade create jvm 创建指定代码异常
    例如:create jvm throwException

参考地址:
https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容