Commit c5b17efd by sanshi

告警规则

parent 75397a9e
...@@ -26,10 +26,8 @@ class ExperienceItemsList(object): ...@@ -26,10 +26,8 @@ class ExperienceItemsList(object):
self._data = {} self._data = {}
self.response = "" self.response = ""
self.local_json = {}
self.token = None self.token = None
self.name = None
self.api = UtilsRequest() self.api = UtilsRequest()
def get_response(self): def get_response(self):
...@@ -37,4 +35,8 @@ class ExperienceItemsList(object): ...@@ -37,4 +35,8 @@ class ExperienceItemsList(object):
base.dict_add_key(_key="token", value=self.token) base.dict_add_key(_key="token", value=self.token)
self._headers = base._json self._headers = base._json
base = ApiBase()
base.dict_add_key(_key="name", value=self.name)
self._params = base._json
self.response = self.api.get(url=self._url, params=self._params) self.response = self.api.get(url=self._url, params=self._params)
# -*- coding: utf-8 -*-
# 创建告警规则
# 作者: 陈磊
# 时间: 2019-11-28
from WorkUtils.UtilsRequest import UtilsRequest
from WorkUtils.UtilsLog import UtilsLog
from WorkApi.ApiBase import ApiBase, GetBase
class RuleCreate(object):
def __init__(self, _host):
"""
:param _host: 域名
:return:
"""
self.log = UtilsLog()
self.log.info("调用创建告警规则")
self.log.info(self.__class__)
self._host = _host
self._headers = {}
self._path = "/rule/create"
self._url = self._host + self._path
self._params = {}
self._json = {}
self._data = {}
self.response = ""
self.token = None
self.name = None
self.severity = None
self.url = None
self.description = None
self.status = None
self.manualClose = None
self.enableTimeDefault = None
self.period = None
self.periodType = None
self.triggersList = None
self.triggersList_hostid = None
self.triggersList_hostName = None
self.triggersList_itemid = None
self.triggersList_itemName = None
self.triggersList_function = None
self.triggersList_parameters = None
self.triggersList_parameters_value = None
self.triggersList_parameters_unit = None
self.triggersList_operator = None
self.triggersList_constant = None
self.triggersList_logicalSymbol = None
self.triggersList_onlineFlag = None
self.api = UtilsRequest()
def get_response(self):
base = ApiBase()
base.dict_add_key(_key="token", value=self.token)
self._headers = base._json
if self.triggersList_parameters_value is not None:
self.triggersList_parameters = []
for x, y in enumerate(self.triggersList_parameters_value):
base = ApiBase()
base.dict_add_key(_key="value", value=self.triggersList_parameters_value, num=x)
base.dict_add_key(_key="unit", value=self.triggersList_parameters_unit, num=x)
self.triggersList_parameters.append(base._json)
else:
pass
if self.triggersList_hostid is not None:
self.triggersList = []
for x, y in enumerate(self.triggersList_hostid):
base = ApiBase()
base.dict_add_key(_key="hostid", value=self.triggersList_hostid, num=x)
base.dict_add_key(_key="hostName", value=self.triggersList_hostName, num=x)
base.dict_add_key(_key="itemid", value=self.triggersList_itemid, num=x)
base.dict_add_key(_key="itemName", value=self.triggersList_itemName, num=x)
base.dict_add_key(_key="function", value=self.triggersList_function, num=x)
base.dict_add_key(_key="parameters", value=self.triggersList_parameters)
base.dict_add_key(_key="operator", value=self.triggersList_operator, num=x)
base.dict_add_key(_key="constant", value=self.triggersList_constant, num=x)
base.dict_add_key(_key="logicalSymbol", value=self.triggersList_logicalSymbol, num=x)
base.dict_add_key(_key="onlineFlag", value=self.triggersList_onlineFlag, num=x)
self.triggersList.append(base._json)
else:
pass
base = ApiBase()
base.dict_add_key(_key="name", value=self.name)
base.dict_add_key(_key="severity", value=self.severity)
base.dict_add_key(_key="url", value=self.url)
base.dict_add_key(_key="description", value=self.description)
base.dict_add_key(_key="status", value=self.status)
base.dict_add_key(_key="manualClose", value=self.manualClose)
base.dict_add_key(_key="enableTimeDefault", value=self.enableTimeDefault)
base.dict_add_key(_key="period", value=self.period)
base.dict_add_key(_key="periodType", value=self.periodType)
base.dict_add_key(_key="triggersList", value=self.triggersList)
base.dict_add_key(_key="period", value=self.period)
base.dict_add_key(_key="severity", value=self.severity)
self._json = base._json
self.response = self.api.post(url=self._url, headers=self._headers, json=self._json)
# -*- coding: utf-8 -*-
# 删除告警规则
# 作者: 陈磊
# 时间: 2019-11-28
from WorkUtils.UtilsRequest import UtilsRequest
from WorkUtils.UtilsLog import UtilsLog
from WorkApi.ApiBase import ApiBase, GetBase
class RuleDelete(object):
def __init__(self, _host):
"""
:param _host: 域名
:return:
"""
self.log = UtilsLog()
self.log.info("调用删除告警规则")
self.log.info(self.__class__)
self._host = _host
self._headers = {}
self._path = "/rule/delete"
self._url = self._host + self._path
self._params = {}
self._json = {}
self._data = {}
self.response = ""
self.token = None
self.alarmRuleidList = None
self.api = UtilsRequest()
def get_response(self):
base = ApiBase()
base.dict_add_key(_key="token", value=self.token)
self._headers = base._json
base = ApiBase()
base.dict_add_key(_key="alarmRuleidList", value=self.alarmRuleidList)
self._json = base._json
self.response = self.api.post(url=self._url, headers=self._headers, json=self._json)
# -*- coding: utf-8 -*-
# 查询告警规则
# 作者: 陈磊
# 时间: 2019-11-28
from WorkUtils.UtilsRequest import UtilsRequest
from WorkUtils.UtilsLog import UtilsLog
from WorkApi.ApiBase import ApiBase, GetBase
class RuleGet(object):
def __init__(self, _host):
"""
:param _host: 域名
:return:
"""
self.log = UtilsLog()
self.log.info("调用查询告警规则")
self.log.info(self.__class__)
self._host = _host
self._headers = {}
self._path = "/rule/get"
self._url = self._host + self._path
self._params = {}
self._json = {}
self._data = {}
self.response = ""
self.token = None
self.severity = None
self.status = None
self.itemid = None
self.manageLevel = None
self.manageIp = None
self.hostName = None
self.api = UtilsRequest()
def get_response(self):
base = ApiBase()
base.dict_add_key(_key="token", value=self.token)
self._headers = base._json
base = ApiBase()
base.dict_add_key(_key="severity", value=self.severity)
base.dict_add_key(_key="status", value=self.status)
base.dict_add_key(_key="itemid", value=self.itemid)
base.dict_add_key(_key="manageLevel", value=self.manageLevel)
base.dict_add_key(_key="manageIp", value=self.manageIp)
base.dict_add_key(_key="hostName", value=self.hostName)
self._params = base._json
self.response = self.api.get(url=self._url, headers=self._headers, params=self._params)
# -*- coding: utf-8 -*-
# 更新告警规则
# 作者: 陈磊
# 时间: 2019-11-28
from WorkUtils.UtilsRequest import UtilsRequest
from WorkUtils.UtilsLog import UtilsLog
from WorkApi.ApiBase import ApiBase, GetBase
class RuleUpdate(object):
def __init__(self, _host):
"""
:param _host: 域名
:return:
"""
self.log = UtilsLog()
self.log.info("调用更新告警规则")
self.log.info(self.__class__)
self._host = _host
self._headers = {}
self._path = "/rule/update"
self._url = self._host + self._path
self._params = {}
self._json = {}
self._data = {}
self.response = ""
self.token = None
self.alarmRuleId = None
self.name = None
self.severity = None
self.url = None
self.description = None
self.status = None
self.manualClose = None
self.enableTimeDefault = None
self.period = None
self.periodType = None
self.triggersList = None
self.triggersList_hostid = None
self.triggersList_hostName = None
self.triggersList_itemid = None
self.triggersList_itemName = None
self.triggersList_parameters = None
self.triggersList_parameters_value = None
self.triggersList_parameters_unit = None
self.triggersList_operator = None
self.triggersList_constant = None
self.triggersList_logicalSymbol = None
self.triggersList_onlineFlag = None
self.api = UtilsRequest()
def get_response(self):
base = ApiBase()
base.dict_add_key(_key="token", value=self.token)
self._headers = base._json
if self.triggersList_parameters_value is not None:
self.triggersList_parameters = []
for x, y in enumerate(self.triggersList_parameters_value):
base = ApiBase()
base.dict_add_key(_key="value", value=self.triggersList_parameters_value, num=x)
base.dict_add_key(_key="unit", value=self.triggersList_parameters_unit, num=x)
self.triggersList_parameters.append(base._json)
else:
pass
if self.triggersList_hostid is not None:
self.triggersList = []
for x, y in enumerate(self.triggersList_hostid):
base = ApiBase()
base.dict_add_key(_key="hostid", value=self.triggersList_hostid, num=x)
base.dict_add_key(_key="hostName", value=self.triggersList_hostName, num=x)
base.dict_add_key(_key="itemid", value=self.triggersList_itemid, num=x)
base.dict_add_key(_key="itemName", value=self.triggersList_itemName, num=x)
base.dict_add_key(_key="parameters", value=self.triggersList_parameters, num=x)
base.dict_add_key(_key="operator", value=self.triggersList_operator, num=x)
base.dict_add_key(_key="constant", value=self.triggersList_constant, num=x)
base.dict_add_key(_key="logicalSymbol", value=self.triggersList_logicalSymbol, num=x)
base.dict_add_key(_key="onlineFlag", value=self.triggersList_onlineFlag, num=x)
self.triggersList.append(base._json)
else:
pass
base = ApiBase()
base.dict_add_key(_key="alarmRuleId", value=self.alarmRuleId)
base.dict_add_key(_key="name", value=self.name)
base.dict_add_key(_key="severity", value=self.severity)
base.dict_add_key(_key="url", value=self.url)
base.dict_add_key(_key="description", value=self.description)
base.dict_add_key(_key="status", value=self.status)
base.dict_add_key(_key="manualClose", value=self.manualClose)
base.dict_add_key(_key="enableTimeDefault", value=self.enableTimeDefault)
base.dict_add_key(_key="period", value=self.period)
base.dict_add_key(_key="periodType", value=self.periodType)
base.dict_add_key(_key="triggersList", value=self.triggersList)
base.dict_add_key(_key="period", value=self.period)
base.dict_add_key(_key="severity", value=self.severity)
self._json = base._json
self.response = self.api.post(url=self._url, headers=self._headers, json=self._json)
...@@ -30,7 +30,7 @@ class TestTriggerCreate(object): ...@@ -30,7 +30,7 @@ class TestTriggerCreate(object):
db_pw = env["db_pw"] db_pw = env["db_pw"]
db_base = env["db_base"] db_base = env["db_base"]
base_name = "SS测试主机" base_name = "SS测试主机"
base_description = "SS测试触发器" base_description = "SS测试触发器-创建"
base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1" base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1"
@classmethod @classmethod
......
...@@ -30,8 +30,7 @@ class TestTriggerDelete(object): ...@@ -30,8 +30,7 @@ class TestTriggerDelete(object):
db_user = env["db_user"] db_user = env["db_user"]
db_pw = env["db_pw"] db_pw = env["db_pw"]
db_base = env["db_base"] db_base = env["db_base"]
base_name = "SS测试主机原型" base_description = "SS测试触发器-删除"
base_description = "SS测试触发器"
base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1" base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1"
@classmethod @classmethod
......
...@@ -31,8 +31,7 @@ class TestTriggerGet(object): ...@@ -31,8 +31,7 @@ class TestTriggerGet(object):
db_user = env["db_user"] db_user = env["db_user"]
db_pw = env["db_pw"] db_pw = env["db_pw"]
db_base = env["db_base"] db_base = env["db_base"]
base_name = "SS测试主机原型" base_description = "SS测试触发器型-查询"
base_description = "SS测试触发器原型"
base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1" base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1"
@classmethod @classmethod
......
...@@ -31,8 +31,7 @@ class TestTriggerUpdate(object): ...@@ -31,8 +31,7 @@ class TestTriggerUpdate(object):
db_user = env["db_user"] db_user = env["db_user"]
db_pw = env["db_pw"] db_pw = env["db_pw"]
db_base = env["db_base"] db_base = env["db_base"]
base_name = "SS测试主机原型" base_description = "SS测试触发器-更新"
base_description = "SS测试触发器"
base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1" base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1"
new_expression = "{Template OS Linux:agent.ping.nodata(5m)}=2" new_expression = "{Template OS Linux:agent.ping.nodata(5m)}=2"
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# 测试用例 # 测试用例
# 作者: 陈磊 # 作者: 陈磊
# 时间: 2019-11-18 # 时间: 2019-11-28
from __future__ import division from __future__ import division
from WorkApi.APP.Api.api_login import ApiLogin
from WorkCase import CaseBase from WorkCase import CaseBase
from WorkUtils.UtilsLog import UtilsLog from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsResponse import UtilsResponse from WorkUtils.UtilsResponse import UtilsResponse
from WorkUtils.UtilsDataBase import UtilsDataBase from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkApi.APP.Experience.experience_get import ExperienceGet from WorkApi.APP.Experience.Items.experience_items_list import ExperienceItemsList
from WorkData.Argus.hosts import DataHosts from WorkData.Argus.hosts import DataHosts
import allure import allure
@allure.feature("测试模块:experience.get") @allure.feature("测试模块:experience.items.list")
class TestExperienceGet(object): class TestExperienceItemsList(object):
log = UtilsLog() log = UtilsLog()
env = CaseBase().app_environment env = CaseBase().app_environment
host = env["host"] host = env["host"]
...@@ -28,16 +29,13 @@ class TestExperienceGet(object): ...@@ -28,16 +29,13 @@ class TestExperienceGet(object):
db_pw = env["db_pw"] db_pw = env["db_pw"]
db_base = env["db_base"] db_base = env["db_base"]
base_host_name = "SS测试主机名" login_name = "SS测试用户名"
base_asset_code = "SS测试主机资产编号" base_id = 10
base_manage_ip = "10.0.28." base_password = "123456"
base_parent_host = "SS测试所属主机"
@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)
DataHosts().delete_like_host_name(session=session, host_name=cls.base_host_name)
@classmethod @classmethod
def teardown_class(cls): def teardown_class(cls):
...@@ -49,19 +47,11 @@ class TestExperienceGet(object): ...@@ -49,19 +47,11 @@ class TestExperienceGet(object):
def teardown_method(self): def teardown_method(self):
self.log.debug("测试用例执行结束...") self.log.debug("测试用例执行结束...")
@allure.step("调用接口:experience.get") @allure.step("调用接口:experience.items.list")
def experience_get(self, hostType=None, hostName=None, manageLevel=None, manageIp=None, businessid=None, alarmRuleid=None, def experience_items_list(self, token=None, name=None):
title=None, tagid=None, description=None): api = ExperienceItemsList(_host=self.host)
api = ExperienceGet(_host=self.host) api.token = token
api.hostType = hostType api.name = name
api.hostName = hostName
api.manageLevel = manageLevel
api.manageIp = manageIp
api.businessid = businessid
api.alarmRuleid = alarmRuleid
api.title = title
api.tagid = tagid
api.description = description
api.get_response() api.get_response()
return api.response return api.response
...@@ -88,89 +78,57 @@ class TestExperienceGet(object): ...@@ -88,89 +78,57 @@ class TestExperienceGet(object):
parent_host=parent_host, available=available, monitor_status=monitor_status) parent_host=parent_host, available=available, monitor_status=monitor_status)
return hostid return hostid
@allure.title("experience.get:无参数调用") @allure.step("调用接口:api.login")
@allure.story("查询主机监控:无参数调用") def api_login(self, name=None, password=None):
api = ApiLogin(_host=self.host)
api.name = name
api.password = password
api.get_response()
return api.response
@allure.step("获取token")
def get_base_token(self):
response = self.api_login(name=self.login_name, password=self.base_password)
self.token = UtilsResponse().get_data(response=response)
@allure.title("experience.items.list:token未传")
@allure.story("查询监控项下拉框:token未传")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_01(self): def test_case_01(self):
host_name = self.base_host_name + "01" self.get_base_token()
asset_code = self.base_asset_code + "01"
manage_ip = self.base_manage_ip + "1" response = self.experience_items_list()
parent_host = self.base_parent_host + "01" self.check_code(response=response, code=2001)
self.insert_hosts(host_name=host_name, asset_code=asset_code, manage_ip=manage_ip, parent_host=parent_host, available=1, monitor_status=1) self.check_msg(response=response, msg="无token,请重新登录")
response = self.experience_get()
self.check_code(response=response, code=0) @allure.title("experience.items.list:token的用户已删除")
@allure.story("查询监控项下拉框:token的用户已删除")
@allure.title("experience.get:模糊查询hostName") @allure.severity("blocker")
@allure.story("查询主机监控:模糊查询hostName")
def test_case_02(self): def test_case_02(self):
host_name = self.base_host_name + "02" self.get_base_token()
asset_code = self.base_asset_code + "02" self.update_members_del_flag(members_id=self.base_id, value=1)
manage_ip = self.base_manage_ip + "2" response = self.experience_items_list(token=self.token)
parent_host = self.base_parent_host + "02" self.check_code(response=response, code=2004)
self.insert_hosts(host_name=host_name, asset_code=asset_code, manage_ip=manage_ip, parent_host=parent_host, available=1, monitor_status=1) self.check_msg(response=response, msg="用户不存在")
response = self.experience_get(hostName=host_name)
self.check_code(response=response, code=0) @allure.title("experience.items.list:token的用户已禁用")
data = UtilsResponse().get_data(response=response) @allure.story("查询监控项下拉框:token的用户已禁用")
@allure.severity("blocker")
@allure.title("experience.get:查询assetCode")
@allure.story("查询主机监控:查询assetCode")
def test_case_03(self): def test_case_03(self):
host_name = self.base_host_name + "03" self.get_base_token()
asset_code = self.base_asset_code + "03" self.update_members_status(members_id=self.base_id, value=1)
manage_ip = self.base_manage_ip + "3" response = self.experience_items_list(token=self.token)
parent_host = self.base_parent_host + "03" self.check_code(response=response, code=2003)
self.insert_hosts(host_name=host_name, asset_code=asset_code, manage_ip=manage_ip, parent_host=parent_host, available=1, monitor_status=1) self.check_msg(response=response, msg="账户已被禁用")
response = self.experience_get(assetCode=asset_code)
self.check_code(response=response, code=0) @allure.title("experience.items.list:成功查询")
data = UtilsResponse().get_data(response=response) @allure.story("查询监控项下拉框:成功查询")
@allure.severity("blocker")
@allure.title("experience.get:模糊查询manageIp")
@allure.story("查询主机监控:模糊查询manageIp")
def test_case_04(self): def test_case_04(self):
host_name = self.base_host_name + "04" self.get_base_token()
asset_code = self.base_asset_code + "04"
manage_ip = self.base_manage_ip + "4" epl_response = self.experience_items_list(token=self.token, name="PID")
parent_host = self.base_parent_host + "04" self.check_code(response=epl_response, code=0)
self.insert_hosts(host_name=host_name, asset_code=asset_code, manage_ip=manage_ip, parent_host=parent_host, available=1, monitor_status=1)
response = self.experience_get(manageIp=manage_ip)
self.check_code(response=response, code=0)
data = UtilsResponse().get_data(response=response)
@allure.title("experience.get:模糊查询parentHost")
@allure.story("查询主机监控:模糊查询parentHost")
def test_case_05(self):
host_name = self.base_host_name + "05"
asset_code = self.base_asset_code + "05"
manage_ip = self.base_manage_ip + "5"
parent_host = self.base_parent_host + "05"
self.insert_hosts(host_name=host_name, asset_code=asset_code, manage_ip=manage_ip, parent_host=parent_host, available=1, monitor_status=1)
response = self.experience_get(parentHost=parent_host)
self.check_code(response=response, code=0)
data = UtilsResponse().get_data(response=response)
@allure.title("experience.get:模糊查询available")
@allure.story("查询主机监控:模糊查询available")
def test_case_06(self):
host_name = self.base_host_name + "06"
asset_code = self.base_asset_code + "06"
manage_ip = self.base_manage_ip + "6"
parent_host = self.base_parent_host + "06"
self.insert_hosts(host_name=host_name, asset_code=asset_code, manage_ip=manage_ip, parent_host=parent_host, available=0, monitor_status=1)
response = self.experience_get(available=0)
self.check_code(response=response, code=0)
data = UtilsResponse().get_data(response=response)
@allure.title("experience.get:模糊查询monitor_status")
@allure.story("查询主机监控:模糊查询monitor_status")
def test_case_07(self):
host_name = self.base_host_name + "07"
asset_code = self.base_asset_code + "07"
manage_ip = self.base_manage_ip + "7"
parent_host = self.base_parent_host + "07"
self.insert_hosts(host_name=host_name, asset_code=asset_code, manage_ip=manage_ip, parent_host=parent_host, available=1, monitor_status=0)
response = self.experience_get(status=0)
self.check_code(response=response, code=0)
data = UtilsResponse().get_data(response=response)
if __name__ == "__main__": if __name__ == "__main__":
...@@ -180,11 +138,11 @@ if __name__ == "__main__": ...@@ -180,11 +138,11 @@ if __name__ == "__main__":
import os import os
# 执行自动化测试用例 # 执行自动化测试用例
case_info = os.path.split(__file__) # case_info = os.path.split(__file__)
case = UtilsCmd().pytest_cmd() # case = UtilsCmd().pytest_cmd()
r = UtilsPyTest(case=case, case_info=case_info) # r = UtilsPyTest(case=case, case_info=case_info)
r.run_main() # r.run_main()
# a = TestExperienceGet() a = TestExperienceItemsList()
# a.setup_class() a.setup_class()
# a.test_case_04() a.test_case_04()
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-11-28
from __future__ import division
from WorkCase import CaseBase
from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkUtils.UtilsResponse import UtilsResponse
from WorkApi.APP.Api.api_login import ApiLogin
from WorkApi.APP.Rule.rule_create import RuleCreate
from WorkData.Argus.members import DataMembers
from WorkData.Argus.alarm_rule import DataAlarmRule
import allure
@allure.feature("测试模块:rule.create")
class TestRuleCreate(object):
log = UtilsLog()
env = CaseBase().app_environment
host = env["host"]
db_url = env["db_url"]
db_port = env["db_port"]
db_user = env["db_user"]
db_pw = env["db_pw"]
db_base = env["db_base"]
login_name = "SS测试用户名"
base_id = 10
base_password = "123456"
base_name = "SS测试告警规则名称"
@classmethod
def setup_class(cls):
cls.log.debug("开始执行测试套件.......")
@classmethod
def teardown_class(cls):
cls.log.debug("结束执行测试套件.......")
def setup_method(self):
self.log.debug("测试用例执行开始...")
self.update_members_del_flag(members_id=self.base_id, value=0)
self.update_members_status(members_id=self.base_id, value=0)
def teardown_method(self):
self.log.debug("测试用例执行结束...")
self.update_members_del_flag(members_id=self.base_id, value=0)
self.update_members_status(members_id=self.base_id, value=0)
@allure.step("调用接口:api.login")
def api_login(self, name=None, password=None):
api = ApiLogin(_host=self.host)
api.name = name
api.password = password
api.get_response()
return api.response
@allure.step("更新表数据:members -- del_flag")
def update_members_del_flag(self, members_id=None, value=None):
session = self.db_session()
sql = DataMembers().update_del_flag(session=session, _id=members_id, value=value)
return sql
@allure.step("更新表数据:members -- status")
def update_members_status(self, members_id=None, value=None):
session = self.db_session()
sql = DataMembers().update_status(session=session, _id=members_id, value=value)
return sql
@allure.step("调用接口:rule.create")
def rule_create(self, token=None, name=None, severity=None, url=None, description=None, status=None,
manualClose=None, enableTimeDefault=None, period=None, periodType=None, triggersList=None,
triggersList_hostid=None, triggersList_hostName=None, triggersList_itemid=None,
triggersList_itemName=None, triggersList_function=None, triggersList_parameters=None, triggersList_parameters_value=None,
triggersList_parameters_unit=None, triggersList_operator=None, triggersList_constant=None,
triggersList_logicalSymbol=None, triggersList_onlineFlag=None):
api = RuleCreate(_host=self.host)
api.token = token
api.name = name
api.severity = severity
api.url = url
api.description = description
api.status = status
api.manualClose = manualClose
api.enableTimeDefault = enableTimeDefault
api.period = period
api.periodType = periodType
api.triggersList = triggersList
api.triggersList_hostid = triggersList_hostid
api.triggersList_hostName = triggersList_hostName
api.triggersList_itemid = triggersList_itemid
api.triggersList_itemName = triggersList_itemName
api.triggersList_function = triggersList_function
api.triggersList_parameters = triggersList_parameters
api.triggersList_parameters_value = triggersList_parameters_value
api.triggersList_parameters_unit = triggersList_parameters_unit
api.triggersList_operator = triggersList_operator
api.triggersList_constant = triggersList_constant
api.triggersList_logicalSymbol = triggersList_logicalSymbol
api.triggersList_onlineFlag = triggersList_onlineFlag
api.get_response()
return api.response
@allure.step("获取token")
def get_base_token(self):
response = self.api_login(name=self.login_name, password=self.base_password)
self.token = UtilsResponse().get_data(response=response)
@allure.step("连接数据库:Argus")
def db_session(self):
session = UtilsDataBase().conn_mysql(db_url=self.db_url, db_port=self.db_port, db_base=self.db_base, db_user=self.db_user, db_pw=self.db_pw)
return session
@allure.step("查询表:alarm_rule")
def select_alarm_rule(self, alarm_ruleid=None, name=None, triggerid=None):
session = self.db_session()
sql = DataAlarmRule().select_all_from_allKeys(session=session, alarm_ruleid=alarm_ruleid, name=name, triggerid=triggerid)
return sql
@allure.step("校验查询结果")
def check_select(self, response, name, description, _type, principal_name, principal_phone, memberid):
data = UtilsResponse().get_data(response=response)
sql = self.select_businesses(businessid=data)
for x, y in enumerate(sql):
assert y.name == name
assert y.description == description
assert y.type == _type
assert y.principal_name == principal_name
assert y.principal_phone == principal_phone
assert y.memberid == memberid
assert x == 0
@allure.step("断言返回结果")
def check_code(self, response, code):
_code = UtilsResponse().get_code(response=response)
assert _code == code
@allure.step("断言返回结果数据")
def check_msg(self, response, msg):
_msg = UtilsResponse().get_msg(response=response)
assert _msg == msg
@allure.title("rule.create:token未传")
@allure.story("创建告警规则:token未传")
@allure.severity("blocker")
def test_case_01(self):
self.get_base_token()
response = self.rule_create()
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("rule.create:token的用户已删除")
@allure.story("创建告警规则:token的用户已删除")
@allure.severity("blocker")
def test_case_02(self):
self.get_base_token()
self.update_members_del_flag(members_id=self.base_id, value=1)
response = self.rule_create(token=self.token)
self.check_code(response=response, code=2004)
self.check_msg(response=response, msg="用户不存在")
@allure.title("rule.create:token的用户已禁用")
@allure.story("创建告警规则:token的用户已禁用")
@allure.severity("blocker")
def test_case_03(self):
self.get_base_token()
self.update_members_status(members_id=self.base_id, value=1)
response = self.rule_create(token=self.token)
self.check_code(response=response, code=2003)
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("rule.create:创建普通告警规则")
@allure.story("创建告警规则:创建普通告警规则")
@allure.severity("blocker")
def test_case_04(self):
self.get_base_token()
name = self.base_name + "04"
response = self.rule_create(token=self.token, name=name, severity=0, status=1, manualClose=0, triggersList_hostid=[10466],
triggersList_hostName=["SS TEST HOST04"], triggersList_itemid=[39676],
triggersList_itemName=["system.cpu.load[percpu,avg15]"], triggersList_function=["avg"],
triggersList_operator=["="], triggersList_constant=[888],
triggersList_parameters_unit=["m"], triggersList_parameters_value=[5])
self.check_code(response=response, code=0)
@allure.title("rule.create:创建agent设备在线规则")
@allure.story("创建告警规则:创建agent设备在线规则")
def test_case_05(self):
self.get_base_token()
name = self.base_name + "05"
response = self.rule_create(token=self.token, name=name, severity=0, status=1, manualClose=1, triggersList_hostid=[10466],
triggersList_hostName=["SS TEST HOST04"], triggersList_itemid=[39676],
triggersList_itemName=["agent.ping"], triggersList_function=["avg"],
triggersList_operator=["="], triggersList_constant=[888],
triggersList_parameters_unit=["m"], triggersList_parameters_value=[5], triggersList_onlineFlag=[True])
self.check_code(response=response, code=0)
@allure.title("rule.create:创建agent设备离线规则")
@allure.story("创建告警规则:创建agent设备离线规则")
def test_case_06(self):
self.get_base_token()
name = self.base_name + "06"
response = self.rule_create(token=self.token, name=name, severity=0, status=1, manualClose=1, triggersList_hostid=[10466],
triggersList_hostName=["SS TEST HOST04"], triggersList_itemid=[39676],
triggersList_itemName=["agent.ping]"], triggersList_function=["avg"],
triggersList_operator=["="], triggersList_constant=[888],
triggersList_parameters_unit=["m"], triggersList_parameters_value=[5], triggersList_onlineFlag=[True])
self.check_code(response=response, code=0)
@allure.title("rule.create:创建icmp设备在线规则")
@allure.story("创建告警规则:创建icmp设备在线规则")
def test_case_07(self):
self.get_base_token()
name = self.base_name + "07"
response = self.rule_create(token=self.token, name=name, severity=0, status=1, manualClose=1, triggersList_hostid=[10466],
triggersList_hostName=["SS TEST HOST04"], triggersList_itemid=[39676],
triggersList_itemName=["agent.ping]"], triggersList_function=["avg"],
triggersList_operator=["="], triggersList_constant=[888],
triggersList_parameters_unit=["m"], triggersList_parameters_value=[5], triggersList_onlineFlag=[True])
self.check_code(response=response, code=0)
@allure.title("rule.create:创建icmp设备离线规则")
@allure.story("创建告警规则:创建icmp设备离线规则")
def test_case_08(self):
self.get_base_token()
name = self.base_name + "08"
response = self.rule_create(token=self.token, name=name, severity=0, status=1, manualClose=1, triggersList_hostid=[10466],
triggersList_hostName=["SS TEST HOST04"], triggersList_itemid=[39676],
triggersList_itemName=["agent.ping]"], triggersList_function=["avg"],
triggersList_operator=["="], triggersList_constant=[888],
triggersList_parameters_unit=["m"], triggersList_parameters_value=[5], triggersList_onlineFlag=[True])
self.check_code(response=response, code=0)
if __name__ == "__main__":
from WorkUtils.UtilsPyTest import UtilsPyTest
from WorkUtils.UtilsCmd import UtilsCmd
import os
# 执行自动化测试用例
# case_info = os.path.split(__file__)
# case = UtilsCmd().pytest_cmd()
# r = UtilsPyTest(case=case, case_info=case_info)
# r.run_main()
a = TestRuleCreate()
a.setup_class()
a.test_case_05()
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-11-28
from __future__ import division
from WorkCase import CaseBase
from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkUtils.UtilsResponse import UtilsResponse
from WorkApi.APP.Api.api_login import ApiLogin
from WorkApi.APP.Rule.rule_create import RuleCreate
from WorkApi.APP.Rule.rule_delete import RuleDelete
from WorkData.Argus.members import DataMembers
import allure
@allure.feature("测试模块:rule.delete")
class TestRuleDelete(object):
log = UtilsLog()
env = CaseBase().app_environment
host = env["host"]
db_url = env["db_url"]
db_port = env["db_port"]
db_user = env["db_user"]
db_pw = env["db_pw"]
db_base = env["db_base"]
login_name = "SS测试用户名"
base_id = 10
base_password = "123456"
base_name = "SS测试告警规则名称"
@classmethod
def setup_class(cls):
cls.log.debug("开始执行测试套件.......")
@classmethod
def teardown_class(cls):
cls.log.debug("结束执行测试套件.......")
def setup_method(self):
self.log.debug("测试用例执行开始...")
self.update_members_del_flag(members_id=self.base_id, value=0)
self.update_members_status(members_id=self.base_id, value=0)
def teardown_method(self):
self.log.debug("测试用例执行结束...")
self.update_members_del_flag(members_id=self.base_id, value=0)
self.update_members_status(members_id=self.base_id, value=0)
@allure.step("调用接口:api.login")
def api_login(self, name=None, password=None):
api = ApiLogin(_host=self.host)
api.name = name
api.password = password
api.get_response()
return api.response
@allure.step("更新表数据:members -- del_flag")
def update_members_del_flag(self, members_id=None, value=None):
session = self.db_session()
sql = DataMembers().update_del_flag(session=session, _id=members_id, value=value)
return sql
@allure.step("更新表数据:members -- status")
def update_members_status(self, members_id=None, value=None):
session = self.db_session()
sql = DataMembers().update_status(session=session, _id=members_id, value=value)
return sql
@allure.step("调用接口:rule.create")
def rule_create(self, token=None, name=None, severity=None, url=None, description=None, status=None,
manualClose=None, enableTimeDefault=None, period=None, periodType=None, triggersList=None,
triggersList_hostid=None, triggersList_hostName=None, triggersList_itemid=None,
triggersList_itemName=None, triggersList_function=None, triggersList_parameters=None, triggersList_parameters_value=None,
triggersList_parameters_unit=None, triggersList_operator=None, triggersList_constant=None,
triggersList_logicalSymbol=None, triggersList_onlineFlag=None):
api = RuleCreate(_host=self.host)
api.token = token
api.name = name
api.severity = severity
api.url = url
api.description = description
api.status = status
api.manualClose = manualClose
api.enableTimeDefault = enableTimeDefault
api.period = period
api.periodType = periodType
api.triggersList = triggersList
api.triggersList_hostid = triggersList_hostid
api.triggersList_hostName = triggersList_hostName
api.triggersList_itemid = triggersList_itemid
api.triggersList_itemName = triggersList_itemName
api.triggersList_function = triggersList_function
api.triggersList_parameters = triggersList_parameters
api.triggersList_parameters_value = triggersList_parameters_value
api.triggersList_parameters_unit = triggersList_parameters_unit
api.triggersList_operator = triggersList_operator
api.triggersList_constant = triggersList_constant
api.triggersList_logicalSymbol = triggersList_logicalSymbol
api.triggersList_onlineFlag = triggersList_onlineFlag
api.get_response()
return api.response
@allure.step("调用接口:rule.delete")
def rule_delete(self, token=None, alarmRuleidList=None):
api = RuleDelete(_host=self.host)
api.token = token
api.alarmRuleidList = alarmRuleidList
api.get_response()
return api.response
@allure.step("获取token")
def get_base_token(self):
response = self.api_login(name=self.login_name, password=self.base_password)
self.token = UtilsResponse().get_data(response=response)
@allure.step("连接数据库:Argus")
def db_session(self):
session = UtilsDataBase().conn_mysql(db_url=self.db_url, db_port=self.db_port, db_base=self.db_base, db_user=self.db_user, db_pw=self.db_pw)
return session
# @allure.step("查询表:businesses")
# def select_businesses(self, businessid=None, name=None):
# session = self.db_session()
# sql = DataBusinesses().select_all_from_allKeys(session=session, businessid=businessid, name=name)
# return sql
@allure.step("校验查询结果")
def check_select(self, response, name, description, _type, principal_name, principal_phone, memberid):
data = UtilsResponse().get_data(response=response)
sql = self.select_businesses(businessid=data)
for x, y in enumerate(sql):
assert y.name == name
assert y.description == description
assert y.type == _type
assert y.principal_name == principal_name
assert y.principal_phone == principal_phone
assert y.memberid == memberid
assert x == 0
@allure.step("断言返回结果")
def check_code(self, response, code):
_code = UtilsResponse().get_code(response=response)
assert _code == code
@allure.step("断言返回结果数据")
def check_msg(self, response, msg):
_msg = UtilsResponse().get_msg(response=response)
assert _msg == msg
@allure.title("rule.delete:token未传")
@allure.story("查询告警规则:token未传")
@allure.severity("blocker")
def test_case_01(self):
self.get_base_token()
response = self.rule_delete()
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("rule.delete:token的用户已删除")
@allure.story("查询告警规则:token的用户已删除")
@allure.severity("blocker")
def test_case_02(self):
self.get_base_token()
self.update_members_del_flag(members_id=self.base_id, value=1)
response = self.rule_delete(token=self.token)
self.check_code(response=response, code=2004)
self.check_msg(response=response, msg="用户不存在")
@allure.title("rule.delete:token的用户已禁用")
@allure.story("查询告警规则:token的用户已禁用")
@allure.severity("blocker")
def test_case_03(self):
self.get_base_token()
self.update_members_status(members_id=self.base_id, value=1)
response = self.rule_delete(token=self.token)
self.check_code(response=response, code=2003)
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("rule.delete:无参数调用")
@allure.story("查询告警规则:无参数调用")
@allure.severity("blocker")
def test_case_04(self):
self.get_base_token()
name = self.base_name + "04"
response = self.rule_delete(token=self.token)
self.check_code(response=response, code=0)
if __name__ == "__main__":
from WorkUtils.UtilsPyTest import UtilsPyTest
from WorkUtils.UtilsCmd import UtilsCmd
import os
# 执行自动化测试用例
# case_info = os.path.split(__file__)
# case = UtilsCmd().pytest_cmd()
# r = UtilsPyTest(case=case, case_info=case_info)
# r.run_main()
a = TestRuleDelete()
a.setup_class()
a.test_case_04()
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-11-28
from __future__ import division
from WorkCase import CaseBase
from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkUtils.UtilsResponse import UtilsResponse
from WorkApi.APP.Api.api_login import ApiLogin
from WorkApi.APP.Rule.rule_create import RuleCreate
from WorkApi.APP.Rule.rule_get import RuleGet
from WorkData.Argus.members import DataMembers
import allure
@allure.feature("测试模块:rule.get")
class TestRuleGet(object):
log = UtilsLog()
env = CaseBase().app_environment
host = env["host"]
db_url = env["db_url"]
db_port = env["db_port"]
db_user = env["db_user"]
db_pw = env["db_pw"]
db_base = env["db_base"]
login_name = "SS测试用户名"
base_id = 10
base_password = "123456"
base_name = "SS测试告警规则名称"
@classmethod
def setup_class(cls):
cls.log.debug("开始执行测试套件.......")
@classmethod
def teardown_class(cls):
cls.log.debug("结束执行测试套件.......")
def setup_method(self):
self.log.debug("测试用例执行开始...")
self.update_members_del_flag(members_id=self.base_id, value=0)
self.update_members_status(members_id=self.base_id, value=0)
def teardown_method(self):
self.log.debug("测试用例执行结束...")
self.update_members_del_flag(members_id=self.base_id, value=0)
self.update_members_status(members_id=self.base_id, value=0)
@allure.step("调用接口:api.login")
def api_login(self, name=None, password=None):
api = ApiLogin(_host=self.host)
api.name = name
api.password = password
api.get_response()
return api.response
@allure.step("更新表数据:members -- del_flag")
def update_members_del_flag(self, members_id=None, value=None):
session = self.db_session()
sql = DataMembers().update_del_flag(session=session, _id=members_id, value=value)
return sql
@allure.step("更新表数据:members -- status")
def update_members_status(self, members_id=None, value=None):
session = self.db_session()
sql = DataMembers().update_status(session=session, _id=members_id, value=value)
return sql
@allure.step("调用接口:rule.create")
def rule_create(self, token=None, name=None, severity=None, url=None, description=None, status=None,
manualClose=None, enableTimeDefault=None, period=None, periodType=None, triggersList=None,
triggersList_hostid=None, triggersList_hostName=None, triggersList_itemid=None,
triggersList_itemName=None, triggersList_function=None, triggersList_parameters=None, triggersList_parameters_value=None,
triggersList_parameters_unit=None, triggersList_operator=None, triggersList_constant=None,
triggersList_logicalSymbol=None, triggersList_onlineFlag=None):
api = RuleCreate(_host=self.host)
api.token = token
api.name = name
api.severity = severity
api.url = url
api.description = description
api.status = status
api.manualClose = manualClose
api.enableTimeDefault = enableTimeDefault
api.period = period
api.periodType = periodType
api.triggersList = triggersList
api.triggersList_hostid = triggersList_hostid
api.triggersList_hostName = triggersList_hostName
api.triggersList_itemid = triggersList_itemid
api.triggersList_itemName = triggersList_itemName
api.triggersList_function = triggersList_function
api.triggersList_parameters = triggersList_parameters
api.triggersList_parameters_value = triggersList_parameters_value
api.triggersList_parameters_unit = triggersList_parameters_unit
api.triggersList_operator = triggersList_operator
api.triggersList_constant = triggersList_constant
api.triggersList_logicalSymbol = triggersList_logicalSymbol
api.triggersList_onlineFlag = triggersList_onlineFlag
api.get_response()
return api.response
@allure.step("调用接口:rule.get")
def rule_get(self, token=None, severity=None, itemid=None, status=None,
manageLevel=None, manageIp=None, hostName=None):
api = RuleGet(_host=self.host)
api.token = token
api.severity = severity
api.status = status
api.itemid = itemid
api.manageLevel = manageLevel
api.manageIp = manageIp
api.hostName = hostName
api.get_response()
return api.response
@allure.step("获取token")
def get_base_token(self):
response = self.api_login(name=self.login_name, password=self.base_password)
self.token = UtilsResponse().get_data(response=response)
@allure.step("连接数据库:Argus")
def db_session(self):
session = UtilsDataBase().conn_mysql(db_url=self.db_url, db_port=self.db_port, db_base=self.db_base, db_user=self.db_user, db_pw=self.db_pw)
return session
# @allure.step("查询表:businesses")
# def select_businesses(self, businessid=None, name=None):
# session = self.db_session()
# sql = DataBusinesses().select_all_from_allKeys(session=session, businessid=businessid, name=name)
# return sql
@allure.step("校验查询结果")
def check_select(self, response, name, description, _type, principal_name, principal_phone, memberid):
data = UtilsResponse().get_data(response=response)
sql = self.select_businesses(businessid=data)
for x, y in enumerate(sql):
assert y.name == name
assert y.description == description
assert y.type == _type
assert y.principal_name == principal_name
assert y.principal_phone == principal_phone
assert y.memberid == memberid
assert x == 0
@allure.step("断言返回结果")
def check_code(self, response, code):
_code = UtilsResponse().get_code(response=response)
assert _code == code
@allure.step("断言返回结果数据")
def check_msg(self, response, msg):
_msg = UtilsResponse().get_msg(response=response)
assert _msg == msg
@allure.title("rule.get:token未传")
@allure.story("查询告警规则:token未传")
@allure.severity("blocker")
def test_case_01(self):
self.get_base_token()
response = self.rule_get()
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("rule.get:token的用户已删除")
@allure.story("查询告警规则:token的用户已删除")
@allure.severity("blocker")
def test_case_02(self):
self.get_base_token()
self.update_members_del_flag(members_id=self.base_id, value=1)
response = self.rule_get(token=self.token)
self.check_code(response=response, code=2004)
self.check_msg(response=response, msg="用户不存在")
@allure.title("rule.get:token的用户已禁用")
@allure.story("查询告警规则:token的用户已禁用")
@allure.severity("blocker")
def test_case_03(self):
self.get_base_token()
self.update_members_status(members_id=self.base_id, value=1)
response = self.rule_get(token=self.token)
self.check_code(response=response, code=2003)
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("rule.get:无参数调用")
@allure.story("查询告警规则:无参数调用")
@allure.severity("blocker")
def test_case_04(self):
self.get_base_token()
name = self.base_name + "04"
response = self.rule_get(token=self.token)
self.check_code(response=response, code=0)
if __name__ == "__main__":
from WorkUtils.UtilsPyTest import UtilsPyTest
from WorkUtils.UtilsCmd import UtilsCmd
import os
# 执行自动化测试用例
# case_info = os.path.split(__file__)
# case = UtilsCmd().pytest_cmd()
# r = UtilsPyTest(case=case, case_info=case_info)
# r.run_main()
a = TestRuleGet()
a.setup_class()
a.test_case_04()
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-11-28
from __future__ import division
from WorkCase import CaseBase
from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkUtils.UtilsResponse import UtilsResponse
from WorkApi.APP.Api.api_login import ApiLogin
from WorkApi.APP.Rule.rule_create import RuleCreate
from WorkApi.APP.Rule.rule_update import RuleUpdate
from WorkData.Argus.members import DataMembers
import allure
@allure.feature("测试模块:rule.update")
class TestRuleUpdate(object):
log = UtilsLog()
env = CaseBase().app_environment
host = env["host"]
db_url = env["db_url"]
db_port = env["db_port"]
db_user = env["db_user"]
db_pw = env["db_pw"]
db_base = env["db_base"]
login_name = "SS测试用户名"
base_id = 10
base_password = "123456"
base_name = "SS测试告警规则名称"
@classmethod
def setup_class(cls):
cls.log.debug("开始执行测试套件.......")
@classmethod
def teardown_class(cls):
cls.log.debug("结束执行测试套件.......")
def setup_method(self):
self.log.debug("测试用例执行开始...")
self.update_members_del_flag(members_id=self.base_id, value=0)
self.update_members_status(members_id=self.base_id, value=0)
def teardown_method(self):
self.log.debug("测试用例执行结束...")
self.update_members_del_flag(members_id=self.base_id, value=0)
self.update_members_status(members_id=self.base_id, value=0)
@allure.step("调用接口:api.login")
def api_login(self, name=None, password=None):
api = ApiLogin(_host=self.host)
api.name = name
api.password = password
api.get_response()
return api.response
@allure.step("更新表数据:members -- del_flag")
def update_members_del_flag(self, members_id=None, value=None):
session = self.db_session()
sql = DataMembers().update_del_flag(session=session, _id=members_id, value=value)
return sql
@allure.step("更新表数据:members -- status")
def update_members_status(self, members_id=None, value=None):
session = self.db_session()
sql = DataMembers().update_status(session=session, _id=members_id, value=value)
return sql
@allure.step("调用接口:rule.create")
def rule_create(self, token=None, name=None, severity=None, url=None, description=None, status=None,
manualClose=None, enableTimeDefault=None, period=None, periodType=None, triggersList=None,
triggersList_hostid=None, triggersList_hostName=None, triggersList_itemid=None,
triggersList_itemName=None, triggersList_function=None, triggersList_parameters=None, triggersList_parameters_value=None,
triggersList_parameters_unit=None, triggersList_operator=None, triggersList_constant=None,
triggersList_logicalSymbol=None, triggersList_onlineFlag=None):
api = RuleCreate(_host=self.host)
api.token = token
api.name = name
api.severity = severity
api.url = url
api.description = description
api.status = status
api.manualClose = manualClose
api.enableTimeDefault = enableTimeDefault
api.period = period
api.periodType = periodType
api.triggersList = triggersList
api.triggersList_hostid = triggersList_hostid
api.triggersList_hostName = triggersList_hostName
api.triggersList_itemid = triggersList_itemid
api.triggersList_itemName = triggersList_itemName
api.triggersList_function = triggersList_function
api.triggersList_parameters = triggersList_parameters
api.triggersList_parameters_value = triggersList_parameters_value
api.triggersList_parameters_unit = triggersList_parameters_unit
api.triggersList_operator = triggersList_operator
api.triggersList_constant = triggersList_constant
api.triggersList_logicalSymbol = triggersList_logicalSymbol
api.triggersList_onlineFlag = triggersList_onlineFlag
api.get_response()
return api.response
@allure.step("调用接口:rule.update")
def rule_update(self, token=None, name=None, severity=None, url=None, description=None, status=None,
manualClose=None, enableTimeDefault=None, period=None, periodType=None, triggersList=None,
triggersList_hostid=None, triggersList_hostName=None, triggersList_itemid=None,
triggersList_itemName=None, triggersList_function=None, triggersList_parameters=None, triggersList_parameters_value=None,
triggersList_parameters_unit=None, triggersList_operator=None, triggersList_constant=None,
triggersList_logicalSymbol=None, triggersList_onlineFlag=None):
api = RuleUpdate(_host=self.host)
api.token = token
api.name = name
api.severity = severity
api.url = url
api.description = description
api.status = status
api.manualClose = manualClose
api.enableTimeDefault = enableTimeDefault
api.period = period
api.periodType = periodType
api.triggersList = triggersList
api.triggersList_hostid = triggersList_hostid
api.triggersList_hostName = triggersList_hostName
api.triggersList_itemid = triggersList_itemid
api.triggersList_itemName = triggersList_itemName
api.triggersList_function = triggersList_function
api.triggersList_parameters = triggersList_parameters
api.triggersList_parameters_value = triggersList_parameters_value
api.triggersList_parameters_unit = triggersList_parameters_unit
api.triggersList_operator = triggersList_operator
api.triggersList_constant = triggersList_constant
api.triggersList_logicalSymbol = triggersList_logicalSymbol
api.triggersList_onlineFlag = triggersList_onlineFlag
api.get_response()
return api.response
@allure.step("获取token")
def get_base_token(self):
response = self.api_login(name=self.login_name, password=self.base_password)
self.token = UtilsResponse().get_data(response=response)
@allure.step("连接数据库:Argus")
def db_session(self):
session = UtilsDataBase().conn_mysql(db_url=self.db_url, db_port=self.db_port, db_base=self.db_base, db_user=self.db_user, db_pw=self.db_pw)
return session
# @allure.step("查询表:businesses")
# def select_businesses(self, businessid=None, name=None):
# session = self.db_session()
# sql = DataBusinesses().select_all_from_allKeys(session=session, businessid=businessid, name=name)
# return sql
@allure.step("校验查询结果")
def check_select(self, response, name, description, _type, principal_name, principal_phone, memberid):
data = UtilsResponse().get_data(response=response)
sql = self.select_businesses(businessid=data)
for x, y in enumerate(sql):
assert y.name == name
assert y.description == description
assert y.type == _type
assert y.principal_name == principal_name
assert y.principal_phone == principal_phone
assert y.memberid == memberid
assert x == 0
@allure.step("断言返回结果")
def check_code(self, response, code):
_code = UtilsResponse().get_code(response=response)
assert _code == code
@allure.step("断言返回结果数据")
def check_msg(self, response, msg):
_msg = UtilsResponse().get_msg(response=response)
assert _msg == msg
@allure.title("rule.update:token未传")
@allure.story("更新告警规则:token未传")
@allure.severity("blocker")
def test_case_01(self):
self.get_base_token()
response = self.rule_update()
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("rule.update:token的用户已删除")
@allure.story("更新告警规则:token的用户已删除")
@allure.severity("blocker")
def test_case_02(self):
self.get_base_token()
self.update_members_del_flag(members_id=self.base_id, value=1)
response = self.rule_update(token=self.token)
self.check_code(response=response, code=2004)
self.check_msg(response=response, msg="用户不存在")
@allure.title("rule.update:token的用户已禁用")
@allure.story("更新告警规则:token的用户已禁用")
@allure.severity("blocker")
def test_case_03(self):
self.get_base_token()
self.update_members_status(members_id=self.base_id, value=1)
response = self.rule_update(token=self.token)
self.check_code(response=response, code=2003)
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("rule.update:更新普通告警规则")
@allure.story("更新告警规则:更新普通告警规则")
@allure.severity("blocker")
def test_case_04(self):
self.get_base_token()
name = self.base_name + "04"
response = self.rule_update(token=self.token)
self.check_code(response=response, code=0)
if __name__ == "__main__":
from WorkUtils.UtilsPyTest import UtilsPyTest
from WorkUtils.UtilsCmd import UtilsCmd
import os
# 执行自动化测试用例
# case_info = os.path.split(__file__)
# case = UtilsCmd().pytest_cmd()
# r = UtilsPyTest(case=case, case_info=case_info)
# r.run_main()
a = TestRuleUpdate()
a.setup_class()
a.test_case_04()
# -*- coding: utf_8 -*-
# 表名: alarm_rule
# 作者: 陈磊
# 时间: 2019-11-28
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, VARCHAR, SMALLINT, DATETIME, DECIMAL, BigInteger, FLOAT, NUMERIC, TEXT
from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound
from sqlalchemy import or_
from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase
import time
Base = declarative_base()
class AlarmRule(Base):
"""
告警规则表
"""
__tablename__ = "alarm_rule"
alarm_ruleid = Column(BigInteger, primary_key=True)
name = Column(VARCHAR(255), comment="规则名称")
triggerid = Column(BigInteger, comment="触发器ID")
description = Column(VARCHAR(255), comment="描述")
status = Column(Integer, comment="启用( 0 不启用,1启用)")
period = Column(Integer, comment="时间周期")
period_unit = Column(VARCHAR(50), comment="时间单位(m:分钟,h:小时,d:天)")
severity = Column(Integer, comment="告警级别")
url = Column(VARCHAR(255), comment="跳转路径")
manual_close = Column(Integer, comment="是否支持人工关闭(0:不允许,1:允许)")
enable_time_default = Column(Integer, comment="静默时间(0:不启用,启用)")
create_time = Column(BigInteger, comment="创建时间")
class DataAlarmRule(object):
def __init__(self):
self.log = UtilsLog()
self.log.info(self.__class__)
self.table = AlarmRule
def select_all_from_allKeys(self, session, alarm_ruleid=None, name=None, triggerid=None):
"""
:param session: 指针
:param alarm_ruleid:
:param name:
:param triggerid:
:return: 查询结果
"""
self.log.debug("查询数据库:")
try:
base = UtilsDataBase()
base.add_param(_key="alarm_ruleid", value=alarm_ruleid)
base.add_param(_key="name", value=name)
base.add_param(_key="triggerid", value=triggerid)
sql_rep = session.query(self.table).filter_by(**base.param).all()
self.log.debug(sql_rep)
session.close()
return sql_rep
except UtilsDataBase().errors as error:
self.log.error("异常:")
self.log.error(error)
session.close()
return error
def delete_like_name(self, session, name):
"""
:param session: 指针
:param name:
:return:
"""
self.log.debug("查询数据库:")
try:
self.log.debug("删除相关测试数据")
session.query(self.table).filter(self.table.name.like(str(name) + "%")).delete(synchronize_session=False)
# session.delete(sql)
session.commit()
session.close()
self.log.debug("删除成功")
return True
except UtilsDataBase().errors as error:
self.log.error("异常:")
self.log.error(error)
session.close()
return error
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment