Files
apache--hertzbeat/e2e/testsuite.yaml
T
wehub-resource-sync c8cebdfeee
MCP Bash Server CI / Test MCP Bash Server (dev) (push) Waiting to run
MCP Bash Server CI / Test MCP Bash Server (release) (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 13:11:39 +08:00

479 lines
13 KiB
YAML

#!api-testing
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# yaml-language-server: $schema=https://linuxsuren.github.io/api-testing/api-testing-schema.json
name: hertzbeat
api: |
{{default "http://localhost:1157" (env "SERVER")}}
param:
monitorHTTP: "{{randAlpha 6}}"
monitorSiteMap: "{{randAlpha 6}}"
monitorPort: "{{randAlpha 6}}"
monitorSSL: "{{randAlpha 6}}"
monitorPing: "{{randAlpha 6}}"
monitorUDP: "{{randAlpha 6}}"
monitorWebsite: "{{randAlpha 6}}"
monitorFTP: "{{randAlpha 6}}"
apiTokenName: "e2e-token-{{randAlpha 6}}"
labelName: "{{randAlpha 3}}"
items:
- name: login
request:
api: /api/account/auth/form
method: POST
header:
Content-type: application/json
body: |
{
"type": 0,
"identifier": "admin",
"credential": "hertzbeat"
}
expect:
bodyFieldsExpect:
code: "0"
- name: login-missing-content-type
request:
api: /api/account/auth/form
method: POST
body: |
{
"type": 0,
"identifier": "admin",
"credential": "hertzbeat"
}
expect:
statusCode: 500
- name: monitorList
request:
api: /api/monitors?pageIndex=0&pageSize=8
header:
Authorization: Bearer {{.login.data.token}}
expect:
bodyFieldsExpect:
code: "0"
- name: missing-auth-header
request:
api: /api/monitors
header:
Accept: application/json
expect:
statusCode: 401
- name: createSitemapMonitor
request:
api: /api/monitor
method: POST
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
bodyFromFile: data/monitor-sitemap.json
- name: listSitemapMonitor
request:
api: /api/monitors?pageIndex=0&pageSize=8&app=fullsite
header:
Authorization: Bearer {{.login.data.token}}
- name: cancelSitemapMonitor
request:
api: /api/monitors/manage?ids={{(index .listSitemapMonitor.data.content 0).id | int64}}
query:
type: JSON
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: deleteSitemapMonitor
request:
api: /api/monitors?ids={{(index .listSitemapMonitor.data.content 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: createPortMonitor
request:
api: /api/monitor
method: POST
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
bodyFromFile: data/monitor-port.json
- name: listPortMonitor
request:
api: /api/monitors?pageIndex=0&pageSize=8&app=port
header:
Authorization: Bearer {{.login.data.token}}
- name: cancelPortMonitor
request:
api: /api/monitors/manage?ids={{(index .listPortMonitor.data.content 0).id | int64}}
query:
type: JSON
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: deletePortMonitor
request:
api: /api/monitors?ids={{(index .listPortMonitor.data.content 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: createSSLMonitor
request:
api: /api/monitor
method: POST
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
bodyFromFile: data/monitor-ssl.json
- name: listSSLMonitor
request:
api: /api/monitors?pageIndex=0&pageSize=8&app=ssl_cert
header:
Authorization: Bearer {{.login.data.token}}
- name: cancelSSLMonitor
request:
api: /api/monitors/manage?ids={{(index .listSSLMonitor.data.content 0).id | int64}}
query:
type: JSON
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: deleteSSLMonitor
request:
api: /api/monitors?ids={{(index .listSSLMonitor.data.content 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: createPingMonitor
request:
api: /api/monitor
method: POST
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
bodyFromFile: data/monitor-ping.json
- name: listPingMonitor
request:
api: /api/monitors?pageIndex=0&pageSize=8&app=ping
header:
Authorization: Bearer {{.login.data.token}}
- name: cancelPingMonitor
request:
api: /api/monitors/manage?ids={{(index .listPingMonitor.data.content 0).id | int64}}
query:
type: JSON
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: deletePingMonitor
request:
api: /api/monitors?ids={{(index .listPingMonitor.data.content 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: createUDPMonitor
request:
api: /api/monitor
method: POST
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
bodyFromFile: data/monitor-udp.json
- name: listUDPMonitor
request:
api: /api/monitors?pageIndex=0&pageSize=8&app=udp_port
header:
Authorization: Bearer {{.login.data.token}}
- name: cancelUDPMonitor
request:
api: /api/monitors/manage?ids={{(index .listUDPMonitor.data.content 0).id | int64}}
query:
type: JSON
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: deleteUDPMonitor
request:
api: /api/monitors?ids={{(index .listUDPMonitor.data.content 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: createWebsiteMonitor
request:
api: /api/monitor
method: POST
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
bodyFromFile: data/monitor-website.json
- name: listWebsiteMonitor
request:
api: /api/monitors?pageIndex=0&pageSize=8&app=website
header:
Authorization: Bearer {{.login.data.token}}
- name: cancelWebsiteMonitor
request:
api: /api/monitors/manage?ids={{(index .listWebsiteMonitor.data.content 0).id | int64}}
query:
type: JSON
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: deleteWebsiteMonitor
request:
api: /api/monitors?ids={{(index .listWebsiteMonitor.data.content 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: createFTPMonitor
request:
api: /api/monitor
method: POST
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
bodyFromFile: data/monitor-ftp.json
- name: listFTPMonitor
request:
api: /api/monitors?pageIndex=0&pageSize=8&app=ftp
header:
Authorization: Bearer {{.login.data.token}}
- name: cancelFTPMonitor
request:
api: /api/monitors/manage?ids={{(index .listFTPMonitor.data.content 0).id | int64}}
query:
type: JSON
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: deleteFTPMonitor
request:
api: /api/monitors?ids={{(index .listFTPMonitor.data.content 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: createHTTPMonitor
request:
api: /api/monitor
method: POST
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
bodyFromFile: data/monitor-http.json
- name: listHTTPMonitor
request:
api: /api/monitors?pageIndex=0&pageSize=8&app=api
header:
Authorization: Bearer {{.login.data.token}}
- name: cancelHTTPMonitor
request:
api: /api/monitors/manage?ids={{(index .listHTTPMonitor.data.content 0).id | int64}}
query:
type: JSON
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: deleteHTTPMonitor
request:
api: /api/monitors?ids={{(index .listHTTPMonitor.data.content 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: listAlertDefines
request:
api: /api/alert/defines
header:
Authorization: Bearer {{.login.data.token}}
- name: deleteAlertDefine
request:
api: /api/alert/defines?ids=1
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
- name: listAlertGroupConverges
request:
api: /api/alert/groups
header:
Authorization: Bearer {{.login.data.token}}
- name: listAlertSilences
request:
api: /api/alert/silences
header:
Authorization: Bearer {{.login.data.token}}
- name: listGroupAlerts
request:
api: /api/alerts/group
header:
Authorization: Bearer {{.login.data.token}}
- name: listReceivers
request:
api: /api/notice/receivers
header:
Authorization: Bearer {{.login.data.token}}
- name: listRules
request:
api: /api/notice/rules
header:
Authorization: Bearer {{.login.data.token}}
- name: listTemplates
request:
api: /api/notice/templates
header:
Authorization: Bearer {{.login.data.token}}
- name: listCollectors
request:
api: /api/collector
header:
Authorization: Bearer {{.login.data.token}}
## Label
- name: createLabel
request:
api: /api/label
method: POST
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
body: |
{
"name": "{{.param.labelName}}"
}
- name: listLabels
request:
api: /api/label?pageIndex=0&pageSize=8&type=1
header:
Authorization: Bearer {{.login.data.token}}
- name: updateLabel
request:
api: /api/label
method: PUT
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
body: |
{
"id": {{(index .listLabels.data.content 0).id | int64}},
"name": "{{randAlpha 3}}",
"tagValue": "{{randAlpha 3}}",
"type": 1,
"creator": "admin",
"modifier": "admin"
}
expect:
bodyFieldsExpect:
code: "0"
- name: deleteLabel
request:
api: /api/label?ids={{(index .listLabels.data.content 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
## API Token Management
- name: generateApiToken
request:
api: /api/account/token/generate?name={{.apiTokenName}}&expireSeconds=-1
method: POST
header:
Authorization: Bearer {{.login.data.token}}
expect:
bodyFieldsExpect:
code: "0"
- name: listApiTokens
request:
api: /api/account/token
header:
Authorization: Bearer {{.login.data.token}}
expect:
bodyFieldsExpect:
code: "0"
data.0.name: "{{.apiTokenName}}"
data.0.creator: "admin"
- name: listApiTokensByGeneratedToken
request:
api: /api/account/token
header:
Authorization: Bearer {{.generateApiToken.data.token}}
expect:
bodyFieldsExpect:
code: "0"
data.0.name: "{{.apiTokenName}}"
- name: useGeneratedTokenToCallApi
request:
api: /api/monitors?pageIndex=0&pageSize=8
header:
Authorization: Bearer {{.generateApiToken.data.token}}
expect:
bodyFieldsExpect:
code: "0"
- name: deleteApiToken
request:
api: /api/account/token/{{(index .listApiTokens.data 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
expect:
bodyFieldsExpect:
code: "0"
## Config
- name: getConfigEmail
request:
api: /api/config/email
header:
Authorization: Bearer {{.login.data.token}}
- name: getConfigSystem
request:
api: /api/config/system
header:
Authorization: Bearer {{.login.data.token}}
- name: updateSystem
request:
api: /api/config/system
method: POST
body: |
{
"timeZoneId": "Asia/Shanghai",
"locale": "en_US",
"theme": null
}
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
- name: getConfigOSS
request:
api: /api/config/oss
header:
Authorization: Bearer {{.login.data.token}}
- name: updateOSS
request:
api: /api/config/oss
method: POST
body: |
{
"type": "FILE",
"config": {}
}
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json