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
......@@ -10,7 +10,14 @@ import pytest
from WorkApi.APP.Api.api_login import ApiLogin
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.problem import DataProblem
from WorkData.Argus.tag import DataTag
from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsResponse import UtilsResponse
from WorkUtils.UtilsDataBase import UtilsDataBase
......@@ -44,28 +51,30 @@ class TestExperienceItemsList(object):
def teardown_class(cls):
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):
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):
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("调用接口: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
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("连接数据库:Argus")
def db_session(self):
......@@ -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)
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.story("查询监控项下拉框:token未传")
@allure.severity("blocker")
@pytest.mark.skip(reason="此接口未加入token验证")
def test_case_01(self):
self.get_base_token()
response = self.experience_items_list()
self.check_code(response=response, code=2001)
self.check_msg(response=response, msg="无token,请重新登录")
response = self.app.experience_items_list()
self.app.check_code(response=response, code=2001)
self.app.check_msg(response=response, msg="无token,请重新登录")
@allure.title("experience.items.list:token的用户已删除")
@allure.story("查询监控项下拉框:token的用户已删除")
@allure.severity("blocker")
@pytest.mark.skip(reason="此接口未加入token验证")
def test_case_02(self):
self.get_base_token()
self.update_members_del_flag(members_id=self.base_id, value=CaseBase().del_flag["ON"])
response = self.experience_items_list(token=self.token)
self.check_code(response=response, code=2004)
self.check_msg(response=response, msg="用户不存在")
self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["ON"])
response = self.app.experience_items_list(token=self.token)
self.app.check_code(response=response, code=2004)
self.app.check_msg(response=response, msg="用户不存在")
@allure.title("experience.items.list:token的用户已禁用")
@allure.story("查询监控项下拉框:token的用户已禁用")
@allure.severity("blocker")
@pytest.mark.skip(reason="此接口未加入token验证")
def test_case_03(self):
self.get_base_token()
self.update_members_status(members_id=self.base_id, value=CaseBase().status["OFF"])
response = self.experience_items_list(token=self.token)
self.check_code(response=response, code=2003)
self.check_msg(response=response, msg="账户已被禁用")
self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["OFF"])
response = self.app.experience_items_list(token=self.token)
self.app.check_code(response=response, code=2003)
self.app.check_msg(response=response, msg="账户已被禁用")
@allure.title("experience.items.list:无参数调用")
@allure.story("查询监控项下拉框:无参数调用")
@allure.severity("blocker")
def test_case_04(self):
self.get_base_token()
epl_response = self.experience_items_list(token=self.token)
self.check_code(response=epl_response, code=0)
response = self.app.experience_items_list(token=self.token)
self.app.check_code(response=response, code=0)
@allure.title("experience.items.list:itemName查询")
@allure.story("查询监控项下拉框:itemName查询")
@allure.severity("blocker")
def test_case_05(self):
self.get_base_token()
epl_response = self.experience_items_list(token=self.token, itemName="ping")
self.check_code(response=epl_response, code=0)
response = self.app.experience_items_list(token=self.token, itemName="ping")
self.app.check_code(response=response, code=0)
self.app.check_keyValue(_json=UtilsResponse().get_data(response=response), _key="name", _value="ping", isIn=1)
if __name__ == "__main__":
......@@ -176,4 +146,5 @@ if __name__ == "__main__":
# a = TestExperienceItemsList()
# a.setup_class()
# a.setup_method()
# a.test_case_05()
# -*- coding: utf-8 -*-
# Argus模块公共封装类
# 作者: 陈磊
# 时间: 2019-12-17
from WorkApi.APP.AddressBook.addressbook_create import AddressBookCreate
from WorkApi.APP.AddressBook.addressbook_delete import AddressBookDelete
from WorkApi.APP.AddressBook.addressbook_disabled import AddressBookDisabled
......@@ -31,6 +36,8 @@ from WorkApi.APP.Experience.experience_get import ExperienceGet
from WorkApi.APP.Experience.experience_update import ExperienceUpdate
from WorkApi.APP.File.file_upload import FileUpload
from WorkApi.APP.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_delete import HostTypeDelete
from WorkApi.APP.HostType.hostType_get import HostTypeGet
......@@ -342,24 +349,74 @@ class AppBase(object):
return api.response
@allure.step("创建测试数据-资产")
def case_create_host(self, name, host_type, iplist, port, businessIds, monitorStatus=None):
if monitorStatus is not 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 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(
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,
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 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)
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:
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,
opsPerson=11, snmpCommunity="snmpCommunity",
ipmiAuthtype=1, ipmiPrivilege=1, ipmiUsername="ipmiUsername", ipmiPassword="ipmiPassword",
factoryId=1, model="model", version="version", serialnumber="serialnumber", description="description",
monitorStatus=monitorStatus)
monitorStatus=1)
self.check_code(response=response, code=0)
host_id = UtilsResponse().get_data(response=response)
return host_id
......@@ -407,6 +464,7 @@ class AppBase(object):
@allure.step("校验数据")
def check_keyValue(self, _json, _key, _value, isIn=None):
assert _json != []
for x, y in enumerate(_json):
if isIn == 1:
assert _value in y[_key]
......@@ -827,3 +885,19 @@ class AppBase(object):
api.size = size
api.get_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