blob: 1d35c5178f353c325a1bc9729aa9bd7bc10b40bf [file]
#!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}}"
tagName: "{{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: 409
- 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
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}}
## Tag
- name: createTag
request:
api: /api/tag
method: POST
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
body: |
[
{
"color": "#ff4081",
"name": "{{.param.tagName}}"
}
]
- name: listTags
request:
api: /api/tag?pageIndex=0&pageSize=8&type=1
header:
Authorization: Bearer {{.login.data.token}}
- name: updateTag
request:
api: /api/tag
method: PUT
header:
Authorization: Bearer {{.login.data.token}}
Content-type: application/json
body: |
{
"id": {{(index .listTags.data.content 0).id | int64}},
"name": "{{randAlpha 3}}",
"tagValue": "{{randAlpha 3}}",
"color": "#ff4081",
"type": 1,
"creator": "admin",
"modifier": "admin"
}
expect:
bodyFieldsExpect:
code: "0"
- name: deleteTag
request:
api: /api/tag?ids={{(index .listTags.data.content 0).id | int64}}
method: DELETE
header:
Authorization: Bearer {{.login.data.token}}
## 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