Commit 88847c35 by sanshi

删除资产

parent 01641af5
# -*- coding: utf-8 -*-
# 查询资产
# 作者: 陈磊
# 时间: 2019-12-03
from WorkUtils.UtilsRequest import UtilsRequest
from WorkUtils.UtilsLog import UtilsLog
from WorkApi.ApiBase import ApiBase, GetBase
class DeviceGet(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 = "/device/get"
self._url = self._host + self._path
self._params = {}
self._json = {}
self._data = {}
self.response = ""
self.token = None
self.name = None
self.type = None
self.manageLevel = None
self.monitorStatus = None
self.available = None
self.parentHost = None
self.businessIds = None
self.memberId = None
self.factoryId = None
self.ipBegin = None
self.ipEnd = 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="name", value=self.name)
base.dict_add_key(_key="type", value=self.type)
base.dict_add_key(_key="manageLevel", value=self.manageLevel)
base.dict_add_key(_key="monitorStatus", value=self.monitorStatus)
base.dict_add_key(_key="available", value=self.available)
base.dict_add_key(_key="parentHost", value=self.parentHost)
base.dict_add_key(_key="businessIds", value=self.businessIds)
base.dict_add_key(_key="memberId", value=self.memberId)
base.dict_add_key(_key="factoryId", value=self.factoryId)
base.dict_add_key(_key="ipBegin", value=self.ipBegin)
base.dict_add_key(_key="ipEnd", value=self.ipEnd)
self._params = base._json
self.response = self.api.get(url=self._url, headers=self._headers, params=self._params)
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-12-02
from __future__ import division
from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkUtils.UtilsResponse import UtilsResponse
from WorkApi.API.Problem.problem_acknowledge import ProblemAcknowledge
from WorkData.Zabbix.events import DataEvents
from WorkCase import CaseBase
import allure
@allure.feature("测试模块:problem.acknowledge")
class TestProblemAcknowledge(object):
log = UtilsLog()
env = CaseBase().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"]
base_name = "SS EVENT"
@classmethod
def setup_class(cls):
cls.log.debug("开始执行测试套件.......")
session = UtilsDataBase().conn_mysql(db_url=cls.db_url, db_port=cls.db_port, db_base=cls.db_base, db_user=cls.db_user, db_pw=cls.db_pw)
DataEvents().delete_name(session=session, name=cls.base_name)
@classmethod
def teardown_class(cls):
cls.log.debug("结束执行测试套件.......")
def setup_method(self):
self.log.debug("测试用例执行开始...")
def teardown_method(self):
self.log.debug("测试用例执行结束...")
@allure.step("调用接口:problem.acknowledge")
def problem_acknowledge(self, eventids=None, action=None):
api = ProblemAcknowledge(_host=self.host)
api.eventids = eventids
api.action = action
api.get_response()
return api.response
@allure.step("连接数据库:zabbix")
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("查询表:events")
def select_events(self, eventid=None, objectid=None):
session = self.db_session()
sql = DataEvents().select_all_from_allKeys(session=session, eventid=eventid, objectid=objectid)
return sql
@allure.step("新增表数据:events")
def insert_events(self, eventid=None, source=None, _object=None, objectid=None, clock=None, value=None, acknowledged=None,
ns=None, name=None, severity=None):
session = self.db_session()
sql = DataEvents().insert_one(session, eventid=eventid, source=source, _object=_object, objectid=objectid, clock=clock,
value=value, acknowledged=acknowledged, ns=ns, name=name, severity=severity)
return sql
@allure.step("断言返回结果:校验排序")
def check_sortfield(self, response, possible):
result = UtilsResponse().get_result(response=response)
UtilsResponse().check_sort(_list=result, key="eventid", possible=possible)
@allure.step("断言返回结果:校验返回数据的数量")
def check_num(self, response, num):
result = UtilsResponse().get_result(response=response)
assert len(result) == num
@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.step("创建测试数据")
def case_create(self, eventid):
self.insert_events(eventid=eventid, source=0, _object=0, objectid=10000, clock=1568790047, value=1, acknowledged=1, ns=937649172,
name=self.base_name, severity=0)
@allure.title("problem.acknowledge:action为空,返回异常")
@allure.story("告警忽略/关闭:action为空,返回异常")
@allure.severity("blocker")
def test_case_01(self):
response = self.problem_acknowledge()
self.check_code(response=response, code=100)
self.check_msg(response=response, msg="action 值错误")
@allure.title("problem.acknowledge:eventids为空,返回异常")
@allure.story("告警忽略/关闭:eventids为空,返回异常")
def test_case_02(self):
response = self.problem_acknowledge(action=1)
self.check_code(response=response, code=100)
self.check_msg(response=response, msg="[eventids]不能为空")
@allure.title("problem.acknowledge:action=1 关闭告警")
@allure.story("告警忽略/关闭:action=1 关闭告警")
def test_case_03(self):
event_id = 1
self.case_create(eventid=event_id)
response = self.problem_acknowledge(eventids=[event_id], action=1)
self.check_code(response=response, code=0)
@allure.title("problem.acknowledge:action=2 忽略告警")
@allure.story("告警忽略/关闭:action=2 忽略告警")
def test_case_04(self):
event_id = 2
self.case_create(eventid=event_id)
response = self.problem_acknowledge(eventids=[event_id], action=2)
self.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 = TestProblemAcknowledge()
a.setup_class()
a.test_case_04()
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-12-02
from __future__ import division
from WorkApi.APP.Api.api_login import ApiLogin
from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkUtils.UtilsResponse import UtilsResponse
from WorkApi.APP.Analyze.analyze_general import AnalyzeGeneral
from WorkCase import CaseBase
import allure
@allure.feature("测试模块:analyze.general")
class TestAnalyzeGeneral(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"]
base_env = CaseBase().environment
base_host = base_env["host"]
login_name = "SS测试用户名"
base_id = 10
base_password = "123456"
@classmethod
def setup_class(cls):
cls.log.debug("开始执行测试套件.......")
@classmethod
def teardown_class(cls):
cls.log.debug("结束执行测试套件.......")
def setup_method(self):
self.log.debug("测试用例执行开始...")
def teardown_method(self):
self.log.debug("测试用例执行结束...")
@allure.step("调用接口:analyze.general")
def analyze_general(self, token=None, startTime=None, endTime=None, severity=None, manageLevel=None, resloveFlag=None,
businessId=None, hostType=None, manageIp=None, alarmRuleid=None, ruleDescription=None, hostid=None,
itemid=None):
api = AnalyzeGeneral(_host=self.host)
api.token = token
api.startTime = startTime
api.endTime = endTime
api.severity = severity
api.manageLevel = manageLevel
api.resloveFlag = resloveFlag
api.businessId = businessId
api.hostType = hostType
api.manageIp = manageIp
api.alarmRuleid = alarmRuleid
api.ruleDescription = ruleDescription
api.hostid = hostid
api.itemid = itemid
api.get_response()
return api.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("断言返回结果:校验排序")
def check_sortfield(self, response, possible):
result = UtilsResponse().get_result(response=response)
UtilsResponse().check_sort(_list=result, key="eventid", possible=possible)
@allure.step("断言返回结果:校验返回数据的数量")
def check_num(self, response, num):
result = UtilsResponse().get_result(response=response)
assert len(result) == num
@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.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("analyze.general:token未传")
@allure.story("查询通用告警:token未传")
@allure.severity("blocker")
def test_case_01(self):
self.get_base_token()
response = self.analyze_general()
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("analyze.general: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.analyze_general(token=self.token)
self.check_code(response=response, code=2004)
self.check_msg(response=response, msg="用户不存在")
@allure.title("analyze.general: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.analyze_general(token=self.token)
self.check_code(response=response, code=2003)
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("analyze.general:problemName成功查询")
@allure.story("查询通用告警:problemName成功查询")
@allure.severity("blocker")
def test_case_04(self):
self.get_base_token()
response = self.analyze_general(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 = TestAnalyzeGeneral()
a.setup_class()
a.test_case_04()
......@@ -218,11 +218,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 = TestDeviceDelete()
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 = TestDeviceDelete()
# a.setup_class()
# a.test_case_04()
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-12-03
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.Device.device_create import DeviceCreate
from WorkApi.APP.Device.device_get import DeviceGet
from WorkData.Argus.members import DataMembers
from WorkData.Argus.hosts import DataHosts
from WorkData.Argus.alarm_rule import DataAlarmRule
import allure
@allure.feature("测试模块:device.get")
class TestDeviceGet(object):
log = UtilsLog()
env = CaseBase().app_environment
host = "http://172.16.3.78:3334"
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_type_agent = 126
base_type_snmp = 127
base_ip = "172.16.3.170"
base_dns = "sanshi.zmops.com"
base_port = 999
base_name = "SS测试资产"
@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_name)
@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("调用接口:device.create")
def device_create(self, token=None, hostName=None, hostType=None, manageLevel=None, iplist=None, dns=None,
monitorInterface=None, monitorType=None,
parentHost=None, businessIds=None, opsPerson=None, snmpCommunity=None, ipmiAuthtype=None,
ipmiPrivilege=None, ipmiUsername=None, ipmiPassword=None,
factory=None, model=None, version=None, serialnumber=None,
description=None, monitorStatus=None):
api = DeviceCreate(_host=self.host)
api.token = token
api.hostName = hostName
api.hostType = hostType
api.manageLevel = manageLevel
api.iplist = iplist
api.dns = dns
api.monitorInterface = monitorInterface
api.monitorType = monitorType
api.parentHost = parentHost
api.businessIds = businessIds
api.opsPerson = opsPerson
api.snmpCommunity = snmpCommunity
api.ipmiAuthtype = ipmiAuthtype
api.ipmiPrivilege = ipmiPrivilege
api.ipmiUsername = ipmiUsername
api.ipmiPassword = ipmiPassword
api.factory = factory
api.model = model
api.version = version
api.serialnumber = serialnumber
api.description = description
api.monitorStatus = monitorStatus
api.get_response()
return api.response
@allure.step("调用接口:device.get")
def device_get(self, token=None, name=None, _type=None, manageLevel=None, monitorStatus=None,
parentHost=None, businessIds=None, available=None, memberId=None, factoryId=None,
ipBegin=None, ipEnd=None):
api = DeviceGet(_host=self.host)
api.token = token
api.name = name
api.type = _type
api.manageLevel = manageLevel
api.monitorStatus = monitorStatus
api.available = available
api.parentHost = parentHost
api.businessIds = businessIds
api.memberId = memberId
api.factoryId = factoryId
api.ipBegin = ipBegin
api.ipEnd = ipEnd
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("查询表:hosts")
def select_hosts(self, hostid=None, host_name=None, available=None, monitor_status=None):
session = self.db_session()
sql = DataHosts().select_all_from_allKeys(session=session, hostid=hostid, host_name=host_name, available=available, monitor_status=monitor_status)
return sql
@allure.step("校验查询结果")
def check_select(self, response, name, manage_ip, manage_level, host_type,
monitor_status, iplist, dns, monitor_interface, business_ids, ops_person, factory,
model, version, serialnumber, description, snmp_community, ipmi_authtype, ipmi_privilege,
ipmi_username, ipmi_password):
data = UtilsResponse().get_data(response=response)
sql = self.select_hosts(hostid=data)
for x, y in enumerate(sql):
assert y.host_name == name
assert y.manage_ip == manage_ip
# assert y.departmentid == departmentid
assert y.manage_level == manage_level
assert y.host_type == host_type
# assert y.parent_host == parent_host
# assert y.available == available
assert y.monitor_status == monitor_status
assert y.iplist == iplist
assert y.dns == dns
assert int(y.monitor_interface) == monitor_interface
assert int(y.business_ids) == business_ids
# assert y.port == port
assert y.ops_person == ops_person
assert y.factory == factory
assert y.model == model
assert y.version == version
assert y.serialnumber == serialnumber
assert y.description == description
assert y.snmp_community == snmp_community
assert y.ipmi_authtype == ipmi_authtype
assert y.ipmi_privilege == ipmi_privilege
assert y.ipmi_username == ipmi_username
assert y.ipmi_password == ipmi_password
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("device.create:token未传")
@allure.story("创建资产:token未传")
@allure.severity("blocker")
def test_case_01(self):
self.get_base_token()
response = self.device_create()
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("device.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.device_create(token=self.token)
self.check_code(response=response, code=2004)
self.check_msg(response=response, msg="用户不存在")
@allure.title("device.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.device_create(token=self.token)
self.check_code(response=response, code=2003)
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("device.create:创建agent资产,ip识别")
@allure.story("创建资产:创建agent资产,ip识别")
@allure.severity("blocker")
def test_case_04(self):
self.get_base_token()
name = self.base_name + "04"
response = self.device_create(token=self.token, hostName=name, hostType=self.base_type_agent, iplist=self.base_ip, monitorInterface=self.base_port,
monitorType=1)
self.check_code(response=response, code=0)
@allure.title("device.create:创建agent资产,dns识别")
@allure.story("创建资产:创建agent资产,dns识别")
@allure.severity("blocker")
def test_case_05(self):
self.get_base_token()
name = self.base_name + "05"
response = self.device_create(token=self.token, hostName=name, hostType=self.base_type_agent, iplist=self.base_ip, dns=self.base_dns,
monitorInterface=self.base_port, monitorType=2)
self.check_code(response=response, code=0)
@allure.title("device.create:创建snmp资产,ip识别")
@allure.story("创建资产:创建snmp资产,ip识别")
@allure.severity("blocker")
def test_case_06(self):
self.get_base_token()
name = self.base_name + "06"
response = self.device_create(token=self.token, hostName=name, hostType=self.base_type_snmp, iplist=self.base_ip, monitorInterface=self.base_port,
monitorType=1)
self.check_code(response=response, code=0)
@allure.title("device.create:创建snmp资产,dns识别")
@allure.story("创建资产:创建snmp资产,dns识别")
@allure.severity("blocker")
def test_case_07(self):
self.get_base_token()
name = self.base_name + "07"
response = self.device_create(token=self.token, hostName=name, hostType=self.base_type_snmp, iplist=self.base_ip, dns=self.base_dns,
monitorInterface=self.base_port, monitorType=2)
self.check_code(response=response, code=0)
@allure.title("device.create:创建资产-所有字段")
@allure.story("创建资产:创建资产-所有字段")
def test_case_08(self):
self.get_base_token()
name = self.base_name + "08"
response = self.device_create(token=self.token, hostName=name, hostType=self.base_type_agent, iplist=self.base_ip, monitorInterface=self.base_port,
monitorType=1, manageLevel=1, parentHost="parentHost", businessIds=1, opsPerson=11, snmpCommunity="snmpCommunity",
ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword",
factory="factory", model="model", version="version", serialnumber="serialnumber", description="description",
monitorStatus=1)
self.check_code(response=response, code=0)
self.check_select(response=response, name=name, manage_ip=self.base_ip, manage_level=1, host_type=self.base_type_agent, monitor_status=1,
iplist=self.base_ip, dns=None, monitor_interface=self.base_port, business_ids=1, ops_person=11, snmp_community="snmpCommunity",
ipmi_authtype=1, ipmi_privilege=1, ipmi_username="ipmiUsername", ipmi_password="ipmiPassword",
factory="factory", model="model", version="version", serialnumber="serialnumber", description="description",)
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 = TestDeviceGet()
# a.setup_class()
# a.test_case_08()
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