blade create servlet

介绍

Servlet 是 Java 的 web 的接口规范,Java web 服务器都遵循此规范实现。本场景主要模拟 Java Web 请求延迟、异常场景。
  • [blade create servlet delay](blade create servlet delay.md) 请求延迟
  • [blade create servlet throwCustomException](blade create servlet throwCustomException.md) 请求异常

参数

servlet 通用参数
1
--effect-count string 影响的请求条数
2
--effect-percent string 影响的请求百分比
3
--method string HTTP 请求类型, 例如: GET, POST, or PUT.
4
--pathinfo string 已废弃
5
--pid string java进程号
6
--process string java进程名
7
--querystring string 请求参数,例如http://localhost:8080/dubbodemo/async?name=friend&timeout=2000 中 querystring的值是 name=friend&timeout=2000
8
--requestpath string 请求 URI,不包含 Context 部分,例如 http://localhost:8080/dubbodemo/async?name=friend&timeout=2000,则 requestpath 的值是 /async,注意要带 /
9
--servletpath string 已废弃
Copied!

实验原理

常见问题

Q: 下发规则不生效
A: 在命令后添加 --debug,然后触发业务请求,查看应用进程用户目录下 logs/chaosblade/chaosblade.log 日志,如下:
1
2019-12-09 21:15:12 DEBUG servlet matchers: {"matchers":{"querystring":"name=bobo","servletpath":"/servlet/path","method":"GET","requestpath":"/servlet/path"}}
2
2019-12-09 21:15:12 INFO Match rule: {"action":{"name":"delay"},"actionName":"delay","matcher":{"matchers":{}},"target":"servlet"}
Copied!
servlet matchers 日志表示获取应用的匹配数据,Match rule 表示和下发的命令匹配
Last modified 1mo ago