blade create jvm return

介绍

指定类方法的返回值,仅支持基本类型、null 和 String 类型的返回值。

参数

以下是此场景特有参数,通用参数详见:[blade create jvm](blade create jvm.md)
1
--effect-count string 影响的请求条数
2
--effect-percent string 影响的请求百分比
3
--value string 返回指定值,仅支持基本类型和字符串类型,如果想返回 null,可以设置为 --value null 。必选项
Copied!

案例

指定com.example.controller.DubboController类,下面业务方法返回 "hello-chaosblade"
1
@RequestMapping(value = "hello")
2
@ResponseBody
3
public String hello(String name, int code) {
4
if (name == null) {
5
name = "friend";
6
}
7
StringBuilder result = null;
8
try {
9
result = new StringBuilder(sayHello(name));
10
} catch (Exception e) {
11
return e.getMessage() + "\n";
12
}
13
return result.toString() + "\n";
14
}
Copied!
故障注入命令如下:
1
blade c jvm return --value hello-chaosblade --classname com.example.controller.DubboController --methodname hello --process tomcat
Copied!
故障注入之前:
故障注入之后:
停止实验:
1
blade d d31e24dea782a275
Copied!
上述代码调用 sayHello 方法,我们对 sayHello 方法注入返回 null 故障,sayHello 方法如下:
1
private String sayHello(String name) throws BeansException {
2
demoService = (DemoService)SpringContextUtil.getBean("demoService");
3
StringBuilder result = new StringBuilder();
4
result.append(demoService.sayHello(name));
5
return result.toString();
6
}
Copied!
执行以下命令:
1
blade c jvm return --value null --classname com.example.controller.DubboController --methodname sayHello --process tomcat
Copied!
故障注入之后:

常见问题

Last modified 4d ago