479 lines
13 KiB
YAML
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
|