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-18
# 时间: 2019-11-28
from __future__ import division
from WorkApi.APP.Api.api_login import ApiLogin
from WorkCase import CaseBase
from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsResponse import UtilsResponse
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
import allure
@allure.feature("测试模块:experience.get")
class TestExperienceGet(object):
@allure.feature("测试模块:experience.items.list")
class TestExperienceItemsList(object):
log = UtilsLog()
env = CaseBase().app_environment
host = env["host"]
......@@ -28,16 +29,13 @@ class TestExperienceGet(object):
db_pw = env["db_pw"]
db_base = env["db_base"]
base_host_name = "SS测试主机名"
base_asset_code = "SS测试主机资产编号"
base_manage_ip = "10.0.28."
base_parent_host = "SS测试所属主机"
login_name = "SS测试用户名"
base_id = 10
base_password = "123456"
@classmethod
def setup_class(cls):
cls.log.debug("开始执行测试套件.......")
session = UtilsDataBase().conn_mysql(db_url=cls.db_url, db_port=cls.db_port, db_base=cls.db_base, db_user=cls.db_user, db_pw=cls.db_pw)
DataHosts().delete_like_host_name(session=session, host_name=cls.base_host_name)
@classmethod
def teardown_class(cls):
......@@ -49,19 +47,11 @@ class TestExperienceGet(object):
def teardown_method(self):
self.log.debug("测试用例执行结束...")
@allure.step("调用接口:experience.get")
def experience_get(self, hostType=None, hostName=None, manageLevel=None, manageIp=None, businessid=None, alarmRuleid=None,
title=None, tagid=None, description=None):
api = ExperienceGet(_host=self.host)
api.hostType = hostType
api.hostName = hostName
api.manageLevel = manageLevel
api.manageIp = manageIp
api.businessid = businessid
api.alarmRuleid = alarmRuleid
api.title = title
api.tagid = tagid
api.description = description
@allure.step("调用接口:experience.items.list")
def experience_items_list(self, token=None, name=None):
api = ExperienceItemsList(_host=self.host)
api.token = token
api.name = name
api.get_response()
return api.response
......@@ -88,89 +78,57 @@ class TestExperienceGet(object):
parent_host=parent_host, available=available, monitor_status=monitor_status)
return hostid
@allure.title("experience.get:无参数调用")
@allure.story("查询主机监控:无参数调用")
@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("获取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")
def test_case_01(self):
host_name = self.base_host_name + "01"
asset_code = self.base_asset_code + "01"
manage_ip = self.base_manage_ip + "1"
parent_host = self.base_parent_host + "01"
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()
self.check_code(response=response, code=0)
@allure.title("experience.get:模糊查询hostName")
@allure.story("查询主机监控:模糊查询hostName")
self.get_base_token()
response = self.experience_items_list()
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("experience.items.list:token的用户已删除")
@allure.story("查询监控项下拉框:token的用户已删除")
@allure.severity("blocker")
def test_case_02(self):
host_name = self.base_host_name + "02"
asset_code = self.base_asset_code + "02"
manage_ip = self.base_manage_ip + "2"
parent_host = self.base_parent_host + "02"
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(hostName=host_name)
self.check_code(response=response, code=0)
data = UtilsResponse().get_data(response=response)
@allure.title("experience.get:查询assetCode")
@allure.story("查询主机监控:查询assetCode")
self.get_base_token()
self.update_members_del_flag(members_id=self.base_id, value=1)
response = self.experience_items_list(token=self.token)
self.check_code(response=response, code=2004)
self.check_msg(response=response, msg="用户不存在")
@allure.title("experience.items.list:token的用户已禁用")
@allure.story("查询监控项下拉框:token的用户已禁用")
@allure.severity("blocker")
def test_case_03(self):
host_name = self.base_host_name + "03"
asset_code = self.base_asset_code + "03"
manage_ip = self.base_manage_ip + "3"
parent_host = self.base_parent_host + "03"
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(assetCode=asset_code)
self.check_code(response=response, code=0)
data = UtilsResponse().get_data(response=response)
@allure.title("experience.get:模糊查询manageIp")
@allure.story("查询主机监控:模糊查询manageIp")
self.get_base_token()
self.update_members_status(members_id=self.base_id, value=1)
response = self.experience_items_list(token=self.token)
self.check_code(response=response, code=2003)
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("experience.items.list:成功查询")
@allure.story("查询监控项下拉框:成功查询")
@allure.severity("blocker")
def test_case_04(self):
host_name = self.base_host_name + "04"
asset_code = self.base_asset_code + "04"
manage_ip = self.base_manage_ip + "4"
parent_host = self.base_parent_host + "04"
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)
self.get_base_token()
epl_response = self.experience_items_list(token=self.token, name="PID")
self.check_code(response=epl_response, code=0)
if __name__ == "__main__":
......@@ -180,11 +138,11 @@ if __name__ == "__main__":
import os
# 执行自动化测试用例
case_info = os.path.split(__file__)
case = UtilsCmd().pytest_cmd()
r = UtilsPyTest(case=case, case_info=case_info)
r.run_main()
# a = TestExperienceGet()
# a.setup_class()
# a.test_case_04()
# case_info = os.path.split(__file__)
# case = UtilsCmd().pytest_cmd()
# r = UtilsPyTest(case=case, case_info=case_info)
# r.run_main()
a = TestExperienceItemsList()
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 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