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 ...@@ -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()
# -*- 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