Commit ba9dc48c by sanshi

整个资产代码重构

parent d54c67cc
# -*- coding: utf-8 -*-
# 更新资产
# 作者: 陈磊
# 时间: 2019-12-13
from WorkUtils.UtilsRequest import UtilsRequest
from WorkUtils.UtilsLog import UtilsLog
from WorkApi.ApiBase import ApiBase, GetBase
class DeviceUpdate(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/update"
self._url = self._host + self._path
self._params = {}
self._json = {}
self._data = {}
self.response = ""
self.token = None
self.hostid = None
self.hostName = None
self.hostType = None
self.manageLevel = None
self.iplist = None
self.port = None
self.dns = None
self.monitorInterface = None
self.monitorType = None
self.parentHost = None
self.businessIds = None
self.businessTree = None
self.opsPerson = None
self.snmpCommunity = None
self.ipmiAuthtype = None
self.ipmiPrivilege = None
self.ipmiUsername = None
self.ipmiPassword = None
self.factoryId = None
self.model = None
self.version = None
self.serialnumber = None
self.description = None
self.monitorStatus = 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="hostid", value=self.hostid)
base.dict_add_key(_key="hostName", value=self.hostName)
base.dict_add_key(_key="hostType", value=self.hostType)
base.dict_add_key(_key="manageLevel", value=self.manageLevel)
base.dict_add_key(_key="iplist", value=self.iplist)
base.dict_add_key(_key="port", value=self.port)
base.dict_add_key(_key="dns", value=self.dns)
base.dict_add_key(_key="monitorInterface", value=self.monitorInterface)
base.dict_add_key(_key="monitorType", value=self.monitorType)
base.dict_add_key(_key="parentHost", value=self.parentHost)
base.dict_add_key(_key="businessIds", value=self.businessIds)
base.dict_add_key(_key="businessTree", value=self.businessTree)
base.dict_add_key(_key="opsPerson", value=self.opsPerson)
base.dict_add_key(_key="snmpCommunity", value=self.snmpCommunity)
base.dict_add_key(_key="ipmiAuthtype", value=self.ipmiAuthtype)
base.dict_add_key(_key="ipmiPrivilege", value=self.ipmiPrivilege)
base.dict_add_key(_key="ipmiUsername", value=self.ipmiUsername)
base.dict_add_key(_key="ipmiPassword", value=self.ipmiPassword)
base.dict_add_key(_key="factoryId", value=self.factoryId)
base.dict_add_key(_key="model", value=self.model)
base.dict_add_key(_key="version", value=self.version)
base.dict_add_key(_key="serialnumber", value=self.serialnumber)
base.dict_add_key(_key="description", value=self.description)
base.dict_add_key(_key="monitorStatus", value=self.monitorStatus)
self._json = base._json
self.response = self.api.post(url=self._url, headers=self._headers, json=self._json)
...@@ -9,6 +9,7 @@ from __future__ import division ...@@ -9,6 +9,7 @@ from __future__ import division
import pytest import pytest
from WorkCase import CaseBase from WorkCase import CaseBase
from WorkCase.APP import AppBase
from WorkUtils.UtilsLog import UtilsLog from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkUtils.UtilsResponse import UtilsResponse from WorkUtils.UtilsResponse import UtilsResponse
...@@ -42,9 +43,11 @@ class TestDeviceAssetGetFactoryList(object): ...@@ -42,9 +43,11 @@ class TestDeviceAssetGetFactoryList(object):
base_type_snmp = 127 base_type_snmp = 127
base_ip = "172.16.3.171" base_ip = "172.16.3.171"
base_dns = "sanshi.zmops.com" base_dns = "sanshi.zmops.com"
base_port = 999 base_port = 161
base_name = "SS测试资产-资产IPS" base_name = "SS 自动化专用"
base_business_id_1 = "12"
base_business_id_2 = "13"
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
...@@ -58,79 +61,17 @@ class TestDeviceAssetGetFactoryList(object): ...@@ -58,79 +61,17 @@ class TestDeviceAssetGetFactoryList(object):
def setup_method(self): def setup_method(self):
self.log.debug("测试用例执行开始...") self.log.debug("测试用例执行开始...")
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["ON"]) self.app = AppBase(host=self.host)
self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"])
self.token = self.app.get_base_token(login_name=self.login_name, base_password=self.base_password)
def teardown_method(self): def teardown_method(self):
self.log.debug("测试用例执行结束...") self.log.debug("测试用例执行结束...")
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["ON"])
@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") self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"])
def update_members_status(self, members_id=None, value=None): self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"])
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,
factoryId=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.factoryId = factoryId
api.model = model
api.version = version
api.serialnumber = serialnumber
api.description = description
api.monitorStatus = monitorStatus
api.get_response()
return api.response
@allure.step("调用接口:device.asset.getFactoryList")
def device_asset_getFactoryList(self, token=None, hostType=None):
api = DeviceAssetGetFactoryList(_host=self.host)
api.token = token
api.hostType = hostType
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") @allure.step("连接数据库:Argus")
def db_session(self): def db_session(self):
...@@ -143,91 +84,67 @@ class TestDeviceAssetGetFactoryList(object): ...@@ -143,91 +84,67 @@ class TestDeviceAssetGetFactoryList(object):
sql = DataHosts().select_all_from_allKeys(session=session, hostid=hostid, host_name=host_name, available=available, monitor_status=monitor_status) sql = DataHosts().select_all_from_allKeys(session=session, hostid=hostid, host_name=host_name, available=available, monitor_status=monitor_status)
return sql return sql
@allure.step("创建测试数据")
def case_create(self, num):
self.name = self.base_name + num
response = self.device_create(token=self.token, hostName=self.name, hostType=self.base_type_agent, iplist=self.base_ip, monitorInterface=self.base_port,
monitorType=1, manageLevel=1, parentHost=1, businessIds=1, opsPerson=11, snmpCommunity="snmpCommunity",
ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword",
factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description",
monitorStatus=1)
self.check_code(response=response, code=0)
self.device_id = UtilsResponse().get_data(response=response)
@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.asset.getFactoryList:token未传") @allure.title("device.asset.getFactoryList:token未传")
@allure.story("查询品牌下拉框:token未传") @allure.story("查询品牌下拉框:token未传")
@allure.severity("blocker") @allure.severity("blocker")
@pytest.mark.skip(reason="此接口未加入token验证") @pytest.mark.skip(reason="此接口未加入token验证")
def test_case_01(self): def test_case_01(self):
self.get_base_token() response = self.app.device_asset_getFactoryList()
self.app.check_code(response=response, code=2001)
response = self.device_asset_getFactoryList() self.app.check_msg(response=response, msg="无token,请重新登录")
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("device.asset.getFactoryList:token的用户已删除") @allure.title("device.asset.getFactoryList:token的用户已删除")
@allure.story("查询品牌下拉框:token的用户已删除") @allure.story("查询品牌下拉框:token的用户已删除")
@allure.severity("blocker") @allure.severity("blocker")
@pytest.mark.skip(reason="此接口未加入token验证") @pytest.mark.skip(reason="此接口未加入token验证")
def test_case_02(self): def test_case_02(self):
self.get_base_token() self.app.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["ON"])
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["ON"]) response = self.app.device_asset_getFactoryList(token=self.token)
response = self.device_asset_getFactoryList(token=self.token) self.app.check_code(response=response, code=2004)
self.check_code(response=response, code=2004) self.app.check_msg(response=response, msg="用户不存在")
self.check_msg(response=response, msg="用户不存在")
@allure.title("device.asset.getFactoryList:token的用户已禁用") @allure.title("device.asset.getFactoryList:token的用户已禁用")
@allure.story("查询品牌下拉框:token的用户已禁用") @allure.story("查询品牌下拉框:token的用户已禁用")
@allure.severity("blocker") @allure.severity("blocker")
@pytest.mark.skip(reason="此接口未加入token验证") @pytest.mark.skip(reason="此接口未加入token验证")
def test_case_03(self): def test_case_03(self):
self.get_base_token() self.app.update_members_status(members_id=self.base_id, value=CaseBase().status["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["OFF"]) response = self.app.device_asset_getFactoryList(token=self.token)
response = self.device_asset_getFactoryList(token=self.token) self.app.check_code(response=response, code=2003)
self.check_code(response=response, code=2003) self.app.check_msg(response=response, msg="账户已被禁用")
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("device.asset.getFactoryList:无参数调用") @allure.title("device.asset.getFactoryList:无参数调用")
@allure.story("查询品牌下拉框:无参数调用") @allure.story("查询品牌下拉框:无参数调用")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_04(self): def test_case_04(self):
self.get_base_token() response = self.app.device_asset_getFactoryList(token=self.token)
self.case_create(num="04") self.app.check_code(response=response, code=0)
response = self.device_asset_getFactoryList(token=self.token)
self.check_code(response=response, code=0)
@allure.title("device.asset.getFactoryList:hostType查询") @allure.title("device.asset.getFactoryList:hostType查询")
@allure.story("查询品牌下拉框:hostType查询") @allure.story("查询品牌下拉框:hostType查询")
def test_case_05(self): def test_case_05(self):
self.get_base_token() name = self.base_name + "05"
self.app.case_create_host(name=name, host_type=self.base_type_agent,
iplist=self.base_ip, port=self.base_port,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
response = self.device_asset_getFactoryList(token=self.token, hostType=self.base_type_agent) response = self.app.device_asset_getFactoryList(token=self.token, hostType=self.base_type_agent)
self.check_code(response=response, code=0) self.app.check_code(response=response, code=0)
data = UtilsResponse().get_data(response=response) self.app.check_keyValue(UtilsResponse().get_data(response=response), _key="name", _value="SS专用")
assert data[0]["name"] == "SS专用" self.app.check_keyValue(UtilsResponse().get_data(response=response), _key="id", _value=3)
assert data[0]["id"] == 3
@allure.title("device.asset.getFactoryList:hostType查询") @allure.title("device.asset.getFactoryList:hostType查询")
@allure.story("查询品牌下拉框:hostType查询") @allure.story("查询品牌下拉框:hostType查询")
def test_case_06(self): def test_case_06(self):
self.get_base_token() name = self.base_name + "06"
self.app.case_create_host(name=name, host_type=self.base_type_snmp,
iplist=self.base_ip, port=self.base_port,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
response = self.device_asset_getFactoryList(token=self.token, hostType=self.base_type_snmp) response = self.app.device_asset_getFactoryList(token=self.token, hostType=self.base_type_snmp)
self.check_code(response=response, code=0) self.app.check_code(response=response, code=0)
data = UtilsResponse().get_data(response=response) self.app.check_keyValue(UtilsResponse().get_data(response=response), _key="name", _value="SS专用")
assert data[0]["name"] == "SS专用" self.app.check_keyValue(UtilsResponse().get_data(response=response), _key="id", _value=3)
assert data[0]["id"] == 3
if __name__ == "__main__": if __name__ == "__main__":
...@@ -244,4 +161,5 @@ if __name__ == "__main__": ...@@ -244,4 +161,5 @@ if __name__ == "__main__":
# a = TestDeviceAssetGetFactoryList() # a = TestDeviceAssetGetFactoryList()
# a.setup_class() # a.setup_class()
# a.setup_method()
# a.test_case_05() # a.test_case_05()
...@@ -9,6 +9,7 @@ from __future__ import division ...@@ -9,6 +9,7 @@ from __future__ import division
import pytest import pytest
from WorkCase import CaseBase from WorkCase import CaseBase
from WorkCase.APP import AppBase
from WorkUtils.UtilsLog import UtilsLog from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkUtils.UtilsResponse import UtilsResponse from WorkUtils.UtilsResponse import UtilsResponse
...@@ -42,9 +43,11 @@ class TestDeviceAssetIps(object): ...@@ -42,9 +43,11 @@ class TestDeviceAssetIps(object):
base_type_snmp = 127 base_type_snmp = 127
base_ip = "172.16.3.171" base_ip = "172.16.3.171"
base_dns = "sanshi.zmops.com" base_dns = "sanshi.zmops.com"
base_port = 999 base_port = 161
base_name = "SS测试资产-资产IPS" base_name = "SS 自动化专用"
base_business_id_1 = "12"
base_business_id_2 = "13"
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
...@@ -58,79 +61,17 @@ class TestDeviceAssetIps(object): ...@@ -58,79 +61,17 @@ class TestDeviceAssetIps(object):
def setup_method(self): def setup_method(self):
self.log.debug("测试用例执行开始...") self.log.debug("测试用例执行开始...")
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["ON"]) self.app = AppBase(host=self.host)
self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"])
self.token = self.app.get_base_token(login_name=self.login_name, base_password=self.base_password)
def teardown_method(self): def teardown_method(self):
self.log.debug("测试用例执行结束...") self.log.debug("测试用例执行结束...")
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["ON"])
@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") self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"])
def device_create(self, token=None, hostName=None, hostType=None, manageLevel=None, iplist=None, dns=None, self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"])
monitorInterface=None, monitorType=None,
parentHost=None, businessIds=None, opsPerson=None, snmpCommunity=None, ipmiAuthtype=None,
ipmiPrivilege=None, ipmiUsername=None, ipmiPassword=None,
factoryId=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.factoryId = factoryId
api.model = model
api.version = version
api.serialnumber = serialnumber
api.description = description
api.monitorStatus = monitorStatus
api.get_response()
return api.response
@allure.step("调用接口:device.asset.ips")
def device_asset_ips(self, token=None, ipName=None):
api = DeviceAssetIps(_host=self.host)
api.token = token
api.ipName = ipName
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") @allure.step("连接数据库:Argus")
def db_session(self): def db_session(self):
...@@ -154,74 +95,53 @@ class TestDeviceAssetIps(object): ...@@ -154,74 +95,53 @@ class TestDeviceAssetIps(object):
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
self.device_id = UtilsResponse().get_data(response=response) self.device_id = UtilsResponse().get_data(response=response)
@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.asset.ips:token未传") @allure.title("device.asset.ips:token未传")
@allure.story("查询资产IPS下拉框:token未传") @allure.story("查询资产IPS下拉框:token未传")
@allure.severity("blocker") @allure.severity("blocker")
@pytest.mark.skip(reason="此接口未加入token验证") @pytest.mark.skip(reason="此接口未加入token验证")
def test_case_01(self): def test_case_01(self):
self.get_base_token() response = self.app.device_asset_ips()
self.app.check_code(response=response, code=2001)
response = self.device_asset_ips() self.app.check_msg(response=response, msg="无token,请重新登录")
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("device.asset.ips:token的用户已删除") @allure.title("device.asset.ips:token的用户已删除")
@allure.story("查询资产IPS下拉框:token的用户已删除") @allure.story("查询资产IPS下拉框:token的用户已删除")
@allure.severity("blocker") @allure.severity("blocker")
@pytest.mark.skip(reason="此接口未加入token验证") @pytest.mark.skip(reason="此接口未加入token验证")
def test_case_02(self): def test_case_02(self):
self.get_base_token() self.app.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["ON"])
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["ON"]) response = self.app.device_asset_ips(token=self.token)
response = self.device_asset_ips(token=self.token) self.app.check_code(response=response, code=2004)
self.check_code(response=response, code=2004) self.app.check_msg(response=response, msg="用户不存在")
self.check_msg(response=response, msg="用户不存在")
@allure.title("device.asset.ips:token的用户已禁用") @allure.title("device.asset.ips:token的用户已禁用")
@allure.story("查询资产IPS下拉框:token的用户已禁用") @allure.story("查询资产IPS下拉框:token的用户已禁用")
@allure.severity("blocker") @allure.severity("blocker")
@pytest.mark.skip(reason="此接口未加入token验证") @pytest.mark.skip(reason="此接口未加入token验证")
def test_case_03(self): def test_case_03(self):
self.get_base_token() self.app.update_members_status(members_id=self.base_id, value=CaseBase().status["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["OFF"]) response = self.app.device_asset_ips(token=self.token)
response = self.device_asset_ips(token=self.token) self.app.check_code(response=response, code=2003)
self.check_code(response=response, code=2003) self.app.check_msg(response=response, msg="账户已被禁用")
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("device.asset.ips:无参数调用") @allure.title("device.asset.ips:无参数调用")
@allure.story("查询资产IPS下拉框:无参数调用") @allure.story("查询资产IPS下拉框:无参数调用")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_04(self): def test_case_04(self):
self.get_base_token() response = self.app.device_asset_ips(token=self.token)
self.case_create(num="04") self.app.check_code(response=response, code=0)
response = self.device_asset_ips(token=self.token)
self.check_code(response=response, code=0)
@allure.title("device.asset.ips:ipName查询") @allure.title("device.asset.ips:ipName查询")
@allure.story("查询资产IPS下拉框:ipName查询") @allure.story("查询资产IPS下拉框:ipName查询")
def test_case_05(self): def test_case_05(self):
self.get_base_token() name = self.base_name + "05"
self.case_create(num="05") self.app.case_create_host(name=name, host_type=self.base_type_snmp,
iplist=self.base_ip, port=self.base_port,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
response = self.device_asset_ips(token=self.token, ipName=self.base_ip) response = self.app.device_asset_ips(token=self.token, ipName=self.base_ip)
self.check_code(response=response, code=0) self.app.check_code(response=response, code=0)
data = UtilsResponse().get_data(response=response) self.app.check_keyValue(_json=UtilsResponse().get_data(response=response), _key="name", _value=self.base_ip)
ids = []
for x, y in enumerate(data):
ids.append(y["id"])
sql = self.select_hosts(hostid=y["id"])
for q, w in enumerate(sql):
assert y["name"] == w.manage_ip
assert self.device_id in ids
if __name__ == "__main__": if __name__ == "__main__":
...@@ -238,4 +158,5 @@ if __name__ == "__main__": ...@@ -238,4 +158,5 @@ if __name__ == "__main__":
# a = TestDeviceAssetIps() # a = TestDeviceAssetIps()
# a.setup_class() # a.setup_class()
# a.setup_method()
# a.test_case_05() # a.test_case_05()
...@@ -70,6 +70,7 @@ class TestDeviceDelete(object): ...@@ -70,6 +70,7 @@ class TestDeviceDelete(object):
def teardown_method(self): def teardown_method(self):
self.log.debug("测试用例执行结束...") self.log.debug("测试用例执行结束...")
self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"]) self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"]) self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"])
...@@ -135,7 +136,8 @@ class TestDeviceDelete(object): ...@@ -135,7 +136,8 @@ class TestDeviceDelete(object):
@allure.story("删除资产:删除一个") @allure.story("删除资产:删除一个")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_04(self): def test_case_04(self):
host_id_1 = self.app.case_create_host(base_name=self.base_name, num="04", host_type=self.base_type_snmp, name = self.base_name + "04"
host_id_1 = self.app.case_create_host(name=name, host_type=self.base_type_snmp,
iplist=self.base_ip, port=self.base_port, iplist=self.base_ip, port=self.base_port,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
response = self.app.device_delete(token=self.token, hostids=[host_id_1]) response = self.app.device_delete(token=self.token, hostids=[host_id_1])
...@@ -146,13 +148,16 @@ class TestDeviceDelete(object): ...@@ -146,13 +148,16 @@ class TestDeviceDelete(object):
@allure.story("删除资产:删除多个") @allure.story("删除资产:删除多个")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_05(self): def test_case_05(self):
host_id_1 = self.app.case_create_host(base_name=self.base_name, num="051", host_type=self.base_type_snmp, name_1 = self.base_name + "051"
name_2 = self.base_name + "052"
name_3 = self.base_name + "053"
host_id_1 = self.app.case_create_host(name=name_1, host_type=self.base_type_snmp,
iplist=self.base_ip, port=self.base_port, iplist=self.base_ip, port=self.base_port,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
host_id_2 = self.app.case_create_host(base_name=self.base_name, num="052", host_type=self.base_type_snmp, host_id_2 = self.app.case_create_host(name=name_2, host_type=self.base_type_snmp,
iplist=self.base_ip, port=self.base_port, iplist=self.base_ip, port=self.base_port,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
host_id_3 = self.app.case_create_host(base_name=self.base_name, num="053", host_type=self.base_type_snmp, host_id_3 = self.app.case_create_host(name=name_3, host_type=self.base_type_snmp,
iplist=self.base_ip, port=self.base_port, iplist=self.base_ip, port=self.base_port,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
response = self.app.device_delete(token=self.token, hostids=[host_id_1, host_id_2, host_id_3]) response = self.app.device_delete(token=self.token, hostids=[host_id_1, host_id_2, host_id_3])
......
...@@ -20,6 +20,7 @@ from WorkData.Argus.hosts import DataHosts ...@@ -20,6 +20,7 @@ from WorkData.Argus.hosts import DataHosts
from WorkData.Argus.alarm_rule import DataAlarmRule from WorkData.Argus.alarm_rule import DataAlarmRule
import allure import allure
from WorkCase.APP import AppBase
@allure.feature("测试模块:device.get") @allure.feature("测试模块:device.get")
...@@ -41,13 +42,13 @@ class TestDeviceGet(object): ...@@ -41,13 +42,13 @@ class TestDeviceGet(object):
base_type_snmp = 127 base_type_snmp = 127
base_ip = "172.16.3.170" base_ip = "172.16.3.170"
base_dns = "sanshi.zmops.com" base_dns = "sanshi.zmops.com"
base_port = 999 base_port = 161
base_name = "SS测试资产-查询" base_name = "SS 自动化专用"
base_business_id_1 = "12" base_business_id_1 = "12"
base_business_id_2 = "13" base_business_id_2 = "13"
base_business_name_1 = "SS专用业务1" base_business_name_1 = "SS 自动化专用业务1"
base_business_name_2 = "SS专用业务2" base_business_name_2 = "SS 自动化专用业务2"
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
...@@ -61,94 +62,16 @@ class TestDeviceGet(object): ...@@ -61,94 +62,16 @@ class TestDeviceGet(object):
def setup_method(self): def setup_method(self):
self.log.debug("测试用例执行开始...") self.log.debug("测试用例执行开始...")
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["ON"]) self.app = AppBase(host=self.host)
self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"])
self.token = self.app.get_base_token(login_name=self.login_name, base_password=self.base_password)
def teardown_method(self): def teardown_method(self):
self.log.debug("测试用例执行结束...") self.log.debug("测试用例执行结束...")
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["OFF"]) self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["ON"]) self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"])
@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, port=None, businessTree=None,
parentHost=None, businessIds=None, opsPerson=None, snmpCommunity=None, ipmiAuthtype=None,
ipmiPrivilege=None, ipmiUsername=None, ipmiPassword=None,
factoryId=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.port = port
api.dns = dns
api.monitorInterface = monitorInterface
api.monitorType = monitorType
api.parentHost = parentHost
api.businessIds = businessIds
api.businessTree = businessTree
api.opsPerson = opsPerson
api.snmpCommunity = snmpCommunity
api.ipmiAuthtype = ipmiAuthtype
api.ipmiPrivilege = ipmiPrivilege
api.ipmiUsername = ipmiUsername
api.ipmiPassword = ipmiPassword
api.factoryId = factoryId
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, menuId=None, name=None, _type=None, manageLevel=None, monitorStatus=None,
parentHost=None, businessIds=None, available=None, memberId=None, factoryId=None,
assetCode=None, manageIp=None):
api = DeviceGet(_host=self.host)
api.token = token
api.menuId = menuId
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.assetCode = assetCode
api.manageIp = manageIp
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") @allure.step("连接数据库:Argus")
def db_session(self): def db_session(self):
...@@ -161,163 +84,143 @@ class TestDeviceGet(object): ...@@ -161,163 +84,143 @@ class TestDeviceGet(object):
sql = DataHosts().select_all_from_allKeys(session=session, hostid=hostid, host_name=host_name, available=available, monitor_status=monitor_status) sql = DataHosts().select_all_from_allKeys(session=session, hostid=hostid, host_name=host_name, available=available, monitor_status=monitor_status)
return sql return sql
@allure.step("创建测试数据")
def case_create(self, num):
self.name = self.base_name + num
response = self.device_create(token=self.token, hostName=self.name, hostType=self.base_type_agent,
iplist=self.base_ip, monitorInterface=self.base_port,
monitorType=1, manageLevel=1, parentHost=1,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2,
businessTree="businessTree", opsPerson=11, snmpCommunity="snmpCommunity",
ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword",
factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description",
monitorStatus=1)
self.check_code(response=response, code=0)
self.device_id = UtilsResponse().get_data(response=response)
return self.device_id
@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 check_data(self, response, _key, _value):
data = UtilsResponse().get_data(response=response)
for x, y in enumerate(data["list"]):
assert y[_key] == _value
@allure.title("device.get:token未传") @allure.title("device.get:token未传")
@allure.story("查询资产:token未传") @allure.story("查询资产:token未传")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_01(self): def test_case_01(self):
self.get_base_token() response = self.app.device_get()
self.app.check_code(response=response, code=2001)
response = self.device_get() self.app.check_msg(response=response, msg="无token,请重新登录")
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("device.get:token的用户已删除") @allure.title("device.get:token的用户已删除")
@allure.story("查询资产:token的用户已删除") @allure.story("查询资产:token的用户已删除")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_02(self): def test_case_02(self):
self.get_base_token() self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["ON"])
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["ON"]) response = self.app.device_get(token=self.token)
response = self.device_get(token=self.token) self.app.check_code(response=response, code=2004)
self.check_code(response=response, code=2004) self.app.check_msg(response=response, msg="用户不存在")
self.check_msg(response=response, msg="用户不存在")
@allure.title("device.get:token的用户已禁用") @allure.title("device.get:token的用户已禁用")
@allure.story("查询资产:token的用户已禁用") @allure.story("查询资产:token的用户已禁用")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_03(self): def test_case_03(self):
self.get_base_token() self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["OFF"]) response = self.app.device_get(token=self.token)
response = self.device_get(token=self.token) self.app.check_code(response=response, code=2003)
self.check_code(response=response, code=2003) self.app.check_msg(response=response, msg="账户已被禁用")
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("device.get:无参数调用") @allure.title("device.get:无参数调用")
@allure.story("查询资产:无参数调用") @allure.story("查询资产:无参数调用")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_04(self): def test_case_04(self):
self.get_base_token() response = self.app.device_get(token=self.token)
self.case_create(num="04") self.app.check_code(response=response, code=0)
response = self.device_get(token=self.token)
self.check_code(response=response, code=0)
@allure.title("device.get:name查询") @allure.title("device.get:name查询")
@allure.story("查询资产:name查询") @allure.story("查询资产:name查询")
def test_case_05(self): def test_case_05(self):
self.get_base_token() name = self.base_name + "05"
self.case_create(num="05") self.app.case_create_host(name=name, host_type=self.base_type_snmp,
response = self.device_get(token=self.token, name=self.name) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
self.check_data(response=response, _key="name", _value=self.name) response = self.app.device_get(token=self.token, name=self.base_name + "05")
self.app.check_code(response=response, code=0)
self.app.check_data_keyValue(response=response, _key="name", _value=self.base_name + "05")
@allure.title("device.get:type查询") @allure.title("device.get:type查询")
@allure.story("查询资产:type查询") @allure.story("查询资产:type查询")
def test_case_06(self): def test_case_06(self):
self.get_base_token() name = self.base_name + "06"
self.case_create(num="06") self.app.case_create_host(name=name, host_type=self.base_type_snmp,
response = self.device_get(token=self.token, _type=self.base_type_agent) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
self.check_data(response=response, _key="hostType", _value=self.base_type_agent) response = self.app.device_get(token=self.token, _type=self.base_type_snmp)
self.app.check_code(response=response, code=0)
self.app.check_data_keyValue(response=response, _key="hostType", _value=self.base_type_snmp)
@allure.title("device.get:manageLevel查询") @allure.title("device.get:manageLevel查询")
@allure.story("查询资产:manageLevel查询") @allure.story("查询资产:manageLevel查询")
def test_case_07(self): def test_case_07(self):
self.get_base_token() name = self.base_name + "07"
self.case_create(num="07") self.app.case_create_host(name=name, host_type=self.base_type_snmp,
response = self.device_get(token=self.token, manageLevel=1) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
self.check_data(response=response, _key="manageLevel", _value=1) response = self.app.device_get(token=self.token, manageLevel=1)
self.app.check_code(response=response, code=0)
self.app.check_data_keyValue(response=response, _key="manageLevel", _value=1)
@allure.title("device.get:monitorStatus查询") @allure.title("device.get:monitorStatus查询")
@allure.story("查询资产:monitorStatus查询") @allure.story("查询资产:monitorStatus查询")
def test_case_08(self): def test_case_08(self):
self.get_base_token() name = self.base_name + "08"
self.case_create(num="08") self.app.case_create_host(name=name, host_type=self.base_type_snmp,
response = self.device_get(token=self.token, monitorStatus=1) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
self.check_data(response=response, _key="monitorStatus", _value=1) response = self.app.device_get(token=self.token, monitorStatus=1)
self.app.check_code(response=response, code=0)
self.app.check_data_keyValue(response=response, _key="monitorStatus", _value=1)
@allure.title("device.get:available查询") @allure.title("device.get:available查询")
@allure.story("查询资产:available查询") @allure.story("查询资产:available查询")
def test_case_09(self): def test_case_09(self):
self.get_base_token() name = self.base_name + "09"
self.case_create(num="09") self.app.case_create_host(name=name, host_type=self.base_type_snmp,
response = self.device_get(token=self.token, available=1) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
self.check_data(response=response, _key="available", _value=1) response = self.app.device_get(token=self.token, available=1)
self.app.check_code(response=response, code=0)
self.app.check_data_keyValue(response=response, _key="available", _value=1)
@allure.title("device.get:businessIds查询") @allure.title("device.get:businessIds查询")
@allure.story("查询资产:businessIds查询") @allure.story("查询资产:businessIds查询")
def test_case_10(self): def test_case_10(self):
self.get_base_token() name = self.base_name + "10"
self.case_create(num="10") self.app.case_create_host(name=name, host_type=self.base_type_snmp,
response = self.device_get(token=self.token, businessIds=self.base_business_id_1 + "," + self.base_business_id_2) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
self.check_data(response=response, _key="businessesNames", _value=self.base_business_name_1 + "," + self.base_business_name_2) response = self.app.device_get(token=self.token, businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
self.app.check_code(response=response, code=0)
self.app.check_data_keyValue(response=response, _key="businessesNames", _value=self.base_business_name_1 + "," + self.base_business_name_2)
@allure.title("device.get:memberId查询") @allure.title("device.get:memberId查询")
@allure.story("查询资产:memberId查询") @allure.story("查询资产:memberId查询")
def test_case_11(self): def test_case_11(self):
self.get_base_token() name = self.base_name + "11"
self.case_create(num="11") self.app.case_create_host(name=name, host_type=self.base_type_snmp,
response = self.device_get(token=self.token, memberId=11) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
self.check_data(response=response, _key="memberName", _value="sanshi") response = self.app.device_get(token=self.token, memberId=11)
self.app.check_code(response=response, code=0)
self.app.check_data_keyValue(response=response, _key="memberName", _value="sanshi")
@allure.title("device.get:factoryId查询") @allure.title("device.get:factoryId查询")
@allure.story("查询资产:factoryId查询") @allure.story("查询资产:factoryId查询")
def test_case_12(self): def test_case_12(self):
self.get_base_token() name = self.base_name + "12"
self.case_create(num="12") self.app.case_create_host(name=name, host_type=self.base_type_snmp,
response = self.device_get(token=self.token, factoryId=1) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
self.check_data(response=response, _key="factoryId", _value=1) response = self.app.device_get(token=self.token, factoryId=1)
self.app.check_code(response=response, code=0)
self.app.check_data_keyValue(response=response, _key="factoryId", _value=1)
@allure.title("device.get:manageIp查询") @allure.title("device.get:manageIp查询")
@allure.story("查询资产:manageIp查询") @allure.story("查询资产:manageIp查询")
def test_case_13(self): def test_case_13(self):
self.get_base_token() name = self.base_name + "13"
self.case_create(num="13") self.app.case_create_host(name=name, host_type=self.base_type_snmp,
response = self.device_get(token=self.token, manageIp=self.base_ip) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2)
self.check_data(response=response, _key="manageIp", _value=self.base_ip) response = self.app.device_get(token=self.token, manageIp=self.base_ip)
self.app.check_code(response=response, code=0)
self.app.check_data_keyValue(response=response, _key="manageIp", _value=self.base_ip)
@allure.title("device.get:menuId查询") @allure.title("device.get:menuId查询")
@allure.story("查询资产:menuId查询") @allure.story("查询资产:menuId查询")
def test_case_14(self): def test_case_14(self):
self.get_base_token() response = self.app.device_get(token=self.token, menuId=1)
response = self.device_get(token=self.token, menuId=1) self.app.check_code(response=response, code=0)
self.check_code(response=response, code=0)
if __name__ == "__main__": if __name__ == "__main__":
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
from __future__ import division from __future__ import division
from WorkCase import CaseBase from WorkCase import CaseBase
from WorkCase.APP import AppBase
from WorkUtils.UtilsLog import UtilsLog from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkUtils.UtilsResponse import UtilsResponse from WorkUtils.UtilsResponse import UtilsResponse
...@@ -43,9 +44,9 @@ class TestDeviceStatus(object): ...@@ -43,9 +44,9 @@ class TestDeviceStatus(object):
base_type_snmp = 127 base_type_snmp = 127
base_ip = "172.16.3.170" base_ip = "172.16.3.170"
base_dns = "sanshi.zmops.com" base_dns = "sanshi.zmops.com"
base_port = 999 base_port = 161
base_name = "SS测试资产-状态变更" base_name = "SS 自动化专用"
base_business_id_1 = "12" base_business_id_1 = "12"
base_business_id_2 = "13" base_business_id_2 = "13"
...@@ -61,80 +62,17 @@ class TestDeviceStatus(object): ...@@ -61,80 +62,17 @@ class TestDeviceStatus(object):
def setup_method(self): def setup_method(self):
self.log.debug("测试用例执行开始...") self.log.debug("测试用例执行开始...")
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["ON"]) self.app = AppBase(host=self.host)
self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"])
self.token = self.app.get_base_token(login_name=self.login_name, base_password=self.base_password)
def teardown_method(self): def teardown_method(self):
self.log.debug("测试用例执行结束...") self.log.debug("测试用例执行结束...")
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["ON"])
@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") self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"])
def device_create(self, token=None, hostName=None, hostType=None, manageLevel=None, iplist=None, dns=None, self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"])
monitorInterface=None, monitorType=None,
parentHost=None, businessIds=None, opsPerson=None, snmpCommunity=None, ipmiAuthtype=None,
ipmiPrivilege=None, ipmiUsername=None, ipmiPassword=None,
factoryId=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.factoryId = factoryId
api.model = model
api.version = version
api.serialnumber = serialnumber
api.description = description
api.monitorStatus = monitorStatus
api.get_response()
return api.response
@allure.step("调用接口:device.status")
def device_status(self, token=None, hostids=None, monitorStatus=None):
api = DeviceStatus(_host=self.host)
api.token = token
api.hostids = hostids
api.monitorStatus = monitorStatus
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") @allure.step("连接数据库:Argus")
def db_session(self): def db_session(self):
...@@ -166,122 +104,119 @@ class TestDeviceStatus(object): ...@@ -166,122 +104,119 @@ class TestDeviceStatus(object):
assert x == 0 assert x == 0
assert sql != [] assert sql != []
@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, num):
name = self.base_name + num
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=1, businessIds=self.base_business_id_1 + "," + self.base_business_id_2,
opsPerson=11, snmpCommunity="snmpCommunity",
ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword",
factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description",
monitorStatus=1)
self.device_id = UtilsResponse().get_data(response=response)
return self.device_id
@allure.title("device.status:token未传") @allure.title("device.status:token未传")
@allure.story("变更状态:token未传") @allure.story("变更状态:token未传")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_01(self): def test_case_01(self):
self.get_base_token() response = self.app.device_status()
self.app.check_code(response=response, code=2001)
response = self.device_status() self.app.check_msg(response=response, msg="无token,请重新登录")
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("device.status:token的用户已删除") @allure.title("device.status:token的用户已删除")
@allure.story("变更状态:token的用户已删除") @allure.story("变更状态:token的用户已删除")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_02(self): def test_case_02(self):
self.get_base_token() self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["ON"])
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["ON"]) response = self.app.device_status(token=self.token)
response = self.device_status(token=self.token) self.app.check_code(response=response, code=2004)
self.check_code(response=response, code=2004) self.app.check_msg(response=response, msg="用户不存在")
self.check_msg(response=response, msg="用户不存在")
@allure.title("device.status:token的用户已禁用") @allure.title("device.status:token的用户已禁用")
@allure.story("变更状态:token的用户已禁用") @allure.story("变更状态:token的用户已禁用")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_03(self): def test_case_03(self):
self.get_base_token() self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["OFF"])
self.update_members_status(members_id=self.base_id, value=CaseBase().status["OFF"]) response = self.app.device_status(token=self.token)
response = self.device_status(token=self.token) self.app.check_code(response=response, code=2003)
self.check_code(response=response, code=2003) self.app.check_msg(response=response, msg="账户已被禁用")
self.check_msg(response=response, msg="账户已被禁用")
@allure.title("device.status:变更一个monitorStatus=0") @allure.title("device.status:变更一个monitorStatus=0")
@allure.story("变更状态:变更一个monitorStatus=0") @allure.story("变更状态:变更一个monitorStatus=0")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_04(self): def test_case_04(self):
self.get_base_token() name = self.base_name + "04"
host_id = self.app.case_create_host(name=name, host_type=self.base_type_snmp,
self.case_create(num="04") iplist=self.base_ip, port=self.base_port,
response = self.device_status(token=self.token, hostids=[self.device_id], monitorStatus=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2,
self.check_code(response=response, code=0) monitorStatus=0)
self.check_select(device_id=self.device_id, status=0) response = self.app.device_status(token=self.token, hostids=[host_id], monitorStatus=0)
self.app.check_code(response=response, code=0)
self.check_select(device_id=host_id, status=0)
@allure.title("device.status:变更一个monitorStatus=1") @allure.title("device.status:变更一个monitorStatus=1")
@allure.story("变更状态:变更一个monitorStatus=1") @allure.story("变更状态:变更一个monitorStatus=1")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_05(self): def test_case_05(self):
self.get_base_token() name = self.base_name + "05"
host_id = self.app.case_create_host(name=name, host_type=self.base_type_snmp,
self.case_create(num="05") iplist=self.base_ip, port=self.base_port,
response = self.device_status(token=self.token, hostids=[self.device_id], monitorStatus=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2,
self.check_code(response=response, code=0) monitorStatus=1)
self.check_select(device_id=self.device_id, status=0) response = self.app.device_status(token=self.token, hostids=[host_id], monitorStatus=0)
self.app.check_code(response=response, code=0)
response = self.device_status(token=self.token, hostids=[self.device_id], monitorStatus=1) self.check_select(device_id=host_id, status=0)
self.check_code(response=response, code=0)
self.check_select(device_id=self.device_id, status=1) response = self.app.device_status(token=self.token, hostids=[host_id], monitorStatus=1)
self.app.check_code(response=response, code=0)
self.check_select(device_id=host_id, status=1)
@allure.title("device.status:变更多个monitorStatus=0") @allure.title("device.status:变更多个monitorStatus=0")
@allure.story("变更状态:变更多个monitorStatus=0") @allure.story("变更状态:变更多个monitorStatus=0")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_06(self): def test_case_06(self):
self.get_base_token() name_1 = self.base_name + "061"
name_2 = self.base_name + "062"
device_id_1 = self.case_create(num="061") name_3 = self.base_name + "063"
device_id_2 = self.case_create(num="062")
device_id_3 = self.case_create(num="063") host_id_1 = self.app.case_create_host(name=name_1, host_type=self.base_type_snmp,
response = self.device_status(token=self.token, hostids=[device_id_1, device_id_2, device_id_3], monitorStatus=0) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2,
self.check_select(device_id=device_id_1, status=0) monitorStatus=1)
self.check_select(device_id=device_id_2, status=0) host_id_2 = self.app.case_create_host(name=name_2, host_type=self.base_type_snmp,
self.check_select(device_id=device_id_3, status=0) iplist=self.base_ip, port=self.base_port,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2,
monitorStatus=1)
host_id_3 = self.app.case_create_host(name=name_3, host_type=self.base_type_snmp,
iplist=self.base_ip, port=self.base_port,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2,
monitorStatus=1)
response = self.app.device_status(token=self.token, hostids=[host_id_1, host_id_2, host_id_3], monitorStatus=0)
self.app.check_code(response=response, code=0)
self.check_select(device_id=host_id_1, status=0)
self.check_select(device_id=host_id_2, status=0)
self.check_select(device_id=host_id_3, status=0)
@allure.title("device.status:变更多个monitorStatus=1") @allure.title("device.status:变更多个monitorStatus=1")
@allure.story("变更状态:变更多个monitorStatus=1") @allure.story("变更状态:变更多个monitorStatus=1")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_07(self): def test_case_07(self):
self.get_base_token() name_1 = self.base_name + "071"
name_2 = self.base_name + "072"
device_id_1 = self.case_create(num="071") name_3 = self.base_name + "073"
device_id_2 = self.case_create(num="072")
device_id_3 = self.case_create(num="073") host_id_1 = self.app.case_create_host(name=name_1, host_type=self.base_type_snmp,
response = self.device_status(token=self.token, hostids=[device_id_1, device_id_2, device_id_3], monitorStatus=0) iplist=self.base_ip, port=self.base_port,
self.check_code(response=response, code=0) businessIds=self.base_business_id_1 + "," + self.base_business_id_2,
self.check_select(device_id=device_id_1, status=0) monitorStatus=1)
self.check_select(device_id=device_id_2, status=0) host_id_2 = self.app.case_create_host(name=name_2, host_type=self.base_type_snmp,
self.check_select(device_id=device_id_3, status=0) iplist=self.base_ip, port=self.base_port,
businessIds=self.base_business_id_1 + "," + self.base_business_id_2,
device_id_1 = self.case_create(num="071") monitorStatus=1)
device_id_2 = self.case_create(num="072") host_id_3 = self.app.case_create_host(name=name_3, host_type=self.base_type_snmp,
device_id_3 = self.case_create(num="073") iplist=self.base_ip, port=self.base_port,
response = self.device_status(token=self.token, hostids=[device_id_1, device_id_2, device_id_3], monitorStatus=1) businessIds=self.base_business_id_1 + "," + self.base_business_id_2,
self.check_code(response=response, code=0) monitorStatus=1)
self.check_select(device_id=device_id_1, status=1) response = self.app.device_status(token=self.token, hostids=[host_id_1, host_id_2, host_id_3], monitorStatus=0)
self.check_select(device_id=device_id_2, status=1) self.app.check_code(response=response, code=0)
self.check_select(device_id=device_id_3, status=1) self.check_select(device_id=host_id_1, status=0)
self.check_select(device_id=host_id_2, status=0)
self.check_select(device_id=host_id_3, status=0)
response = self.app.device_status(token=self.token, hostids=[host_id_1, host_id_2, host_id_3], monitorStatus=1)
self.app.check_code(response=response, code=0)
self.check_select(device_id=host_id_1, status=1)
self.check_select(device_id=host_id_2, status=1)
self.check_select(device_id=host_id_3, status=1)
if __name__ == "__main__": if __name__ == "__main__":
...@@ -298,4 +233,5 @@ if __name__ == "__main__": ...@@ -298,4 +233,5 @@ if __name__ == "__main__":
# a = TestDeviceStatus() # a = TestDeviceStatus()
# a.setup_class() # a.setup_class()
# a.setup_method()
# a.test_case_04() # a.test_case_04()
...@@ -14,12 +14,27 @@ from WorkApi.APP.Businesses.businesses_delete import BusinessesDelete ...@@ -14,12 +14,27 @@ from WorkApi.APP.Businesses.businesses_delete import BusinessesDelete
from WorkApi.APP.Businesses.businesses_get import BusinessesGet from WorkApi.APP.Businesses.businesses_get import BusinessesGet
from WorkApi.APP.Businesses.businesses_tree import BusinessesTree from WorkApi.APP.Businesses.businesses_tree import BusinessesTree
from WorkApi.APP.Businesses.businesses_update import BusinessesUpdate from WorkApi.APP.Businesses.businesses_update import BusinessesUpdate
from WorkApi.APP.Device.Asset.device_asset_getFactoryList import DeviceAssetGetFactoryList
from WorkApi.APP.Device.Asset.device_asset_ips import DeviceAssetIps
from WorkApi.APP.Device.device_create import DeviceCreate from WorkApi.APP.Device.device_create import DeviceCreate
import allure import allure
from WorkApi.APP.Device.device_delete import DeviceDelete from WorkApi.APP.Device.device_delete import DeviceDelete
from WorkApi.APP.Device.device_get import DeviceGet from WorkApi.APP.Device.device_get import DeviceGet
from WorkApi.APP.Device.device_status import DeviceStatus
from WorkApi.APP.Experience.Items.experience_items_list import ExperienceItemsList
from WorkApi.APP.Experience.Problem.experience_problem_list import ExperienceProblemList
from WorkApi.APP.Experience.experience_create import ExperienceCreate
from WorkApi.APP.Experience.experience_delete import ExperienceDelete
from WorkApi.APP.Experience.experience_get import ExperienceGet
from WorkApi.APP.Experience.experience_update import ExperienceUpdate
from WorkApi.APP.File.file_upload import FileUpload from WorkApi.APP.File.file_upload import FileUpload
from WorkApi.APP.HostType.hostType_create import HostTypeCreate
from WorkApi.APP.HostType.hostType_delete import HostTypeDelete
from WorkApi.APP.HostType.hostType_get import HostTypeGet
from WorkApi.APP.HostType.hostType_list import HostTypeList
from WorkApi.APP.HostType.hostType_tree import HostTypeTree
from WorkApi.APP.HostType.hostType_update import HostTypeUpdate
from WorkApi.APP.Members.Get.members_get_role import MembersGetRole from WorkApi.APP.Members.Get.members_get_role import MembersGetRole
from WorkApi.APP.Members.Update.members_update_info import MembersUpdateInfo from WorkApi.APP.Members.Update.members_update_info import MembersUpdateInfo
from WorkApi.APP.Members.Update.members_update_status import MembersUpdateStatus from WorkApi.APP.Members.Update.members_update_status import MembersUpdateStatus
...@@ -262,15 +277,50 @@ class AppBase(object): ...@@ -262,15 +277,50 @@ class AppBase(object):
api.get_response() api.get_response()
return api.response return api.response
@allure.step("调用接口:device.status")
def device_status(self, token=None, hostids=None, monitorStatus=None):
api = DeviceStatus(_host=self.host)
api.token = token
api.hostids = hostids
api.monitorStatus = monitorStatus
api.get_response()
return api.response
@allure.step("调用接口:device.asset.ips")
def device_asset_ips(self, token=None, ipName=None):
api = DeviceAssetIps(_host=self.host)
api.token = token
api.ipName = ipName
api.get_response()
return api.response
@allure.step("调用接口:device.asset.getFactoryList")
def device_asset_getFactoryList(self, token=None, hostType=None):
api = DeviceAssetGetFactoryList(_host=self.host)
api.token = token
api.hostType = hostType
api.get_response()
return api.response
@allure.step("创建测试数据-资产") @allure.step("创建测试数据-资产")
def case_create_host(self, name, host_type, iplist, port, businessIds): def case_create_host(self, name, host_type, iplist, port, businessIds, monitorStatus=None):
response = self.device_create( if monitorStatus is not None:
token=self.token, hostName=name, hostType=host_type, iplist=iplist, monitorInterface=port,
monitorType=1, manageLevel=1, parentHost=1, businessIds=businessIds, response = self.device_create(
opsPerson=11, snmpCommunity="snmpCommunity", token=self.token, hostName=name, hostType=host_type, iplist=iplist, monitorInterface=port,
ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword", monitorType=1, manageLevel=1, parentHost=1, businessIds=businessIds,
factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description", opsPerson=11, snmpCommunity="snmpCommunity",
monitorStatus=1) ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword",
factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description",
monitorStatus=1)
else:
response = self.device_create(
token=self.token, hostName=name, hostType=host_type, iplist=iplist, monitorInterface=port,
monitorType=1, manageLevel=1, parentHost=1, businessIds=businessIds,
opsPerson=11, snmpCommunity="snmpCommunity",
ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword",
factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description",
monitorStatus=monitorStatus)
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
host_id = UtilsResponse().get_data(response=response) host_id = UtilsResponse().get_data(response=response)
return host_id return host_id
...@@ -325,6 +375,14 @@ class AppBase(object): ...@@ -325,6 +375,14 @@ class AppBase(object):
else: else:
assert y[_key] == _value assert y[_key] == _value
@allure.step("校验数据")
def check_keyValue(self, _json, _key, _value, isIn=None):
for x, y in enumerate(_json):
if isIn == 1:
assert _value in y[_key]
else:
assert y[_key] == _value
@allure.step("更新表数据:members -- del_flag") @allure.step("更新表数据:members -- del_flag")
def update_members_del_flag(self, session, members_id=None, value=None): def update_members_del_flag(self, session, members_id=None, value=None):
sql = DataMembers().update_del_flag(session=session, _id=members_id, value=value) sql = DataMembers().update_del_flag(session=session, _id=members_id, value=value)
...@@ -558,3 +616,168 @@ class AppBase(object): ...@@ -558,3 +616,168 @@ class AppBase(object):
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
rule_id = UtilsResponse().get_data(response=response) rule_id = UtilsResponse().get_data(response=response)
return rule_id return rule_id
@allure.step("调用接口:hosttype.create")
def hostType_create(self, token=None, title=None, parentId=None, templateIds=None, interfaces=None, description=None,
sortid=None):
api = HostTypeCreate(_host=self.host)
api.token = token
api.title = title
api.parentId = parentId
api.templateIds = templateIds
api.interfaces = interfaces
api.description = description
api.sortid = sortid
api.get_response()
return api.response
@allure.step("调用接口:hosttype.delete")
def hostType_delete(self, token=None, hosttypeids=None):
api = HostTypeDelete(_host=self.host)
api.token = token
api.hosttypeids = hosttypeids
api.get_response()
return api.response
@allure.step("调用接口:hosttype.get")
def hostType_get(self, token=None, title=None, parentId=None, description=None):
api = HostTypeGet(_host=self.host)
api.token = token
api.parentId = parentId
api.title = title
api.description = description
api.get_response()
return api.response
@allure.step("调用接口:hosttype.list")
def hostType_list(self, token=None, parentId=None):
api = HostTypeList(_host=self.host)
api.token = token
api.parentId = parentId
api.get_response()
return api.response
@allure.step("调用接口:hosttype.tree")
def hostType_tree(self, token=None):
api = HostTypeTree(_host=self.host)
api.token = token
api.get_response()
return api.response
@allure.step("调用接口:hosttype.update")
def hostType_update(self, token=None, _id=None, title=None, parentId=None, templateIds=None, interfaces=None, description=None,
sortid=None):
api = HostTypeUpdate(_host=self.host)
api.token = token
api.id = _id
api.title = title
api.parentId = parentId
api.templateIds = templateIds
api.interfaces = interfaces
api.description = description
api.sortid = sortid
api.get_response()
return api.response
@allure.step("创建测试数据")
def case_create_hostType(self, title, parentId, description):
response = self.hostType_create(token=self.token, title=title, parentId=parentId, description=description)
host_type_id = UtilsResponse().get_data(response=response)
return host_type_id
@allure.step("调用接口:experience.create")
def experience_create(self, token=None, title=None, content=None, businessids=None, hostTypes=None, hostids=None,
itemids=None, manageIpList=None, alarmRuleids=None, description=None, tagNameList=None, problemidList=None,
hostTypeTree=None):
api = ExperienceCreate(_host=self.host)
api.token = token
api.title = title
api.content = content
api.businessids = businessids
api.hostTypes = hostTypes
api.hostids = hostids
api.itemids = itemids
api.manageIpList = manageIpList
api.alarmRuleids = alarmRuleids
api.description = description
api.tagNameList = tagNameList
api.problemidList = problemidList
api.hostTypeTree = hostTypeTree
api.get_response()
return api.response
@allure.step("调用接口:experience.delete")
def experience_delete(self, token=None, experienceids=None):
api = ExperienceDelete(_host=self.host)
api.token = token
api.experienceids = experienceids
api.get_response()
return api.response
@allure.step("调用接口:experience.get")
def experience_get(self, token=None, hostType=None, hostName=None, manageLevel=None, manageIp=None, businessid=None, alarmRuleid=None,
itemid=None, title=None, tagid=None, tagName=None, description=None):
api = ExperienceGet(_host=self.host)
api.token = token
api.hostType = hostType
api.hostName = hostName
api.manageLevel = manageLevel
api.manageIp = manageIp
api.businessid = businessid
api.alarmRuleid = alarmRuleid
api.itemid = itemid
api.title = title
api.tagid = tagid
api.tagName = tagName
api.description = description
api.get_response()
return api.response
@allure.step("调用接口:experience.items.list")
def experience_items_list(self, token=None, itemName=None):
api = ExperienceItemsList(_host=self.host)
api.token = token
api.itemName = itemName
api.get_response()
return api.response
@allure.step("调用接口:experience.problem.list")
def experience_problem_list(self, token=None, problemName=None):
api = ExperienceProblemList(_host=self.host)
api.token = token
api.problemName = problemName
api.get_response()
return api.response
@allure.step("调用接口:experience.update")
def experience_update(self, token=None, _id=None, title=None, content=None, businessids=None, hostTypes=None,
hostids=None, itemids=None, manageIpList=None, alarmRuleids=None, description=None, tagNameList=None, problemidList=None,
hostTypeTree=None):
api = ExperienceUpdate(_host=self.host)
api.token = token
api.id = _id
api.title = title
api.content = content
api.businessids = businessids
api.hostTypes = hostTypes
api.hostids = hostids
api.itemids = itemids
api.manageIpList = manageIpList
api.alarmRuleids = alarmRuleids
api.description = description
api.tagNameList = tagNameList
api.problemidList = problemidList
api.hostTypeTree = hostTypeTree
api.get_response()
return api.response
@allure.step("创建测试数据-经验手册")
def case_create_experience(self, title, content, description, host_types, alarmRuleids=None, businessids=None,
hostids=None, host_ids=None, itemids=None, problemidLists=None, tagNameLists=None):
response = self.experience_create(token=self.token, title=title, content=content, hostTypes=host_types,
alarmRuleids=alarmRuleids, businessids=businessids, hostids=hostids,
manageIpList=host_ids, itemids=itemids, problemidList=problemidLists,
tagNameList=tagNameLists, description=description)
self.check_code(response=response, code=0)
experienceid = UtilsResponse().get_data(response=response)
return experienceid
...@@ -158,3 +158,21 @@ class DataHosts(object): ...@@ -158,3 +158,21 @@ class DataHosts(object):
self.log.error(error) self.log.error(error)
session.close() session.close()
return error return error
def select_all_like_host_name(self, session, host_name):
"""
:param session: 指针
:param host_name:
:return: 查询结果
"""
self.log.debug("查询数据库:")
try:
sql_rep = session.query(self.table).filter(self.table.host_name.like(str(host_name) + "%")).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
\ No newline at end of file
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