Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zmops-test
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sanshi
zmops-test
Commits
ff09f2d7
Commit
ff09f2d7
authored
Dec 11, 2019
by
sanshi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
事件表更
parent
37378dab
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
167 additions
and
29 deletions
+167
-29
problem_acknowledge.py
WorkApi/API/Problem/problem_acknowledge.py
+13
-15
test_problem_acknowledge.py
WorkCase/API/Problem/test_problem_acknowledge.py
+154
-14
No files found.
WorkApi/API/Problem/problem_acknowledge.py
View file @
ff09f2d7
...
...
@@ -2,18 +2,15 @@
# 确认事件
# 作者: 陈磊
# 时间: 2019-10-24
from
WorkApi.ApiBase
import
ApiBase
from
WorkUtils.UtilsRequest
import
UtilsRequest
from
WorkUtils.UtilsLog
import
UtilsLog
class
ProblemAcknowledge
(
object
):
def
__init__
(
self
,
_host
,
eventids
=
None
,
action
=
None
,
message
=
None
,
severity
=
None
):
def
__init__
(
self
,
_host
):
"""
:param _host: 域名
:param eventids: 应用ID
:param action : 主机组的ID
:param message: 应用名称
:param severity: 应用程序的来源
:return:
"""
self
.
log
=
UtilsLog
()
...
...
@@ -28,18 +25,19 @@ class ProblemAcknowledge(object):
self
.
_json
=
{}
self
.
response
=
""
self
.
eventids
=
eventids
self
.
action
=
action
self
.
message
=
messag
e
self
.
severity
=
severity
self
.
eventids
=
None
self
.
action
=
None
self
.
message
=
Non
e
self
.
severity
=
None
self
.
api
=
UtilsRequest
()
def
get_response
(
self
):
self
.
_json
=
{
"eventids"
:
self
.
eventids
,
"action"
:
self
.
action
,
"message"
:
self
.
message
,
"severity"
:
self
.
severity
,
}
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"eventids"
,
value
=
self
.
eventids
)
base
.
dict_add_key
(
_key
=
"action"
,
value
=
self
.
action
)
base
.
dict_add_key
(
_key
=
"message"
,
value
=
self
.
message
)
base
.
dict_add_key
(
_key
=
"severity"
,
value
=
self
.
severity
)
self
.
_json
=
base
.
_json
self
.
response
=
self
.
api
.
post
(
url
=
self
.
_url
,
json
=
self
.
_json
)
WorkCase/API/Problem/test_problem_acknowledge.py
View file @
ff09f2d7
...
...
@@ -5,17 +5,23 @@
from
__future__
import
division
from
WorkApi.API.Host.host_create
import
HostCreate
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsDataBase
import
UtilsDataBase
from
WorkUtils.UtilsResponse
import
UtilsResponse
from
WorkApi.API.Problem.problem_acknowledge
import
ProblemAcknowledge
from
WorkData.Zabbix.hosts
import
DataHosts
from
WorkData.Zabbix.events
import
DataEvents
from
WorkData.Zabbix.items
import
DataItems
from
WorkData.Zabbix.functions
import
DataFunctions
from
WorkCase
import
CaseBase
import
allure
import
time
@allure.feature
(
"测试模块:problem.acknowledge"
)
...
...
@@ -30,16 +36,45 @@ class TestProblemAcknowledge(object):
db_base
=
env
[
"db_base"
]
base_name
=
"SS EVENT"
base_host_name
=
"SS HOST EVENT"
base_description
=
"SS 自动化专用 告警"
base_ip
=
"172.16.3.170"
base_groupid
=
99
base_port
=
161
base_eventid
=
92000000
base_type_snmp
=
10186
@classmethod
def
setup_class
(
cls
):
cls
.
log
.
debug
(
"开始执行测试套件......."
)
session
=
UtilsDataBase
()
.
conn_mysql
(
db_url
=
cls
.
db_url
,
db_port
=
cls
.
db_port
,
db_base
=
cls
.
db_base
,
db_user
=
cls
.
db_user
,
db_pw
=
cls
.
db_pw
)
DataEvents
()
.
delete_name
(
session
=
session
,
name
=
cls
.
base_name
)
sql
=
DataHosts
()
.
select_like_name
(
session
=
session
,
name
=
cls
.
base_host_name
)
for
x
,
y
in
enumerate
(
sql
):
session
=
UtilsDataBase
()
.
conn_mysql
(
db_url
=
cls
.
db_url
,
db_port
=
cls
.
db_port
,
db_base
=
cls
.
db_base
,
db_user
=
cls
.
db_user
,
db_pw
=
cls
.
db_pw
)
DataItems
()
.
delete_hostid
(
session
=
session
,
hostid
=
y
.
hostid
)
session
=
UtilsDataBase
()
.
conn_mysql
(
db_url
=
cls
.
db_url
,
db_port
=
cls
.
db_port
,
db_base
=
cls
.
db_base
,
db_user
=
cls
.
db_user
,
db_pw
=
cls
.
db_pw
)
DataHosts
()
.
delete_like_name
(
session
=
session
,
name
=
cls
.
base_host_name
)
session
=
UtilsDataBase
()
.
conn_mysql
(
db_url
=
cls
.
db_url
,
db_port
=
cls
.
db_port
,
db_base
=
cls
.
db_base
,
db_user
=
cls
.
db_user
,
db_pw
=
cls
.
db_pw
)
DataEvents
()
.
delete_like_name
(
session
=
session
,
name
=
cls
.
base_name
)
@classmethod
def
teardown_class
(
cls
):
cls
.
log
.
debug
(
"结束执行测试套件......."
)
session
=
UtilsDataBase
()
.
conn_mysql
(
db_url
=
cls
.
db_url
,
db_port
=
cls
.
db_port
,
db_base
=
cls
.
db_base
,
db_user
=
cls
.
db_user
,
db_pw
=
cls
.
db_pw
)
sql
=
DataHosts
()
.
select_like_name
(
session
=
session
,
name
=
cls
.
base_host_name
)
for
x
,
y
in
enumerate
(
sql
):
session
=
UtilsDataBase
()
.
conn_mysql
(
db_url
=
cls
.
db_url
,
db_port
=
cls
.
db_port
,
db_base
=
cls
.
db_base
,
db_user
=
cls
.
db_user
,
db_pw
=
cls
.
db_pw
)
DataItems
()
.
delete_hostid
(
session
=
session
,
hostid
=
y
.
hostid
)
session
=
UtilsDataBase
()
.
conn_mysql
(
db_url
=
cls
.
db_url
,
db_port
=
cls
.
db_port
,
db_base
=
cls
.
db_base
,
db_user
=
cls
.
db_user
,
db_pw
=
cls
.
db_pw
)
DataHosts
()
.
delete_like_name
(
session
=
session
,
name
=
cls
.
base_host_name
)
session
=
UtilsDataBase
()
.
conn_mysql
(
db_url
=
cls
.
db_url
,
db_port
=
cls
.
db_port
,
db_base
=
cls
.
db_base
,
db_user
=
cls
.
db_user
,
db_pw
=
cls
.
db_pw
)
DataEvents
()
.
delete_like_name
(
session
=
session
,
name
=
cls
.
base_name
)
def
setup_method
(
self
):
self
.
log
.
debug
(
"测试用例执行开始..."
)
...
...
@@ -66,6 +101,18 @@ class TestProblemAcknowledge(object):
sql
=
DataEvents
()
.
select_all_from_allKeys
(
session
=
session
,
eventid
=
eventid
,
objectid
=
objectid
)
return
sql
@allure.step
(
"查询表:items"
)
def
select_items
(
self
,
hostid
=
None
):
session
=
self
.
db_session
()
sql
=
DataItems
()
.
select_all_from_allKeys
(
session
=
session
,
hostid
=
hostid
)
return
sql
@allure.step
(
"查询表:items"
)
def
select_functions
(
self
,
itemid
=
None
):
session
=
self
.
db_session
()
sql
=
DataFunctions
()
.
select_all_from_allKeys
(
session
=
session
,
itemid
=
itemid
)
return
sql
@allure.step
(
"新增表数据:events"
)
def
insert_events
(
self
,
eventid
=
None
,
source
=
None
,
_object
=
None
,
objectid
=
None
,
clock
=
None
,
value
=
None
,
acknowledged
=
None
,
ns
=
None
,
name
=
None
,
severity
=
None
):
...
...
@@ -94,10 +141,75 @@ class TestProblemAcknowledge(object):
_msg
=
UtilsResponse
()
.
get_msg
(
response
=
response
)
assert
_msg
==
msg
@allure.step
(
"调用接口:host.create"
)
def
host_create
(
self
,
host
=
None
,
name
=
None
,
description
=
None
,
groupids
=
None
,
interfaces
=
None
,
tags
=
None
,
templateids
=
None
,
macros
=
None
,
inventory
=
None
,
status
=
None
,
inventory_mode
=
None
):
api
=
HostCreate
(
_host
=
self
.
host
)
api
.
host
=
host
api
.
name
=
name
api
.
description
=
description
api
.
groupids
=
groupids
api
.
interfaces
=
interfaces
api
.
tags
=
tags
api
.
templateids
=
templateids
api
.
macros
=
macros
api
.
inventory
=
inventory
api
.
status
=
status
api
.
inventory_mode
=
inventory_mode
api
.
tls_connect
=
1
api
.
tls_accept
=
1
api
.
tls_psk_identity
=
""
api
.
tls_psk
=
""
api
.
get_response
()
return
api
.
response
@allure.step
(
"创建测试数据"
)
def
case_create_host
(
self
,
num
):
host
=
self
.
base_host_name
+
num
description
=
self
.
base_description
+
num
interfaces
=
{
"type"
:
2
,
"main"
:
1
,
"useip"
:
1
,
"ip"
:
self
.
base_ip
,
"dns"
:
""
,
"port"
:
self
.
base_port
,
"bulk"
:
1
}
response
=
self
.
host_create
(
host
=
host
,
description
=
description
,
groupids
=
[
self
.
base_groupid
],
interfaces
=
[
interfaces
],
status
=
0
,
templateids
=
[
self
.
base_type_snmp
],
macros
=
[{
"macro"
:
"{$SNMP_COMMUNITY}"
,
"value"
:
"public"
}])
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
hostid
=
UtilsResponse
()
.
get_result
(
response
=
response
)[
"hostids"
][
0
]
sql_items
=
self
.
select_items
(
hostid
=
self
.
hostid
)
self
.
triggers_ids
=
[]
for
x
,
y
in
enumerate
(
sql_items
):
sql_functions
=
self
.
select_functions
(
itemid
=
y
.
itemid
)
for
q
,
w
in
enumerate
(
sql_functions
):
self
.
triggers_ids
.
append
(
w
.
triggerid
)
return
self
.
hostid
@allure.step
(
"创建测试数据"
)
def
case_create
(
self
,
eventid
):
self
.
insert_events
(
eventid
=
eventid
,
source
=
0
,
_object
=
0
,
objectid
=
10000
,
clock
=
1568790047
,
value
=
1
,
acknowledged
=
1
,
ns
=
937649172
,
name
=
self
.
base_name
,
severity
=
0
)
def
case_create
(
self
,
num
,
objectid
,
acknowledged
):
self
.
eventid
=
self
.
base_eventid
+
int
(
num
)
self
.
name
=
self
.
base_name
+
num
self
.
insert_events
(
eventid
=
self
.
eventid
,
source
=
0
,
_object
=
0
,
objectid
=
objectid
,
clock
=
0
,
value
=
1
,
acknowledged
=
acknowledged
,
ns
=
int
(
time
.
time
()),
name
=
self
.
name
,
severity
=
0
)
return
self
.
eventid
@allure.step
(
"校验告警状态"
)
def
check_sql
(
self
,
eventid
):
sql
=
self
.
select_events
(
eventid
=
eventid
)
assert
sql
!=
[]
for
x
,
y
in
enumerate
(
sql
):
assert
y
.
acknowledged
==
1
assert
x
==
0
@allure.title
(
"problem.acknowledge:action为空,返回异常"
)
@allure.story
(
"告警忽略/关闭:action为空,返回异常"
)
...
...
@@ -114,21 +226,49 @@ class TestProblemAcknowledge(object):
self
.
check_code
(
response
=
response
,
code
=
100
)
self
.
check_msg
(
response
=
response
,
msg
=
"[eventids]不能为空"
)
@allure.title
(
"problem.acknowledge:action=1 关闭告警"
)
@allure.story
(
"告警忽略/关闭:action=1 关闭告警"
)
@allure.title
(
"problem.acknowledge:action=1 关闭
一个
告警"
)
@allure.story
(
"告警忽略/关闭:action=1 关闭
一个
告警"
)
def
test_case_03
(
self
):
event_id
=
1
self
.
case_create
(
eventid
=
event_id
)
response
=
self
.
problem_acknowledge
(
eventids
=
[
event_
id
],
action
=
1
)
self
.
case_create_host
(
num
=
"03"
)
self
.
case_create
(
num
=
"03"
,
objectid
=
self
.
triggers_ids
[
0
],
acknowledged
=
0
)
response
=
self
.
problem_acknowledge
(
eventids
=
[
self
.
event
id
],
action
=
1
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_sql
(
eventid
=
self
.
eventid
)
@allure.title
(
"problem.acknowledge:action=2 忽略告警"
)
@allure.story
(
"告警忽略/关闭:action=2 忽略告警"
)
@allure.title
(
"problem.acknowledge:action=2 忽略
一个
告警"
)
@allure.story
(
"告警忽略/关闭:action=2 忽略
一个
告警"
)
def
test_case_04
(
self
):
event_id
=
2
self
.
case_create
(
eventid
=
event_id
)
response
=
self
.
problem_acknowledge
(
eventids
=
[
event_id
],
action
=
2
)
self
.
case_create_host
(
num
=
"04"
)
self
.
case_create
(
num
=
"04"
,
objectid
=
self
.
triggers_ids
[
0
],
acknowledged
=
0
)
response
=
self
.
problem_acknowledge
(
eventids
=
[
self
.
eventid
],
action
=
2
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_sql
(
eventid
=
self
.
eventid
)
@allure.title
(
"problem.acknowledge:action=1 关闭多个告警"
)
@allure.story
(
"告警忽略/关闭:action=1 关闭多个告警"
)
def
test_case_05
(
self
):
self
.
case_create_host
(
num
=
"05"
)
eventid_1
=
self
.
case_create
(
num
=
"051"
,
objectid
=
self
.
triggers_ids
[
0
],
acknowledged
=
0
)
eventid_2
=
self
.
case_create
(
num
=
"052"
,
objectid
=
self
.
triggers_ids
[
1
],
acknowledged
=
0
)
eventid_3
=
self
.
case_create
(
num
=
"053"
,
objectid
=
self
.
triggers_ids
[
2
],
acknowledged
=
0
)
response
=
self
.
problem_acknowledge
(
eventids
=
[
eventid_1
,
eventid_2
,
eventid_3
],
action
=
1
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_sql
(
eventid
=
eventid_1
)
self
.
check_sql
(
eventid
=
eventid_2
)
self
.
check_sql
(
eventid
=
eventid_3
)
@allure.title
(
"problem.acknowledge:action=2 忽略多个告警"
)
@allure.story
(
"告警忽略/关闭:action=2 忽略多个告警"
)
def
test_case_06
(
self
):
self
.
case_create_host
(
num
=
"06"
)
eventid_1
=
self
.
case_create
(
num
=
"061"
,
objectid
=
self
.
triggers_ids
[
0
],
acknowledged
=
0
)
eventid_2
=
self
.
case_create
(
num
=
"062"
,
objectid
=
self
.
triggers_ids
[
1
],
acknowledged
=
0
)
eventid_3
=
self
.
case_create
(
num
=
"063"
,
objectid
=
self
.
triggers_ids
[
2
],
acknowledged
=
0
)
response
=
self
.
problem_acknowledge
(
eventids
=
[
eventid_1
,
eventid_2
,
eventid_3
],
action
=
2
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_sql
(
eventid
=
eventid_1
)
self
.
check_sql
(
eventid
=
eventid_2
)
self
.
check_sql
(
eventid
=
eventid_3
)
if
__name__
==
"__main__"
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment