Commit 0c3e1ec3 by sanshi

整个经验手册重构

parent b1933529
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-11-27
import allure
from WorkApi.API.Problem.problem_get import ProblemGet
class ApiBase(object):
def __init__(self, host):
self.host = host
self.token = None
@allure.step("调用接口:problem.get")
def problem_get(self, eventids=None, groupids=None, hostids=None, objectids=None, applicationids=None,
source=None, _object=None, acknowledged=None, suppressed=None, severities=None, evaltype=None,
tags=None, recent=None, eventid_from=None, eventid_till=None, time_from=None,
time_till=None, selectAcknowledges=None, selectTags=None, selectSuppressionData=None,
countOutput=None, editable=None, excludeSearch=None,
_filter=None, limit=None, output=None, preservekeys=None, search=None, searchByAny=None,
searchWildcardsEnabled=None, sortfield=None, sortorder=None, startSearch=None):
api = ProblemGet(_host=self.host)
api.eventids = eventids
api.groupids = groupids
api.hostids = hostids
api.objectids = objectids
api.applicationids = applicationids
api.source = source
api.object = _object
api.acknowledged = acknowledged
api.suppressed = suppressed
api.severities = severities
api.evaltype = evaltype
api.tags = tags
api.recent = recent
api.eventid_from = eventid_from
api.eventid_till = eventid_till
api.time_from = time_from
api.time_till = time_till
api.selectAcknowledges = selectAcknowledges
api.selectTags = selectTags
api.selectSuppressionData = selectSuppressionData
api.countOutput = countOutput
api.editable = editable
api.excludeSearch = excludeSearch
api.filter = _filter
api.limit = limit
api.output = output
api.preservekeys = preservekeys
api.search = search
api.searchByAny = searchByAny
api.searchWildcardsEnabled = searchWildcardsEnabled
api.sortfield = sortfield
api.sortorder = sortorder
api.startSearch = startSearch
api.get_response()
return api.response
...@@ -9,6 +9,7 @@ from __future__ import division ...@@ -9,6 +9,7 @@ from __future__ import division
from WorkApi.APP.Api.api_login import ApiLogin from WorkApi.APP.Api.api_login import ApiLogin
from WorkApi.APP.Device.device_create import DeviceCreate from WorkApi.APP.Device.device_create import DeviceCreate
from WorkCase import CaseBase from WorkCase import CaseBase
from WorkCase.APP import AppBase
from WorkData.Argus.members import DataMembers from WorkData.Argus.members import DataMembers
from WorkUtils.UtilsLog import UtilsLog from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsResponse import UtilsResponse from WorkUtils.UtilsResponse import UtilsResponse
...@@ -55,19 +56,34 @@ class TestExperienceCreate(object): ...@@ -55,19 +56,34 @@ class TestExperienceCreate(object):
base_business_id_1 = "12" base_business_id_1 = "12"
base_business_id_2 = "13" base_business_id_2 = "13"
base_type_tree_1 = [1, 120, base_type_agent]
base_type_tree_2 = [1, 120, base_type_snmp]
base_ip = "172.16.3.170" base_ip = "172.16.3.170"
base_port = 161 base_port = 161
base_title = "SS测试经验标题" base_title = "SS 自动化专用 经验手册 标题"
base_content = "SS测试经验内容" base_content = "SS 自动化专用 经验手册 内容"
base_description = "SS 自动化专用 经验手册 描述"
base_name = "经验手册-测试数据" base_name = "SS 自动化专用 经验手册相关"
base_eventid = 91000000 base_eventid = 91000000
session = UtilsDataBase().conn_mysql(db_url=db_url, db_port=db_port, db_base=db_base, db_user=db_user, db_pw=db_pw)
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
cls.log.debug("开始执行测试套件.......") cls.log.debug("开始执行测试套件.......")
session = UtilsDataBase().conn_mysql(db_url=cls.db_url, db_port=cls.db_port, db_base=cls.db_base, db_user=cls.db_user, db_pw=cls.db_pw)
DataExperience().delete_like_title(session=session, title=cls.base_title) DataAlarmRule().delete_like_name(session=cls.session, name=cls.base_name)
DataBusinesses().delete_like_name(session=cls.session, name=cls.base_name)
sql = DataHosts().select_all_like_host_name(session=cls.session, host_name=cls.base_name)
for x, y in enumerate(sql):
DataHostsItems().delete_host_id(session=cls.session, host_id=y.hostid)
DataProblem().delete_like_name(session=cls.session, name=cls.base_name)
DataHosts().delete_like_host_name(session=cls.session, host_name=cls.base_name)
DataTag().delete_like_tag(session=cls.session, tag=cls.base_name)
DataExperience().delete_like_title(session=cls.session, title=cls.base_title)
@classmethod @classmethod
def teardown_class(cls): def teardown_class(cls):
...@@ -75,69 +91,17 @@ class TestExperienceCreate(object): ...@@ -75,69 +91,17 @@ class TestExperienceCreate(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("更新表数据: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("调用接口:api.login") self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["OFF"])
def api_login(self, name=None, password=None): self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["ON"])
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.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("断言返回结果")
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("连接数据库:Argus") @allure.step("连接数据库:Argus")
def db_session(self): def db_session(self):
...@@ -204,53 +168,6 @@ class TestExperienceCreate(object): ...@@ -204,53 +168,6 @@ class TestExperienceCreate(object):
sql = DataExperienceProblem().select_all_from_allKeys(session=session, experienceid=experienceid) sql = DataExperienceProblem().select_all_from_allKeys(session=session, experienceid=experienceid)
return sql return sql
@allure.step("创建测试数据")
def host_create(self, num):
name = self.base_name + num
response = self.device_create(token=self.token, hostName=name, hostType=self.base_type_snmp, 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.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("查询表:hosts_items") @allure.step("查询表:hosts_items")
def select_hosts_items(self, host_id=None): def select_hosts_items(self, host_id=None):
session = self.db_session() session = self.db_session()
...@@ -259,44 +176,19 @@ class TestExperienceCreate(object): ...@@ -259,44 +176,19 @@ class TestExperienceCreate(object):
@allure.step("创建测试数据") @allure.step("创建测试数据")
def case_create(self, num): def case_create(self, num):
self.title = self.base_title + num
self.content = self.base_content + num
self.name = self.base_name + num self.name = self.base_name + num
self.eventid = self.base_eventid + int(num) self.eventid = self.base_eventid + int(num)
# 删除第一个表
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)
DataAlarmRule().delete_like_name(session=session, name=self.base_name)
# 删除第二个表
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)
DataBusinesses().delete_like_name(session=session, name=self.base_name)
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)
sql = DataHosts().select_all_from_allKeys(session=session, host_name=self.name)
for x, y in enumerate(sql):
# 删除第三个表
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)
DataHostsItems().delete_host_id(session=session, host_id=y.hostid)
# 删除第四个表
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)
DataProblem().delete_like_name(session=session, name=self.base_name)
# 删除第五个表
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)
DataHosts().delete_like_host_name(session=session, host_name=self.base_name)
# 删除第六个表
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)
DataTag().delete_like_tag(session=session, tag=self.base_name)
session = self.db_session() session = self.db_session()
self.alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1, self.alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1,
manual_close=0, enable_time_default=1, create_time=1) manual_close=0, enable_time_default=1, create_time=1)
session = self.db_session() session = self.db_session()
self.businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1) self.businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1)
self.hostid = self.host_create(num=num) self.hostid = self.app.case_create_host(
name=self.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
)
sql = self.select_hosts_items(host_id=self.hostid) sql = self.select_hosts_items(host_id=self.hostid)
itemids = [] itemids = []
...@@ -309,81 +201,70 @@ class TestExperienceCreate(object): ...@@ -309,81 +201,70 @@ class TestExperienceCreate(object):
status=0, hostid=self.hostid, name=self.name) status=0, hostid=self.hostid, name=self.name)
@allure.step("校验数据") @allure.step("校验数据")
def check_select(self, response): def check_select(self, response, title, content, description):
self.experienceid = UtilsResponse().get_data(response=response) self.experienceid = UtilsResponse().get_data(response=response)
sql = self.select_experience(experienceid=self.experienceid) sql = self.select_experience(experienceid=self.experienceid)
assert sql != []
for x, y in enumerate(sql): for x, y in enumerate(sql):
assert y.title == self.title assert y.title == title
assert y.content == self.content assert y.content == content
assert y.remark == description
sql = self.select_experience_alarm_rule(experienceid=self.experienceid) assert y.host_type_tree == "[[1,120,126],[1,120,127]]"
for x, y in enumerate(sql):
assert y.title == self.title
assert y.content == self.content
@allure.title("experience.create:token未传") @allure.title("experience.create: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.experience_create()
self.app.check_code(response=response, code=2001)
response = self.experience_create() self.app.check_msg(response=response, msg="无token,请重新登录")
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("experience.create:token的用户已删除") @allure.title("experience.create: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.experience_create(token=self.token)
response = self.experience_create(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("experience.create:token的用户已禁用") @allure.title("experience.create: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.experience_create(token=self.token)
response = self.experience_create(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("experience.create:必填项") @allure.title("experience.create:必填项")
@allure.story("创建经验手册:必填项") @allure.story("创建经验手册:必填项")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_04(self): def test_case_04(self):
self.get_base_token() title = self.base_title + "04"
content = self.base_content + "04"
self.title = self.base_title + "04" description = self.base_description + "04"
self.content = self.base_content + "04" response = self.app.experience_create(token=self.token, title=title, content=content, description=description, hostTypes=[self.base_type_snmp],
response = self.experience_create(token=self.token, title=self.title, content=self.content, hostTypes=[self.base_type_snmp]) hostTypeTree=[self.base_type_tree_1, self.base_type_tree_2])
self.check_code(response=response, code=0) self.app.check_code(response=response, code=0)
self.experienceid = UtilsResponse().get_data(response=response) self.check_select(response=response, title=title, content=content, description=description)
sql = self.select_experience(experienceid=self.experienceid)
for x, y in enumerate(sql):
assert y.title == self.title
assert y.content == self.content
@allure.title("experience.create:所有字段") @allure.title("experience.create:所有字段")
@allure.story("创建经验手册:所有字段") @allure.story("创建经验手册:所有字段")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_05(self): def test_case_05(self):
self.get_base_token() title = self.base_title + "05"
content = self.base_content + "05"
description = self.base_description + "05"
self.case_create(num="05") self.case_create(num="05")
response = self.experience_create(token=self.token, title=self.title, content=self.content, hostTypes=[self.base_type_snmp], response = self.app.experience_create(token=self.token, title=title, content=content, hostTypes=[self.base_type_snmp],
alarmRuleids=[self.alarm_ruleid], businessids=[self.businessid], hostids=[self.hostid], hostTypeTree=[self.base_type_tree_1, self.base_type_tree_2],
manageIpList=[self.hostid], itemids=[self.itemid], problemidList=[self.eventid], tagNameList=[self.base_name]) alarmRuleids=[self.alarm_ruleid], businessids=[self.businessid], hostids=[self.hostid],
self.check_code(response=response, code=0) manageIpList=[self.hostid], itemids=[self.itemid], problemidList=[self.eventid],
self.experienceid = UtilsResponse().get_data(response=response) tagNameList=[self.base_name], description=description)
sql = self.select_experience(experienceid=self.experienceid) self.app.check_code(response=response, code=0)
assert sql != [] self.check_select(response=response, title=title, content=content, description=description)
for x, y in enumerate(sql):
assert y.title == self.title
assert y.content == self.content
# 校验第一个表 # 校验第一个表
sql = self.select_experience_alarm_rule(experienceid=self.experienceid) sql = self.select_experience_alarm_rule(experienceid=self.experienceid)
...@@ -448,4 +329,5 @@ if __name__ == "__main__": ...@@ -448,4 +329,5 @@ if __name__ == "__main__":
# a = TestExperienceCreate() # a = TestExperienceCreate()
# 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
from WorkApi.APP.Api.api_login import ApiLogin from WorkApi.APP.Api.api_login import ApiLogin
from WorkApi.APP.Device.device_create import DeviceCreate from WorkApi.APP.Device.device_create import DeviceCreate
from WorkCase import CaseBase from WorkCase import CaseBase
from WorkCase.APP import AppBase
from WorkData.Argus.members import DataMembers from WorkData.Argus.members import DataMembers
from WorkUtils.UtilsLog import UtilsLog from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsResponse import UtilsResponse from WorkUtils.UtilsResponse import UtilsResponse
...@@ -59,18 +60,29 @@ class TestExperienceDelete(object): ...@@ -59,18 +60,29 @@ class TestExperienceDelete(object):
base_ip = "172.16.3.170" base_ip = "172.16.3.170"
base_port = 161 base_port = 161
base_title = "SS测试经验标题" base_title = "SS 自动化专用 经验手册 标题"
base_content = "SS测试经验内容" base_content = "SS 自动化专用 经验手册 内容"
base_description = "SS测试经验描述" base_description = "SS 自动化专用 经验手册 描述"
base_name = "经验手册-测试数据" base_name = "SS 自动化专用 经验手册相关"
base_eventid = 91000000 base_eventid = 91000000
session = UtilsDataBase().conn_mysql(db_url=db_url, db_port=db_port, db_base=db_base, db_user=db_user, db_pw=db_pw)
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
cls.log.debug("开始执行测试套件.......") cls.log.debug("开始执行测试套件.......")
session = UtilsDataBase().conn_mysql(db_url=cls.db_url, db_port=cls.db_port, db_base=cls.db_base, db_user=cls.db_user, db_pw=cls.db_pw)
DataExperience().delete_like_title(session=session, title=cls.base_title) DataAlarmRule().delete_like_name(session=cls.session, name=cls.base_name)
DataBusinesses().delete_like_name(session=cls.session, name=cls.base_name)
sql = DataHosts().select_all_like_host_name(session=cls.session, host_name=cls.base_name)
for x, y in enumerate(sql):
DataHostsItems().delete_host_id(session=cls.session, host_id=y.hostid)
DataProblem().delete_like_name(session=cls.session, name=cls.base_name)
DataHosts().delete_like_host_name(session=cls.session, host_name=cls.base_name)
DataTag().delete_like_tag(session=cls.session, tag=cls.base_name)
DataExperience().delete_like_title(session=cls.session, title=cls.base_title)
@classmethod @classmethod
def teardown_class(cls): def teardown_class(cls):
...@@ -78,31 +90,17 @@ class TestExperienceDelete(object): ...@@ -78,31 +90,17 @@ class TestExperienceDelete(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"]) 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"])
@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("断言返回结果")
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("连接数据库:Argus") @allure.step("连接数据库:Argus")
def db_session(self): def db_session(self):
...@@ -169,87 +167,6 @@ class TestExperienceDelete(object): ...@@ -169,87 +167,6 @@ class TestExperienceDelete(object):
sql = DataExperienceProblem().select_all_from_allKeys(session=session, experienceid=experienceid) sql = DataExperienceProblem().select_all_from_allKeys(session=session, experienceid=experienceid)
return sql return sql
@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("调用接口: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.step("创建测试数据")
def host_create(self, num):
name = self.base_name + num
response = self.device_create(token=self.token, hostName=name, hostType=self.base_type_snmp, 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.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("查询表:hosts_items") @allure.step("查询表:hosts_items")
def select_hosts_items(self, host_id=None): def select_hosts_items(self, host_id=None):
session = self.db_session() session = self.db_session()
...@@ -261,38 +178,16 @@ class TestExperienceDelete(object): ...@@ -261,38 +178,16 @@ class TestExperienceDelete(object):
self.name = self.base_name + num self.name = self.base_name + num
self.eventid = self.base_eventid + int(num) self.eventid = self.base_eventid + int(num)
# 删除第一个表
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)
DataAlarmRule().delete_like_name(session=session, name=self.base_name)
# 删除第二个表
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)
DataBusinesses().delete_like_name(session=session, name=self.base_name)
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)
sql = DataHosts().select_all_from_allKeys(session=session, host_name=self.name)
for x, y in enumerate(sql):
# 删除第三个表
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)
DataHostsItems().delete_host_id(session=session, host_id=y.hostid)
# 删除第四个表
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)
DataProblem().delete_like_name(session=session, name=self.base_name)
# 删除第五个表
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)
DataHosts().delete_like_host_name(session=session, host_name=self.base_name)
# 删除第六个表
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)
DataTag().delete_like_tag(session=session, tag=self.base_name)
session = self.db_session() session = self.db_session()
self.alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1, self.alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1,
manual_close=0, enable_time_default=1, create_time=1) manual_close=0, enable_time_default=1, create_time=1)
session = self.db_session() session = self.db_session()
self.businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1) self.businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1)
self.hostid = self.host_create(num=num) self.hostid = self.app.case_create_host(
name=self.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
)
sql = self.select_hosts_items(host_id=self.hostid) sql = self.select_hosts_items(host_id=self.hostid)
itemids = [] itemids = []
...@@ -304,83 +199,61 @@ class TestExperienceDelete(object): ...@@ -304,83 +199,61 @@ class TestExperienceDelete(object):
r_clock=0, r_ns=0, acknowledged=0, acknowledged_time=0, severity=0, r_clock=0, r_ns=0, acknowledged=0, acknowledged_time=0, severity=0,
status=0, hostid=self.hostid, name=self.name) status=0, hostid=self.hostid, name=self.name)
@allure.step("创建经验手册")
def case_create_experience(self, num):
self.title = self.base_title + num
self.content = self.base_content + num
self.description = self.base_description + num
response = self.experience_create(token=self.token, title=self.title, content=self.content, hostTypes=[self.base_type_agent],
alarmRuleids=[self.alarm_ruleid], businessids=[self.businessid], hostids=[self.hostid],
manageIpList=[self.hostid], itemids=[self.itemid], problemidList=[self.eventid],
tagNameList=[self.base_name], description=self.description)
self.check_code(response=response, code=0)
self.experienceid = UtilsResponse().get_data(response=response)
return self.experienceid
@allure.step("校验数据") @allure.step("校验数据")
def check_select(self, experienceid): def check_select(self, experienceid):
sql = self.select_experience(experienceid=experienceid) sql = self.select_experience(experienceid=experienceid)
assert sql == [] assert sql == []
@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.title("experience.delete:token未传") @allure.title("experience.delete: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.experience_delete()
response = self.experience_delete() self.app.check_code(response=response, code=2001)
self.check_code(response=response, code=2001) self.app.check_msg(response=response, msg="无token,请重新登录")
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("experience.delete:token的用户已删除") @allure.title("experience.delete:token的用户已删除")
@allure.story("删除经验手册:token的用户已删除") @allure.story("删除经验手册:token的用户已删除")
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.experience_delete(token=self.token)
response = self.experience_delete(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("experience.delete:token的用户已禁用") @allure.title("experience.delete:token的用户已禁用")
@allure.story("删除经验手册:token的用户已禁用") @allure.story("删除经验手册:token的用户已禁用")
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.experience_delete(token=self.token)
response = self.experience_delete(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("experience.delete:删除一个") @allure.title("experience.delete:删除一个")
@allure.story("删除经验手册:删除一个") @allure.story("删除经验手册:删除一个")
def test_case_04(self): def test_case_04(self):
self.get_base_token() title = self.base_title + "04"
content = self.base_content + "04"
description = self.base_description + "04"
self.case_create(num="04") self.case_create(num="04")
self.case_create_experience(num="04") experienceid_1 = self.app.case_create_experience(title=title, content=content, description=description, host_types=[self.base_type_agent])
response = self.experience_delete(token=self.token, experienceids=[self.experienceid]) response = self.app.experience_delete(token=self.token, experienceids=[experienceid_1])
self.check_code(response=response, code=0) self.app.check_code(response=response, code=0)
self.check_select(experienceid=self.experienceid) self.check_select(experienceid=experienceid_1)
@allure.title("experience.delete:删除多个") @allure.title("experience.delete:删除多个")
@allure.story("删除经验手册:删除多个") @allure.story("删除经验手册:删除多个")
def test_case_06(self): def test_case_05(self):
self.get_base_token() title_1 = self.base_title + "051"
self.case_create(num="06") title_2 = self.base_title + "052"
experienceid_1 = self.case_create_experience(num="061") title_3 = self.base_title + "053"
experienceid_2 = self.case_create_experience(num="062") content = self.base_content + "05"
experienceid_3 = self.case_create_experience(num="063") description = self.base_description + "05"
response = self.experience_delete(token=self.token, experienceids=[experienceid_1, experienceid_2, experienceid_3]) self.case_create(num="05")
self.check_code(response=response, code=0) experienceid_1 = self.app.case_create_experience(title=title_1, content=content, description=description, host_types=[self.base_type_agent])
experienceid_2 = self.app.case_create_experience(title=title_2, content=content, description=description, host_types=[self.base_type_agent])
experienceid_3 = self.app.case_create_experience(title=title_3, content=content, description=description, host_types=[self.base_type_agent])
response = self.app.experience_delete(token=self.token, experienceids=[experienceid_1, experienceid_2, experienceid_3])
self.app.check_code(response=response, code=0)
self.check_select(experienceid=experienceid_1) self.check_select(experienceid=experienceid_1)
self.check_select(experienceid=experienceid_2) self.check_select(experienceid=experienceid_2)
self.check_select(experienceid=experienceid_3) self.check_select(experienceid=experienceid_3)
......
...@@ -9,6 +9,7 @@ from __future__ import division ...@@ -9,6 +9,7 @@ from __future__ import division
from WorkApi.APP.Api.api_login import ApiLogin from WorkApi.APP.Api.api_login import ApiLogin
from WorkApi.APP.Device.device_create import DeviceCreate from WorkApi.APP.Device.device_create import DeviceCreate
from WorkCase import CaseBase from WorkCase import CaseBase
from WorkCase.APP import AppBase
from WorkData.Argus.members import DataMembers from WorkData.Argus.members import DataMembers
from WorkUtils.UtilsLog import UtilsLog from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsResponse import UtilsResponse from WorkUtils.UtilsResponse import UtilsResponse
...@@ -59,18 +60,29 @@ class TestExperienceGet(object): ...@@ -59,18 +60,29 @@ class TestExperienceGet(object):
base_ip = "172.16.3.170" base_ip = "172.16.3.170"
base_port = 161 base_port = 161
base_title = "SS测试经验标题" base_title = "SS 自动化专用 经验手册 标题"
base_content = "SS测试经验内容" base_content = "SS 自动化专用 经验手册 内容"
base_description = "SS测试经验描述" base_description = "SS 自动化专用 经验手册 描述"
base_name = "经验手册-测试数据" base_name = "SS 自动化专用 经验手册相关"
base_eventid = 91000000 base_eventid = 91000000
session = UtilsDataBase().conn_mysql(db_url=db_url, db_port=db_port, db_base=db_base, db_user=db_user, db_pw=db_pw)
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
cls.log.debug("开始执行测试套件.......") cls.log.debug("开始执行测试套件.......")
session = UtilsDataBase().conn_mysql(db_url=cls.db_url, db_port=cls.db_port, db_base=cls.db_base, db_user=cls.db_user, db_pw=cls.db_pw)
DataExperience().delete_like_title(session=session, title=cls.base_title) DataAlarmRule().delete_like_name(session=cls.session, name=cls.base_name)
DataBusinesses().delete_like_name(session=cls.session, name=cls.base_name)
sql = DataHosts().select_all_like_host_name(session=cls.session, host_name=cls.base_name)
for x, y in enumerate(sql):
DataHostsItems().delete_host_id(session=cls.session, host_id=y.hostid)
DataProblem().delete_like_name(session=cls.session, name=cls.base_name)
DataHosts().delete_like_host_name(session=cls.session, host_name=cls.base_name)
DataTag().delete_like_tag(session=cls.session, tag=cls.base_name)
DataExperience().delete_like_title(session=cls.session, title=cls.base_title)
@classmethod @classmethod
def teardown_class(cls): def teardown_class(cls):
...@@ -78,42 +90,17 @@ class TestExperienceGet(object): ...@@ -78,42 +90,17 @@ class TestExperienceGet(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"]) 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"])
@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("断言返回结果")
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("连接数据库:Argus") @allure.step("连接数据库:Argus")
def db_session(self): def db_session(self):
...@@ -180,75 +167,6 @@ class TestExperienceGet(object): ...@@ -180,75 +167,6 @@ class TestExperienceGet(object):
sql = DataExperienceProblem().select_all_from_allKeys(session=session, experienceid=experienceid) sql = DataExperienceProblem().select_all_from_allKeys(session=session, experienceid=experienceid)
return sql return sql
@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("调用接口: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.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("查询表:hosts_items") @allure.step("查询表:hosts_items")
def select_hosts_items(self, host_id=None): def select_hosts_items(self, host_id=None):
session = self.db_session() session = self.db_session()
...@@ -256,57 +174,20 @@ class TestExperienceGet(object): ...@@ -256,57 +174,20 @@ class TestExperienceGet(object):
return sql return sql
@allure.step("创建测试数据") @allure.step("创建测试数据")
def host_create(self, num):
name = self.base_name + num
response = self.device_create(token=self.token, hostName=name, hostType=self.base_type_snmp, 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.step("创建测试数据")
def case_create(self, num): def case_create(self, num):
self.title = self.base_title + num
self.content = self.base_content + num
self.name = self.base_name + num self.name = self.base_name + num
self.description = self.base_description + num
self.eventid = self.base_eventid + int(num) self.eventid = self.base_eventid + int(num)
# 删除第一个表
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)
DataAlarmRule().delete_like_name(session=session, name=self.base_name)
# 删除第二个表
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)
DataBusinesses().delete_like_name(session=session, name=self.base_name)
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)
sql = DataHosts().select_all_from_allKeys(session=session, host_name=self.name)
for x, y in enumerate(sql):
# 删除第三个表
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)
DataHostsItems().delete_host_id(session=session, host_id=y.hostid)
# 删除第四个表
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)
DataProblem().delete_like_name(session=session, name=self.base_name)
# 删除第五个表
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)
DataHosts().delete_like_host_name(session=session, host_name=self.base_name)
# 删除第六个表
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)
DataTag().delete_like_tag(session=session, tag=self.base_name)
session = self.db_session() session = self.db_session()
self.alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1, self.alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1,
manual_close=0, enable_time_default=1, create_time=1) manual_close=0, enable_time_default=1, create_time=1)
session = self.db_session() session = self.db_session()
self.businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1) self.businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1)
self.hostid = self.host_create(num=num) self.hostid = self.app.case_create_host(
name=self.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
)
sql = self.select_hosts_items(host_id=self.hostid) sql = self.select_hosts_items(host_id=self.hostid)
itemids = [] itemids = []
...@@ -317,13 +198,6 @@ class TestExperienceGet(object): ...@@ -317,13 +198,6 @@ class TestExperienceGet(object):
DataProblem().insert_one(session=session, eventid=self.eventid, source=0, _object=0, objectid=0, clock=0, ns=0, DataProblem().insert_one(session=session, eventid=self.eventid, source=0, _object=0, objectid=0, clock=0, ns=0,
r_clock=0, r_ns=0, acknowledged=0, acknowledged_time=0, severity=0, r_clock=0, r_ns=0, acknowledged=0, acknowledged_time=0, severity=0,
status=0, hostid=self.hostid, name=self.name) status=0, hostid=self.hostid, name=self.name)
response = self.experience_create(token=self.token, title=self.title, content=self.content, hostTypes=[self.base_type_snmp],
alarmRuleids=[self.alarm_ruleid], businessids=[self.businessid], hostids=[self.hostid],
manageIpList=[self.hostid], itemids=[self.itemid], problemidList=[self.eventid],
tagNameList=[self.base_name], description=self.description)
self.check_code(response=response, code=0)
self.experienceid = UtilsResponse().get_data(response=response)
return self.experienceid
@allure.step("校验数据") @allure.step("校验数据")
def check_select(self, response): def check_select(self, response):
...@@ -361,81 +235,84 @@ class TestExperienceGet(object): ...@@ -361,81 +235,84 @@ class TestExperienceGet(object):
assert d["experienceid"] == self.experienceid assert d["experienceid"] == self.experienceid
assert d["tag"] == self.base_name assert d["tag"] == self.base_name
assert self.experienceid in ids
@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.title("experience.get:token未传") @allure.title("experience.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.experience_get()
response = self.experience_get() self.app.check_code(response=response, code=2001)
self.check_code(response=response, code=2001) self.app.check_msg(response=response, msg="无token,请重新登录")
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("experience.get:token的用户已删除") @allure.title("experience.get:token的用户已删除")
@allure.story("查询经验手册:token的用户已删除") @allure.story("查询经验手册:token的用户已删除")
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.experience_get(token=self.token)
response = self.experience_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("experience.get:token的用户已禁用") @allure.title("experience.get:token的用户已禁用")
@allure.story("查询经验手册:token的用户已禁用") @allure.story("查询经验手册:token的用户已禁用")
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.experience_get(token=self.token)
response = self.experience_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("experience.get:无参数调用") @allure.title("experience.get:无参数调用")
@allure.story("查询经验手册:无参数调用") @allure.story("查询经验手册:无参数调用")
def test_case_04(self): def test_case_04(self):
self.get_base_token() response = self.app.experience_get(token=self.token)
self.case_create(num="04") self.app.check_code(response=response, code=0)
response = self.experience_get(token=self.token)
self.check_code(response=response, code=0)
@allure.title("experience.get:hostType查询") @allure.title("experience.get:hostType查询")
@allure.story("查询经验手册:hostType查询") @allure.story("查询经验手册:hostType查询")
def test_case_05(self): def test_case_05(self):
self.get_base_token() title = self.base_title + "05"
content = self.base_content + "05"
description = self.base_description + "05"
self.case_create(num="05") self.case_create(num="05")
response = self.experience_get(token=self.token, hostType=self.base_type_snmp) self.app.experience_create(token=self.token, title=title, content=content, hostTypes=[self.base_type_snmp],
self.check_code(response=response, code=0) alarmRuleids=[self.alarm_ruleid], businessids=[self.businessid], hostids=[self.hostid],
self.check_select(response=response) manageIpList=[self.hostid], itemids=[self.itemid], problemidList=[self.eventid],
tagNameList=[self.base_name], description=description)
response = self.app.experience_get(token=self.token, hostType=self.base_type_snmp)
self.app.check_code(response=response, code=0)
self.app.check_keyValue(_json=UtilsResponse().get_data_list(response=response), _key="hostsTypeList",
_value=[{"typeId": self.base_type_snmp}])
@allure.title("experience.get:hostName查询") @allure.title("experience.get:hostName查询")
@allure.story("查询经验手册:hostName查询") @allure.story("查询经验手册:hostName查询")
def test_case_06(self): def test_case_06(self):
self.get_base_token() title = self.base_title + "06"
content = self.base_content + "06"
description = self.base_description + "06"
self.case_create(num="06") self.case_create(num="06")
response = self.experience_get(token=self.token, hostName=self.base_name) self.app.experience_create(token=self.token, title=title, content=content, hostTypes=[self.base_type_snmp],
self.check_code(response=response, code=0) alarmRuleids=[self.alarm_ruleid], businessids=[self.businessid], hostids=[self.hostid],
self.check_select(response=response) manageIpList=[self.hostid], itemids=[self.itemid], problemidList=[self.eventid],
tagNameList=[self.base_name], description=description)
response = self.app.experience_get(token=self.token, hostName=self.name)
self.app.check_code(response=response, code=0)
self.app.check_keyValue(_json=UtilsResponse().get_data_list(response=response), _key="hostsList", _value=self.base_type_snmp)
@allure.title("experience.get:manageLevel查询") @allure.title("experience.get:manageLevel查询")
@allure.story("查询经验手册:manageLevel查询") @allure.story("查询经验手册:manageLevel查询")
def test_case_07(self): def test_case_07(self):
self.get_base_token() title = self.base_title + "07"
content = self.base_content + "07"
description = self.base_description + "07"
self.case_create(num="07") self.case_create(num="07")
response = self.experience_get(token=self.token, manageLevel=1) self.app.experience_create(token=self.token, title=title, content=content, hostTypes=[self.base_type_snmp],
self.check_code(response=response, code=0) alarmRuleids=[self.alarm_ruleid], businessids=[self.businessid], hostids=[self.hostid],
self.check_select(response=response) manageIpList=[self.hostid], itemids=[self.itemid], problemidList=[self.eventid],
tagNameList=[self.base_name], description=description)
response = self.app.experience_get(token=self.token, manageLevel=1)
self.app.check_code(response=response, code=0)
self.app.check_keyValue(_json=UtilsResponse().get_data_list(response=response), _key="hostsList", _value=self.base_type_snmp)
@allure.title("experience.get:manageIp查询") @allure.title("experience.get:manageIp查询")
@allure.story("查询经验手册:manageIp查询") @allure.story("查询经验手册:manageIp查询")
...@@ -520,11 +397,12 @@ if __name__ == "__main__": ...@@ -520,11 +397,12 @@ if __name__ == "__main__":
import os import os
# 执行自动化测试用例 # 执行自动化测试用例
case_info = os.path.split(__file__) # case_info = os.path.split(__file__)
case = UtilsCmd().pytest_cmd() # case = UtilsCmd().pytest_cmd()
r = UtilsPyTest(case=case, case_info=case_info) # r = UtilsPyTest(case=case, case_info=case_info)
r.run_main() # r.run_main()
# a = TestExperienceGet() a = TestExperienceGet()
# a.setup_class() a.setup_class()
# a.test_case_05() a.setup_method()
a.test_case_06()
...@@ -10,7 +10,14 @@ import pytest ...@@ -10,7 +10,14 @@ import pytest
from WorkApi.APP.Api.api_login import ApiLogin from WorkApi.APP.Api.api_login import ApiLogin
from WorkCase import CaseBase from WorkCase import CaseBase
from WorkCase.APP import AppBase
from WorkData.Argus.alarm_rule import DataAlarmRule
from WorkData.Argus.businesses import DataBusinesses
from WorkData.Argus.experience import DataExperience
from WorkData.Argus.hosts_items import DataHostsItems
from WorkData.Argus.members import DataMembers from WorkData.Argus.members import DataMembers
from WorkData.Argus.problem import DataProblem
from WorkData.Argus.tag import DataTag
from WorkUtils.UtilsLog import UtilsLog from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsResponse import UtilsResponse from WorkUtils.UtilsResponse import UtilsResponse
from WorkUtils.UtilsDataBase import UtilsDataBase from WorkUtils.UtilsDataBase import UtilsDataBase
...@@ -44,28 +51,30 @@ class TestExperienceItemsList(object): ...@@ -44,28 +51,30 @@ class TestExperienceItemsList(object):
def teardown_class(cls): def teardown_class(cls):
cls.log.debug("结束执行测试套件.......") cls.log.debug("结束执行测试套件.......")
DataAlarmRule().delete_like_name(session=cls.session, name=cls.base_name)
DataBusinesses().delete_like_name(session=cls.session, name=cls.base_name)
sql = DataHosts().select_all_like_host_name(session=cls.session, host_name=cls.base_name)
for x, y in enumerate(sql):
DataHostsItems().delete_host_id(session=cls.session, host_id=y.hostid)
DataProblem().delete_like_name(session=cls.session, name=cls.base_name)
DataHosts().delete_like_host_name(session=cls.session, host_name=cls.base_name)
DataTag().delete_like_tag(session=cls.session, tag=cls.base_name)
DataExperience().delete_like_title(session=cls.session, title=cls.base_title)
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"]) 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"])
@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("断言返回结果")
def check_code(self, response, code):
_code = UtilsResponse().get_code(response=response)
assert _code == code
@allure.step("连接数据库:Argus") @allure.step("连接数据库:Argus")
def db_session(self): def db_session(self):
...@@ -78,88 +87,49 @@ class TestExperienceItemsList(object): ...@@ -78,88 +87,49 @@ class TestExperienceItemsList(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("新增表数据:hosts")
def insert_hosts(self, host_name=None, asset_code=None, manage_ip=None, parent_host=None, available=None, monitor_status=None):
session = self.db_session()
hostid = DataHosts().insert_one(session=session, host_name=host_name, asset_code=asset_code, manage_ip=manage_ip,
parent_host=parent_host, available=available, monitor_status=monitor_status)
return hostid
@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("调用接口:api.login")
def api_login(self, name=None, password=None):
api = ApiLogin(_host=self.host)
api.name = name
api.password = password
api.get_response()
return api.response
@allure.step("获取token")
def get_base_token(self):
response = self.api_login(name=self.login_name, password=self.base_password)
self.token = UtilsResponse().get_data(response=response)
@allure.title("experience.items.list:token未传") @allure.title("experience.items.list: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.experience_items_list()
self.app.check_code(response=response, code=2001)
response = self.experience_items_list() self.app.check_msg(response=response, msg="无token,请重新登录")
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("experience.items.list:token的用户已删除") @allure.title("experience.items.list: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(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.experience_items_list(token=self.token)
response = self.experience_items_list(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("experience.items.list:token的用户已禁用") @allure.title("experience.items.list: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(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.experience_items_list(token=self.token)
response = self.experience_items_list(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("experience.items.list:无参数调用") @allure.title("experience.items.list:无参数调用")
@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.experience_items_list(token=self.token)
self.app.check_code(response=response, code=0)
epl_response = self.experience_items_list(token=self.token)
self.check_code(response=epl_response, code=0)
@allure.title("experience.items.list:itemName查询") @allure.title("experience.items.list:itemName查询")
@allure.story("查询监控项下拉框:itemName查询") @allure.story("查询监控项下拉框:itemName查询")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_05(self): def test_case_05(self):
self.get_base_token() response = self.app.experience_items_list(token=self.token, itemName="ping")
self.app.check_code(response=response, code=0)
epl_response = self.experience_items_list(token=self.token, itemName="ping") self.app.check_keyValue(_json=UtilsResponse().get_data(response=response), _key="name", _value="ping", isIn=1)
self.check_code(response=epl_response, code=0)
if __name__ == "__main__": if __name__ == "__main__":
...@@ -176,4 +146,5 @@ if __name__ == "__main__": ...@@ -176,4 +146,5 @@ if __name__ == "__main__":
# a = TestExperienceItemsList() # a = TestExperienceItemsList()
# a.setup_class() # a.setup_class()
# a.setup_method()
# a.test_case_05() # a.test_case_05()
...@@ -8,9 +8,17 @@ from __future__ import division ...@@ -8,9 +8,17 @@ from __future__ import division
import pytest import pytest
from WorkApi.API.Problem.problem_get import ProblemGet
from WorkApi.APP.Api.api_login import ApiLogin from WorkCase.APP import AppBase
from WorkCase.API import ApiBase
from WorkData.Argus.alarm_rule import DataAlarmRule
from WorkData.Argus.businesses import DataBusinesses
from WorkData.Argus.experience import DataExperience
from WorkData.Argus.hosts import DataHosts
from WorkData.Argus.hosts_items import DataHostsItems
from WorkData.Argus.members import DataMembers from WorkData.Argus.members import DataMembers
from WorkData.Argus.problem import DataProblem
from WorkData.Argus.tag import DataTag
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
...@@ -39,184 +47,133 @@ class TestExperienceProblemList(object): ...@@ -39,184 +47,133 @@ class TestExperienceProblemList(object):
base_id = 10 base_id = 10
base_password = "123456" base_password = "123456"
base_type_agent = 126
base_type_snmp = 127
base_business_id_1 = "12"
base_business_id_2 = "13"
base_ip = "172.16.3.170"
base_port = 161
base_title = "SS 自动化专用 经验手册 标题"
base_content = "SS 自动化专用 经验手册 内容"
base_description = "SS 自动化专用 经验手册 描述"
base_name = "SS 自动化专用 经验手册相关"
base_eventid = 91000000
session = UtilsDataBase().conn_mysql(db_url=db_url, db_port=db_port, db_base=db_base, db_user=db_user, db_pw=db_pw)
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
cls.log.debug("开始执行测试套件.......") cls.log.debug("开始执行测试套件.......")
DataAlarmRule().delete_like_name(session=cls.session, name=cls.base_name)
DataBusinesses().delete_like_name(session=cls.session, name=cls.base_name)
sql = DataHosts().select_all_like_host_name(session=cls.session, host_name=cls.base_name)
for x, y in enumerate(sql):
DataHostsItems().delete_host_id(session=cls.session, host_id=y.hostid)
DataProblem().delete_like_name(session=cls.session, name=cls.base_name)
DataHosts().delete_like_host_name(session=cls.session, host_name=cls.base_name)
DataTag().delete_like_tag(session=cls.session, tag=cls.base_name)
DataExperience().delete_like_title(session=cls.session, title=cls.base_title)
@classmethod @classmethod
def teardown_class(cls): def teardown_class(cls):
cls.log.debug("结束执行测试套件.......") cls.log.debug("结束执行测试套件.......")
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_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.update_members_status(members_id=self.base_id, value=CaseBase().status["ON"])
@allure.step("调用接口:experience.problem.list") @allure.step("查询表:hosts_items")
def experience_problem_list(self, token=None, problemName=None): def select_hosts_items(self, host_id=None):
api = ExperienceProblemList(_host=self.host)
api.token = token
api.problemName = problemName
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("更新表数据:members -- del_flag")
def update_members_del_flag(self, members_id=None, value=None):
session = self.db_session() session = self.db_session()
sql = DataMembers().update_del_flag(session=session, _id=members_id, value=value) sql = DataHostsItems().select_all_from_allKeys(session=session, host_id=host_id)
return sql return sql
@allure.step("更新表数据:members -- status") @allure.step("创建测试数据")
def update_members_status(self, members_id=None, value=None): def case_create(self, num):
self.name = self.base_name + num
self.eventid = self.base_eventid + int(num)
session = self.db_session() session = self.db_session()
sql = DataMembers().update_status(session=session, _id=members_id, value=value) self.alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1,
return sql manual_close=0, enable_time_default=1, create_time=1)
session = self.db_session()
self.businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1)
self.hostid = self.app.case_create_host(
name=self.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
)
sql = self.select_hosts_items(host_id=self.hostid)
itemids = []
for x, y in enumerate(sql):
itemids.append(y.id)
self.itemid = itemids[0]
session = self.db_session()
DataProblem().insert_one(session=session, eventid=self.eventid, source=0, _object=0, objectid=0, clock=0, ns=0,
r_clock=0, r_ns=0, acknowledged=0, acknowledged_time=0, severity=0,
status=0, hostid=self.hostid, name=self.name)
@allure.step("调用接口:api.login") @allure.step("连接数据库:Argus")
def api_login(self, name=None, password=None): def db_session(self):
api = ApiLogin(_host=self.host) 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)
api.name = name return session
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.step("调用接口:problem.get")
def problem_get(self, eventids=None, groupids=None, hostids=None, objectids=None, applicationids=None,
source=None, _object=None, acknowledged=None, suppressed=None, severities=None, evaltype=None,
tags=None, recent=None, eventid_from=None, eventid_till=None, time_from=None,
time_till=None, selectAcknowledges=None, selectTags=None, selectSuppressionData=None,
countOutput=None, editable=None, excludeSearch=None,
_filter=None, limit=None, output=None, preservekeys=None, search=None, searchByAny=None,
searchWildcardsEnabled=None, sortfield=None, sortorder=None, startSearch=None):
api = ProblemGet(_host=self.base_host)
api.eventids = eventids
api.groupids = groupids
api.hostids = hostids
api.objectids = objectids
api.applicationids = applicationids
api.source = source
api.object = _object
api.acknowledged = acknowledged
api.suppressed = suppressed
api.severities = severities
api.evaltype = evaltype
api.tags = tags
api.recent = recent
api.eventid_from = eventid_from
api.eventid_till = eventid_till
api.time_from = time_from
api.time_till = time_till
api.selectAcknowledges = selectAcknowledges
api.selectTags = selectTags
api.selectSuppressionData = selectSuppressionData
api.countOutput = countOutput
api.editable = editable
api.excludeSearch = excludeSearch
api.filter = _filter
api.limit = limit
api.output = output
api.preservekeys = preservekeys
api.search = search
api.searchByAny = searchByAny
api.searchWildcardsEnabled = searchWildcardsEnabled
api.sortfield = sortfield
api.sortorder = sortorder
api.startSearch = startSearch
api.get_response()
return api.response
@allure.title("experience.problem.list:token未传") @allure.title("experience.problem.list: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.experience_problem_list()
self.app.check_code(response=response, code=2001)
response = self.experience_problem_list() self.app.check_msg(response=response, msg="无token,请重新登录")
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("experience.problem.list:token的用户已删除") @allure.title("experience.problem.list: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(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.experience_problem_list(token=self.token)
response = self.experience_problem_list(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("experience.problem.list:token的用户已禁用") @allure.title("experience.problem.list: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(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.experience_problem_list(token=self.token)
response = self.experience_problem_list(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("experience.problem.list:problemName成功查询") @allure.title("experience.problem.list:problemName成功查询")
@allure.story("查询告警下拉框:problemName成功查询") @allure.story("查询告警下拉框:problemName成功查询")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_04(self): def test_case_04(self):
self.get_base_token() title = self.base_title + "04"
content = self.base_content + "04"
epl_response = self.experience_problem_list(token=self.token, problemName="No") description = self.base_description + "04"
self.check_code(response=epl_response, code=0) self.case_create(num="04")
epl_ids = [] self.app.case_create_experience(title=title, content=content, description=description, host_types=[self.base_type_agent])
for x, y in enumerate(UtilsResponse().get_data(response=epl_response)):
epl_ids.append(y["id"])
pg_response = self.problem_get(search={"name": ["*" + "No" + "*"]}, searchByAny=True, searchWildcardsEnabled=True,
output=["source", "object", "objectid", "name", "severity"])
self.check_code(response=pg_response, code=0)
pg_ids = []
for x, y in enumerate(UtilsResponse().get_result(response=pg_response)):
pg_ids.append(y["eventid"])
# self.log.debug("校验与底层接口返回的数据是否一致") response = self.app.experience_problem_list(token=self.token, problemName="SS")
# for x, y in enumerate(epl_ids): self.app.check_code(response=response, code=0)
# assert y in pg_ids self.app.check_keyValue(_json=UtilsResponse().get_data(response=response), _key="name", _value="SS", isIn=1)
# for x, y in enumerate(pg_ids):
# assert y in epl_ids
if __name__ == "__main__": if __name__ == "__main__":
...@@ -233,4 +190,5 @@ if __name__ == "__main__": ...@@ -233,4 +190,5 @@ if __name__ == "__main__":
# a = TestExperienceProblemList() # a = TestExperienceProblemList()
# a.setup_class() # a.setup_class()
# a.setup_method()
# a.test_case_04() # a.test_case_04()
...@@ -9,6 +9,7 @@ from __future__ import division ...@@ -9,6 +9,7 @@ from __future__ import division
from WorkApi.APP.Api.api_login import ApiLogin from WorkApi.APP.Api.api_login import ApiLogin
from WorkApi.APP.Device.device_create import DeviceCreate from WorkApi.APP.Device.device_create import DeviceCreate
from WorkCase import CaseBase from WorkCase import CaseBase
from WorkCase.APP import AppBase
from WorkData.Argus.members import DataMembers from WorkData.Argus.members import DataMembers
from WorkUtils.UtilsLog import UtilsLog from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsResponse import UtilsResponse from WorkUtils.UtilsResponse import UtilsResponse
...@@ -63,15 +64,27 @@ class TestExperienceUpdate(object): ...@@ -63,15 +64,27 @@ class TestExperienceUpdate(object):
base_content = "SS测试经验内容" base_content = "SS测试经验内容"
base_description = "SS测试经验描述" base_description = "SS测试经验描述"
base_name = "经验手册-测试数据" base_name = "SS 自动化专用 经验手册相关"
base_update_name = "经验手册-测试数据修改" base_update_name = "SS 自动化专用 经验手册相关 修改"
base_eventid = 91000000 base_eventid = 91000000
base_update_eventid = 91000010
session = UtilsDataBase().conn_mysql(db_url=db_url, db_port=db_port, db_base=db_base, db_user=db_user, db_pw=db_pw)
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
cls.log.debug("开始执行测试套件.......") cls.log.debug("开始执行测试套件.......")
session = UtilsDataBase().conn_mysql(db_url=cls.db_url, db_port=cls.db_port, db_base=cls.db_base, db_user=cls.db_user, db_pw=cls.db_pw)
DataExperience().delete_like_title(session=session, title=cls.base_title) DataAlarmRule().delete_like_name(session=cls.session, name=cls.base_name)
DataBusinesses().delete_like_name(session=cls.session, name=cls.base_name)
sql = DataHosts().select_all_like_host_name(session=cls.session, host_name=cls.base_name)
for x, y in enumerate(sql):
DataHostsItems().delete_host_id(session=cls.session, host_id=y.hostid)
DataProblem().delete_like_name(session=cls.session, name=cls.base_name)
DataHosts().delete_like_host_name(session=cls.session, host_name=cls.base_name)
DataTag().delete_like_tag(session=cls.session, tag=cls.base_name)
DataExperience().delete_like_title(session=cls.session, title=cls.base_title)
@classmethod @classmethod
def teardown_class(cls): def teardown_class(cls):
...@@ -79,45 +92,17 @@ class TestExperienceUpdate(object): ...@@ -79,45 +92,17 @@ class TestExperienceUpdate(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"]) 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"])
@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 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("连接数据库:Argus") @allure.step("连接数据库:Argus")
def db_session(self): def db_session(self):
...@@ -184,154 +169,21 @@ class TestExperienceUpdate(object): ...@@ -184,154 +169,21 @@ class TestExperienceUpdate(object):
sql = DataExperienceProblem().select_all_from_allKeys(session=session, experienceid=experienceid) sql = DataExperienceProblem().select_all_from_allKeys(session=session, experienceid=experienceid)
return sql return sql
@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("调用接口: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.step("创建测试数据")
def host_create(self, num):
name = self.base_name + num
response = self.device_create(token=self.token, hostName=name, hostType=self.base_type_snmp, 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.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("查询表:hosts_items")
def select_hosts_items(self, host_id=None):
session = self.db_session()
sql = DataHostsItems().select_all_from_allKeys(session=session, host_id=host_id)
return sql
@allure.step("创建测试数据") @allure.step("创建测试数据")
def case_create(self, num): def case_create(self, num):
self.title = self.base_title + num
self.content = self.base_content + num
self.name = self.base_name + num self.name = self.base_name + num
self.description = self.base_description + num
self.update_title = self.title + "修改"
self.update_content = self.content + "修改"
self.update_name = self.name + "修改"
self.update_description = self.description + "修改"
self.eventid = self.base_eventid + int(num) self.eventid = self.base_eventid + int(num)
self.update_eventid = self.eventid + 1
# 删除第一个表
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)
DataAlarmRule().delete_like_name(session=session, name=self.base_name)
# 删除第二个表
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)
DataBusinesses().delete_like_name(session=session, name=self.base_name)
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)
sql = DataHosts().select_all_from_allKeys(session=session, host_name=self.name)
for x, y in enumerate(sql):
# 删除第三个表
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)
DataHostsItems().delete_host_id(session=session, host_id=y.hostid)
# 删除第四个表
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)
DataProblem().delete_like_name(session=session, name=self.base_name)
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)
sql = DataHosts().select_all_from_allKeys(session=session, host_name=self.update_name)
for x, y in enumerate(sql):
# 删除第三个表
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)
DataHostsItems().delete_host_id(session=session, host_id=y.hostid)
# 删除第四个表
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)
DataProblem().delete_like_name(session=session, name=self.base_name)
# 删除第五个表
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)
DataHosts().delete_like_host_name(session=session, host_name=self.base_name)
# 删除第六个表
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)
DataTag().delete_like_tag(session=session, tag=self.base_name)
session = self.db_session() session = self.db_session()
self.alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1, self.alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1,
manual_close=0, enable_time_default=1, create_time=1) manual_close=0, enable_time_default=1, create_time=1)
session = self.db_session() session = self.db_session()
self.update_alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1,
manual_close=0, enable_time_default=1, create_time=1)
session = self.db_session()
self.businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1) self.businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1)
session = self.db_session()
self.update_businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1)
self.hostid = self.host_create(num=num) self.hostid = self.app.case_create_host(
name=self.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
)
sql = self.select_hosts_items(host_id=self.hostid) sql = self.select_hosts_items(host_id=self.hostid)
itemids = [] itemids = []
...@@ -343,25 +195,37 @@ class TestExperienceUpdate(object): ...@@ -343,25 +195,37 @@ class TestExperienceUpdate(object):
r_clock=0, r_ns=0, acknowledged=0, acknowledged_time=0, severity=0, r_clock=0, r_ns=0, acknowledged=0, acknowledged_time=0, severity=0,
status=0, hostid=self.hostid, name=self.name) status=0, hostid=self.hostid, name=self.name)
self.update_hostid = self.host_create(num=num + "1") @allure.step("创建测试数据")
def case_create_update(self, num):
self.update_name = self.base_name + num + "修改"
self.update_eventid = self.base_update_eventid + int(num)
sql = self.select_hosts_items(host_id=self.update_hostid) session = self.db_session()
update_itemid = [] self.update_alarm_ruleid = DataAlarmRule().insert_one(session=session, name=self.name, status=1, severity=1,
manual_close=0, enable_time_default=1, create_time=1)
session = self.db_session()
self.update_businessid = DataBusinesses().insert_one(session=session, name=self.name, _type=1)
self.update_hostid = self.app.case_create_host(
name=self.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
)
sql = self.select_hosts_items(host_id=self.hostid)
itemids = []
for x, y in enumerate(sql): for x, y in enumerate(sql):
update_itemid.append(y.id) itemids.append(y.id)
self.update_itemid = update_itemid[0] self.update_itemid = itemids[0]
session = self.db_session() session = self.db_session()
DataProblem().insert_one(session=session, eventid=self.update_eventid, source=0, _object=0, objectid=0, clock=0, ns=0, DataProblem().insert_one(session=session, eventid=self.update_eventid, source=0, _object=0, objectid=0, clock=0, ns=0,
r_clock=0, r_ns=0, acknowledged=0, acknowledged_time=0, severity=0, r_clock=0, r_ns=0, acknowledged=0, acknowledged_time=0, severity=0,
status=0, hostid=self.update_hostid, name=self.update_name) status=0, hostid=self.hostid, name=self.update_name)
response = self.experience_create(token=self.token, title=self.title, content=self.content, hostTypes=[self.base_type_agent], @allure.step("查询表:hosts_items")
alarmRuleids=[self.alarm_ruleid], businessids=[self.businessid], hostids=[self.hostid], def select_hosts_items(self, host_id=None):
manageIpList=[self.hostid], itemids=[self.itemid], problemidList=[self.eventid], session = self.db_session()
tagNameList=[self.base_name], description=self.description) sql = DataHostsItems().select_all_from_allKeys(session=session, host_id=host_id)
self.check_code(response=response, code=0) return sql
self.experienceid = UtilsResponse().get_data(response=response)
return self.experienceid
@allure.step("校验数据") @allure.step("校验数据")
def check_select(self, response): def check_select(self, response):
...@@ -419,55 +283,49 @@ class TestExperienceUpdate(object): ...@@ -419,55 +283,49 @@ class TestExperienceUpdate(object):
for q, w in enumerate(sql): for q, w in enumerate(sql):
assert w.tagid == tagids[0] assert w.tagid == tagids[0]
@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.title("experience.update:token未传") @allure.title("experience.update: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.experience_update()
response = self.experience_update() self.app.check_code(response=response, code=2001)
self.check_code(response=response, code=2001) self.app.check_msg(response=response, msg="无token,请重新登录")
self.check_msg(response=response, msg="无token,请重新登录")
@allure.title("experience.update:token的用户已删除") @allure.title("experience.update:token的用户已删除")
@allure.story("更新经验手册:token的用户已删除") @allure.story("更新经验手册:token的用户已删除")
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.experience_update(token=self.token)
response = self.experience_update(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("experience.update:token的用户已禁用") @allure.title("experience.update:token的用户已禁用")
@allure.story("更新经验手册:token的用户已禁用") @allure.story("更新经验手册:token的用户已禁用")
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.experience_update(token=self.token)
response = self.experience_update(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("experience.update:更新所有字段") @allure.title("experience.update:更新所有字段")
@allure.story("更新经验手册:更新所有字段") @allure.story("更新经验手册:更新所有字段")
def test_case_04(self): def test_case_04(self):
self.get_base_token() title = self.base_title + "04"
content = self.base_content + "04"
description = self.base_description + "04"
self.update_title = title + "修改"
self.update_content = content + "修改"
self.update_description = description + "修改"
self.case_create(num="04") self.case_create(num="04")
response = self.experience_update(token=self.token, _id=self.experienceid, title=self.update_title, content=self.update_content, self.case_create_update(num="041")
description=self.update_description, businessids=[self.update_businessid], hostTypes=[self.base_type_snmp], self.experienceid = self.app.case_create_experience(title=title, content=content, description=description, host_types=[self.base_type_agent])
hostids=[self.update_hostid], itemids=[self.update_itemid], manageIpList=[self.update_hostid], response = self.app.experience_update(token=self.token, _id=self.experienceid, title=self.update_title, content=self.update_content,
alarmRuleids=[self.update_alarm_ruleid], tagNameList=[self.base_update_name], problemidList=[self.update_eventid]) description=self.update_description, businessids=[self.update_businessid], hostTypes=[self.base_type_snmp],
self.check_code(response=response, code=0) hostids=[self.update_hostid], itemids=[self.update_itemid], manageIpList=[self.update_hostid],
alarmRuleids=[self.update_alarm_ruleid], tagNameList=[self.base_update_name],
problemidList=[self.update_eventid])
self.app.check_code(response=response, code=0)
self.check_select(response=response) self.check_select(response=response)
......
# -*- coding: utf-8 -*-
# Argus模块公共封装类
# 作者: 陈磊
# 时间: 2019-12-17
from WorkApi.APP.AddressBook.addressbook_create import AddressBookCreate from WorkApi.APP.AddressBook.addressbook_create import AddressBookCreate
from WorkApi.APP.AddressBook.addressbook_delete import AddressBookDelete from WorkApi.APP.AddressBook.addressbook_delete import AddressBookDelete
from WorkApi.APP.AddressBook.addressbook_disabled import AddressBookDisabled from WorkApi.APP.AddressBook.addressbook_disabled import AddressBookDisabled
...@@ -31,6 +36,8 @@ from WorkApi.APP.Experience.experience_get import ExperienceGet ...@@ -31,6 +36,8 @@ from WorkApi.APP.Experience.experience_get import ExperienceGet
from WorkApi.APP.Experience.experience_update import ExperienceUpdate 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.HostMonitor.hostMonitor_get import HostMonitorGet from WorkApi.APP.HostMonitor.hostMonitor_get import HostMonitorGet
from WorkApi.APP.HostMonitor.hostMonitor_get_hostid import HostMonitorGetHostid
from WorkApi.APP.HostMonitor.hostMonitor_thread_hostid import HostMonitorThreadHostid
from WorkApi.APP.HostType.hostType_create import HostTypeCreate from WorkApi.APP.HostType.hostType_create import HostTypeCreate
from WorkApi.APP.HostType.hostType_delete import HostTypeDelete from WorkApi.APP.HostType.hostType_delete import HostTypeDelete
from WorkApi.APP.HostType.hostType_get import HostTypeGet from WorkApi.APP.HostType.hostType_get import HostTypeGet
...@@ -342,24 +349,74 @@ class AppBase(object): ...@@ -342,24 +349,74 @@ class AppBase(object):
return api.response return api.response
@allure.step("创建测试数据-资产") @allure.step("创建测试数据-资产")
def case_create_host(self, name, host_type, iplist, port, businessIds, monitorStatus=None): def case_create_host(self, name, host_type, port, businessIds, iplist=None, dns=None, parentHost=None, monitorType=None, monitorStatus=None):
if monitorStatus is not None: if monitorStatus is not None and monitorType is not None and parentHost is not None:
response = self.device_create(
token=self.token, hostName=name, hostType=host_type, iplist=iplist, dns=dns, monitorInterface=port,
monitorType=monitorType, manageLevel=1, parentHost=parentHost, 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)
elif monitorStatus is not None and monitorType is not None and parentHost is None:
response = self.device_create(
token=self.token, hostName=name, hostType=host_type, iplist=iplist, dns=dns, monitorInterface=port,
monitorType=monitorType, 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)
elif monitorStatus is not None and monitorType is None and parentHost is not None:
response = self.device_create(
token=self.token, hostName=name, hostType=host_type, iplist=iplist, dns=dns, monitorInterface=port,
monitorType=1, manageLevel=1, parentHost=parentHost, 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)
elif monitorStatus is None and monitorType is not None and parentHost is not None:
response = self.device_create(
token=self.token, hostName=name, hostType=host_type, iplist=iplist, dns=dns, monitorInterface=port,
monitorType=monitorType, manageLevel=1, parentHost=parentHost, 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=1)
elif monitorStatus is not None and monitorType is None and parentHost is None:
response = self.device_create( response = self.device_create(
token=self.token, hostName=name, hostType=host_type, iplist=iplist, monitorInterface=port, token=self.token, hostName=name, hostType=host_type, iplist=iplist, dns=dns, monitorInterface=port,
monitorType=1, manageLevel=1, parentHost=1, businessIds=businessIds, monitorType=1, manageLevel=1, parentHost=1, businessIds=businessIds,
opsPerson=11, snmpCommunity="snmpCommunity", opsPerson=11, snmpCommunity="snmpCommunity",
ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword", ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword",
factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description", factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description",
monitorStatus=monitorStatus)
elif monitorStatus is None and monitorType is not None and parentHost is None:
response = self.device_create(
token=self.token, hostName=name, hostType=host_type, iplist=iplist, dns=dns, monitorInterface=port,
monitorType=monitorType, 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=1) monitorStatus=1)
elif monitorStatus is None and monitorType is None and parentHost is not None:
response = self.device_create(
token=self.token, hostName=name, hostType=host_type, iplist=iplist, dns=dns, monitorInterface=port,
monitorType=1, manageLevel=1, parentHost=parentHost, 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=1)
else: else:
response = self.device_create( response = self.device_create(
token=self.token, hostName=name, hostType=host_type, iplist=iplist, monitorInterface=port, token=self.token, hostName=name, hostType=host_type, iplist=iplist, dns=dns, monitorInterface=port,
monitorType=1, manageLevel=1, parentHost=1, businessIds=businessIds, monitorType=1, manageLevel=1, parentHost=1, businessIds=businessIds,
opsPerson=11, snmpCommunity="snmpCommunity", opsPerson=11, snmpCommunity="snmpCommunity",
ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword", ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword",
factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description", factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description",
monitorStatus=monitorStatus) monitorStatus=1)
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
...@@ -407,6 +464,7 @@ class AppBase(object): ...@@ -407,6 +464,7 @@ class AppBase(object):
@allure.step("校验数据") @allure.step("校验数据")
def check_keyValue(self, _json, _key, _value, isIn=None): def check_keyValue(self, _json, _key, _value, isIn=None):
assert _json != []
for x, y in enumerate(_json): for x, y in enumerate(_json):
if isIn == 1: if isIn == 1:
assert _value in y[_key] assert _value in y[_key]
...@@ -827,3 +885,19 @@ class AppBase(object): ...@@ -827,3 +885,19 @@ class AppBase(object):
api.size = size api.size = size
api.get_response() api.get_response()
return api.response return api.response
@allure.step("调用接口:hostmonitor.get.hostid")
def hostmonitor_get_hostid(self, token=None, hostid=None):
api = HostMonitorGetHostid(_host=self.host)
api.token = token
api.hostid = hostid
api.get_response()
return api.response
@allure.step("调用接口:hostmonitor.thread.hostid")
def hostmonitor_thread_hostid(self, token=None, hostid=None):
api = HostMonitorThreadHostid(_host=self.host)
api.token = token
api.hostid = hostid
api.get_response()
return api.response
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