1
0
Files
DiAL/probes.example.yaml
lanyuanxiaoyao 3fa1b3957e refactor: 项目更名为 DiAL(统一拨测平台)
将 gateway-checker/Gateway Checker 统一替换为 dial-server/DiAL
- 包名、可执行文件名、API service 标识改为 dial-server
- UI 标题改为 DiAL,副标题改为统一拨测平台
- 同步更新测试断言、构建脚本、示例配置和文档
2026-05-11 22:23:17 +08:00

213 lines
4.3 KiB
YAML

server:
host: "127.0.0.1"
port: 3000
dataDir: "/tmp/probes_data"
runtime:
maxConcurrentChecks: 20
defaults:
interval: "30s"
timeout: "10s"
http:
method: GET
maxBodyBytes: "10MB"
command:
maxOutputBytes: "1MB"
targets:
# ========== HTTP targets ==========
- name: "Baidu 首页可用"
type: http
group: "搜索引擎"
http:
url: "https://www.baidu.com"
expect:
status: [200]
maxDurationMs: 5000
- name: "JSON API — 完整流水线"
type: http
group: "后端服务"
interval: "1m"
timeout: "15s"
http:
url: "https://httpbin.org/json"
headers:
Accept: "application/json"
expect:
headers:
Content-Type:
contains: "application/json"
maxDurationMs: 8000
body:
- json:
path: "$.slideshow.title"
equals: "Sample Slide Show"
- json:
path: "$.slideshow.slides[0].title"
contains: "Wake"
- json:
path: "$.slideshow.slides[0].type"
equals: "all"
- regex: '"title"'
- name: "HTML 页面 — CSS 选择器"
type: http
http:
url: "https://httpbin.org/html"
expect:
body:
- css:
selector: "h1"
contains: "Moby-Dick"
- css:
selector: "body"
exists: true
- name: "HTML 页面 — XPath 提取节点文本"
type: http
http:
url: "https://httpbin.org/html"
expect:
body:
- xpath:
path: "/html/body/h1/text()"
contains: "Melville"
- name: "POST 接口测试"
type: http
http:
url: "https://httpbin.org/post"
method: POST
headers:
Content-Type: "application/json"
body: '{"action":"check","version":1}'
expect:
status: [200]
body:
- json:
path: "$.json.action"
equals: "check"
- json:
path: "$.json.version"
gte: 1
- name: "请求头验证"
type: http
http:
url: "https://httpbin.org/headers"
headers:
X-Custom-Header: "dial-server"
expect:
status: [200]
body:
- json:
path: "$.headers.X-Custom-Header"
equals: "dial-server"
- name: "响应头自定义校验"
type: http
http:
url: "https://httpbin.org/response-headers"
headers:
accept: "application/json"
expect:
body:
- json:
path: "$.Content-Type"
equals: "application/json"
- name: "多状态码允许"
type: http
http:
url: "https://httpbin.org/status/200"
expect:
status: [200, 201, 204]
# ========== Command targets ==========
- name: "uname 输出匹配"
type: command
group: "系统检查"
command:
exec: "uname"
args: ["-s"]
expect:
exitCode: [0]
stdout:
- match: "^[A-Z][a-z]+$"
- name: "echo 自定义文本输出"
type: command
command:
exec: "echo"
args: ["check ok"]
expect:
stdout:
- equals: "check ok\n"
maxDurationMs: 3000
- name: "ls 目录无 stderr"
type: command
command:
exec: "ls"
args: ["/tmp"]
cwd: "/"
expect:
exitCode: [0]
stderr:
- empty: true
- name: "date 输出包含年份"
type: command
command:
exec: "date"
args: ["+%Y"]
expect:
stdout:
- match: "^20\\d{2}\n?$"
- name: "wc 行数计数"
type: command
command:
exec: "wc"
args: ["-l"]
cwd: "/etc"
env:
LANG: "C"
expect:
stdout:
- match: "\\d+"
- name: "hostname 非空输出"
type: command
command:
exec: "hostname"
expect:
stdout:
- match: ".+"
- name: "多规则 stdout 顺序校验"
type: command
interval: "5m"
command:
exec: "echo"
args: ["version: 2.0.1, status: healthy"]
expect:
stdout:
- contains: "version:"
- match: "\\d+\\.\\d+\\.\\d+"
- contains: "healthy"
- name: "stderr 内容检查"
type: command
command:
exec: "ls"
args: ["/nonexistent-path-checker-test"]
expect:
exitCode: [0, 1, 2]
stderr:
- contains: "No such file"