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 @@
...
@@ -2,18 +2,15 @@
# 确认事件
# 确认事件
# 作者: 陈磊
# 作者: 陈磊
# 时间: 2019-10-24
# 时间: 2019-10-24
from
WorkApi.ApiBase
import
ApiBase
from
WorkUtils.UtilsRequest
import
UtilsRequest
from
WorkUtils.UtilsRequest
import
UtilsRequest
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsLog
import
UtilsLog
class
ProblemAcknowledge
(
object
):
class
ProblemAcknowledge
(
object
):
def
__init__
(
self
,
_host
,
eventids
=
None
,
action
=
None
,
message
=
None
,
severity
=
None
):
def
__init__
(
self
,
_host
):
"""
"""
:param _host: 域名
:param _host: 域名
:param eventids: 应用ID
:param action : 主机组的ID
:param message: 应用名称
:param severity: 应用程序的来源
:return:
:return:
"""
"""
self
.
log
=
UtilsLog
()
self
.
log
=
UtilsLog
()
...
@@ -28,18 +25,19 @@ class ProblemAcknowledge(object):
...
@@ -28,18 +25,19 @@ class ProblemAcknowledge(object):
self
.
_json
=
{}
self
.
_json
=
{}
self
.
response
=
""
self
.
response
=
""
self
.
eventids
=
eventids
self
.
eventids
=
None
self
.
action
=
action
self
.
action
=
None
self
.
message
=
messag
e
self
.
message
=
Non
e
self
.
severity
=
severity
self
.
severity
=
None
self
.
api
=
UtilsRequest
()
self
.
api
=
UtilsRequest
()
def
get_response
(
self
):
def
get_response
(
self
):
self
.
_json
=
{
base
=
ApiBase
()
"eventids"
:
self
.
eventids
,
base
.
dict_add_key
(
_key
=
"eventids"
,
value
=
self
.
eventids
)
"action"
:
self
.
action
,
base
.
dict_add_key
(
_key
=
"action"
,
value
=
self
.
action
)
"message"
:
self
.
message
,
base
.
dict_add_key
(
_key
=
"message"
,
value
=
self
.
message
)
"severity"
:
self
.
severity
,
base
.
dict_add_key
(
_key
=
"severity"
,
value
=
self
.
severity
)
}
self
.
_json
=
base
.
_json
self
.
response
=
self
.
api
.
post
(
url
=
self
.
_url
,
json
=
self
.
_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 @@
...
@@ -5,17 +5,23 @@
from
__future__
import
division
from
__future__
import
division
from
WorkApi.API.Host.host_create
import
HostCreate
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsDataBase
import
UtilsDataBase
from
WorkUtils.UtilsDataBase
import
UtilsDataBase
from
WorkUtils.UtilsResponse
import
UtilsResponse
from
WorkUtils.UtilsResponse
import
UtilsResponse
from
WorkApi.API.Problem.problem_acknowledge
import
ProblemAcknowledge
from
WorkApi.API.Problem.problem_acknowledge
import
ProblemAcknowledge
from
WorkData.Zabbix.hosts
import
DataHosts
from
WorkData.Zabbix.events
import
DataEvents
from
WorkData.Zabbix.events
import
DataEvents
from
WorkData.Zabbix.items
import
DataItems
from
WorkData.Zabbix.functions
import
DataFunctions
from
WorkCase
import
CaseBase
from
WorkCase
import
CaseBase
import
allure
import
allure
import
time
@allure.feature
(
"测试模块:problem.acknowledge"
)
@allure.feature
(
"测试模块:problem.acknowledge"
)
...
@@ -30,16 +36,45 @@ class TestProblemAcknowledge(object):
...
@@ -30,16 +36,45 @@ class TestProblemAcknowledge(object):
db_base
=
env
[
"db_base"
]
db_base
=
env
[
"db_base"
]
base_name
=
"SS EVENT"
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
@classmethod
def
setup_class
(
cls
):
def
setup_class
(
cls
):
cls
.
log
.
debug
(
"开始执行测试套件......."
)
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
)
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
@classmethod
def
teardown_class
(
cls
):
def
teardown_class
(
cls
):
cls
.
log
.
debug
(
"结束执行测试套件......."
)
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
):
def
setup_method
(
self
):
self
.
log
.
debug
(
"测试用例执行开始..."
)
self
.
log
.
debug
(
"测试用例执行开始..."
)
...
@@ -66,6 +101,18 @@ class TestProblemAcknowledge(object):
...
@@ -66,6 +101,18 @@ class TestProblemAcknowledge(object):
sql
=
DataEvents
()
.
select_all_from_allKeys
(
session
=
session
,
eventid
=
eventid
,
objectid
=
objectid
)
sql
=
DataEvents
()
.
select_all_from_allKeys
(
session
=
session
,
eventid
=
eventid
,
objectid
=
objectid
)
return
sql
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"
)
@allure.step
(
"新增表数据:events"
)
def
insert_events
(
self
,
eventid
=
None
,
source
=
None
,
_object
=
None
,
objectid
=
None
,
clock
=
None
,
value
=
None
,
acknowledged
=
None
,
def
insert_events
(
self
,
eventid
=
None
,
source
=
None
,
_object
=
None
,
objectid
=
None
,
clock
=
None
,
value
=
None
,
acknowledged
=
None
,
ns
=
None
,
name
=
None
,
severity
=
None
):
ns
=
None
,
name
=
None
,
severity
=
None
):
...
@@ -94,10 +141,75 @@ class TestProblemAcknowledge(object):
...
@@ -94,10 +141,75 @@ class TestProblemAcknowledge(object):
_msg
=
UtilsResponse
()
.
get_msg
(
response
=
response
)
_msg
=
UtilsResponse
()
.
get_msg
(
response
=
response
)
assert
_msg
==
msg
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
(
"创建测试数据"
)
@allure.step
(
"创建测试数据"
)
def
case_create
(
self
,
eventid
):
def
case_create
(
self
,
num
,
objectid
,
acknowledged
):
self
.
insert_events
(
eventid
=
eventid
,
source
=
0
,
_object
=
0
,
objectid
=
10000
,
clock
=
1568790047
,
value
=
1
,
acknowledged
=
1
,
ns
=
937649172
,
self
.
eventid
=
self
.
base_eventid
+
int
(
num
)
name
=
self
.
base_name
,
severity
=
0
)
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.title
(
"problem.acknowledge:action为空,返回异常"
)
@allure.story
(
"告警忽略/关闭:action为空,返回异常"
)
@allure.story
(
"告警忽略/关闭:action为空,返回异常"
)
...
@@ -114,21 +226,49 @@ class TestProblemAcknowledge(object):
...
@@ -114,21 +226,49 @@ class TestProblemAcknowledge(object):
self
.
check_code
(
response
=
response
,
code
=
100
)
self
.
check_code
(
response
=
response
,
code
=
100
)
self
.
check_msg
(
response
=
response
,
msg
=
"[eventids]不能为空"
)
self
.
check_msg
(
response
=
response
,
msg
=
"[eventids]不能为空"
)
@allure.title
(
"problem.acknowledge:action=1 关闭告警"
)
@allure.title
(
"problem.acknowledge:action=1 关闭
一个
告警"
)
@allure.story
(
"告警忽略/关闭:action=1 关闭告警"
)
@allure.story
(
"告警忽略/关闭:action=1 关闭
一个
告警"
)
def
test_case_03
(
self
):
def
test_case_03
(
self
):
event_id
=
1
self
.
case_create_host
(
num
=
"03"
)
self
.
case_create
(
eventid
=
event_id
)
self
.
case_create
(
num
=
"03"
,
objectid
=
self
.
triggers_ids
[
0
],
acknowledged
=
0
)
response
=
self
.
problem_acknowledge
(
eventids
=
[
event_
id
],
action
=
1
)
response
=
self
.
problem_acknowledge
(
eventids
=
[
self
.
event
id
],
action
=
1
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_sql
(
eventid
=
self
.
eventid
)
@allure.title
(
"problem.acknowledge:action=2 忽略告警"
)
@allure.title
(
"problem.acknowledge:action=2 忽略
一个
告警"
)
@allure.story
(
"告警忽略/关闭:action=2 忽略告警"
)
@allure.story
(
"告警忽略/关闭:action=2 忽略
一个
告警"
)
def
test_case_04
(
self
):
def
test_case_04
(
self
):
event_id
=
2
self
.
case_create_host
(
num
=
"04"
)
self
.
case_create
(
eventid
=
event_id
)
self
.
case_create
(
num
=
"04"
,
objectid
=
self
.
triggers_ids
[
0
],
acknowledged
=
0
)
response
=
self
.
problem_acknowledge
(
eventids
=
[
event_id
],
action
=
2
)
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_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__"
:
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