Commit c5b17efd by sanshi

告警规则

parent 75397a9e
......@@ -26,10 +26,8 @@ class ExperienceItemsList(object):
self._data = {}
self.response = ""
self.local_json = {}
self.token = None
self.name = None
self.api = UtilsRequest()
def get_response(self):
......@@ -37,4 +35,8 @@ class ExperienceItemsList(object):
base.dict_add_key(_key="token", value=self.token)
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)
# -*- 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):
db_pw = env["db_pw"]
db_base = env["db_base"]
base_name = "SS测试主机"
base_description = "SS测试触发器"
base_description = "SS测试触发器-创建"
base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1"
@classmethod
......
......@@ -30,8 +30,7 @@ class TestTriggerDelete(object):
db_user = env["db_user"]
db_pw = env["db_pw"]
db_base = env["db_base"]
base_name = "SS测试主机原型"
base_description = "SS测试触发器"
base_description = "SS测试触发器-删除"
base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1"
@classmethod
......
......@@ -31,8 +31,7 @@ class TestTriggerGet(object):
db_user = env["db_user"]
db_pw = env["db_pw"]
db_base = env["db_base"]
base_name = "SS测试主机原型"
base_description = "SS测试触发器原型"
base_description = "SS测试触发器型-查询"
base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1"
@classmethod
......
......@@ -31,8 +31,7 @@ class TestTriggerUpdate(object):
db_user = env["db_user"]
db_pw = env["db_pw"]
db_base = env["db_base"]
base_name = "SS测试主机原型"
base_description = "SS测试触发器"
base_description = "SS测试触发器-更新"
base_expression = "{Template OS Linux:agent.ping.nodata(5m)}=1"
new_expression = "{Template OS Linux:agent.ping.nodata(5m)}=2"
......
# -*- 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