Commit f91b4acf by sanshi

监控项查询

parent df347116
...@@ -34,9 +34,8 @@ class TestItemsGet(object): ...@@ -34,9 +34,8 @@ class TestItemsGet(object):
db_base = env["db_base"] db_base = env["db_base"]
base_groupid = 101 base_groupid = 101
base_name = "SS TEST HOST" base_name = "SS TEST HOST ITEMS"
base_ip = "10.0.0.10" base_ip = "10.0.0.10"
base_host = "SS自动化测试主机"
base_description = "SS自动化测试主机描述, 请勿删除" base_description = "SS自动化测试主机描述, 请勿删除"
@classmethod @classmethod
...@@ -62,6 +61,28 @@ class TestItemsGet(object): ...@@ -62,6 +61,28 @@ class TestItemsGet(object):
def teardown_method(self): def teardown_method(self):
self.log.debug("测试用例执行结束...") self.log.debug("测试用例执行结束...")
@allure.step("调用接口:host.create")
def host_create(self, host=None, name=None, description=None, groupids=None, interfaces=None, tags=None, templateids=None, macros=None,
inventory=None, status=None, inventory_mode=None):
api = HostCreate(_host=self.host)
api.host = host
api.name = name
api.description = description
api.groupids = groupids
api.interfaces = interfaces
api.tags = tags
api.templateids = templateids
api.macros = macros
api.inventory = inventory
api.status = status
api.inventory_mode = inventory_mode
api.tls_connect = 1
api.tls_accept = 1
api.tls_psk_identity = "Test"
api.tls_psk = "Test"
api.get_response()
return api.response
@allure.step("创建测试数据") @allure.step("创建测试数据")
def case_create(self, num): def case_create(self, num):
templateid = 10001 templateid = 10001
...@@ -123,15 +144,15 @@ class TestItemsGet(object): ...@@ -123,15 +144,15 @@ class TestItemsGet(object):
return session return session
@allure.step("查询表:items") @allure.step("查询表:items")
def select_items(self, hostid): def select_items(self, hostid=None, itemid=None):
session = self.db_session() session = self.db_session()
sql = DataItems().select_all_from_allKeys(session=session, hostid=hostid) sql = DataItems().select_all_from_allKeys(session=session, hostid=hostid, itemid=itemid)
return sql return sql
@allure.step("断言返回结果:校验排序") @allure.step("断言返回结果:校验排序")
def check_sortfield(self, response, possible): def check_sortfield(self, response, possible):
result = UtilsResponse().get_result(response=response) result = UtilsResponse().get_result(response=response)
UtilsResponse().check_sort(_list=result, key="groupid", possible=possible) UtilsResponse().check_sort(_list=result, key="itemid", possible=possible)
@allure.step("断言返回结果:校验返回数据的数量") @allure.step("断言返回结果:校验返回数据的数量")
def check_num(self, response, num): def check_num(self, response, num):
...@@ -145,18 +166,11 @@ class TestItemsGet(object): ...@@ -145,18 +166,11 @@ class TestItemsGet(object):
@allure.step("断言返回结果:与数据库结果是否一致") @allure.step("断言返回结果:与数据库结果是否一致")
def check_sql(self, response, hostid): def check_sql(self, response, hostid):
sql = self.select_items(hostid=hostid)
result = UtilsResponse().get_result(response=response) result = UtilsResponse().get_result(response=response)
for x, y in enumerate(sql):
assert y.groupid in UtilsResponse().get_values_from_key(_dict=result, key="groupid")
assert y.name in UtilsResponse().get_values_from_key(_dict=result, key="name")
assert y.internal in UtilsResponse().get_values_from_key(_dict=result, key="internal")
assert y.flags in UtilsResponse().get_values_from_key(_dict=result, key="flags")
for x, y in enumerate(result): for x, y in enumerate(result):
assert y["groupid"] in UtilsResponse().get_values_from_sql(_sql=sql, key="groupid") sql = self.select_items(itemid=y["itemid"])
assert y["name"] in UtilsResponse().get_values_from_sql(_sql=sql, key="name") for q, w in enumerate(sql):
assert y["internal"] in UtilsResponse().get_values_from_sql(_sql=sql, key="internal") assert w.name == y["name"]
assert y["flags"] in UtilsResponse().get_values_from_sql(_sql=sql, key="flags")
@allure.title("items.get:无参数调用") @allure.title("items.get:无参数调用")
@allure.story("查询监控项:无参数调用") @allure.story("查询监控项:无参数调用")
...@@ -188,66 +202,38 @@ class TestItemsGet(object): ...@@ -188,66 +202,38 @@ class TestItemsGet(object):
@allure.title("items.get:hostids=特定IDs, output=[hostid, name]") @allure.title("items.get:hostids=特定IDs, output=[hostid, name]")
@allure.story("查询监控项:hostids=特定IDs, output=[hostid, name]") @allure.story("查询监控项:hostids=特定IDs, output=[hostid, name]")
def test_case_05(self): def test_case_05(self):
hostid = self.case_create(num="03") hostid = self.case_create(num="05")
response = self.items_get(groupids=[hostid], output=["hostid", "name"]) response = self.items_get(hostids=[hostid], output=["hostid", "name"])
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
self.check_sql(response=response, groupid=groupid) self.check_sql(response=response, hostid=hostid)
@allure.title("items.get:limit=1") @allure.title("items.get:limit=1")
@allure.story("查询监控项:limit=1") @allure.story("查询监控项:limit=1")
def test_case_06(self): def test_case_06(self):
name = self.base_name + "06"
response = self.items_create(name=name)
self.check_code(response=response, code=0)
response = self.items_get(limit=1) response = self.items_get(limit=1)
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
result = UtilsResponse().get_result(response=response) result = UtilsResponse().get_result(response=response)
assert len(result) == 1 assert len(result) == 1
@allure.title("items.get:精确搜索") @allure.title("items.get:sortfield=itemid")
@allure.story("查询监控项:精确搜索") @allure.story("查询监控项:sortfield=itemid")
def test_case_07(self): def test_case_07(self):
name = self.base_name + "07" response = self.items_get(sortfield=["itemid"])
response = self.items_create(name=name)
self.check_code(response=response, code=0)
response = self.items_get(search={"name": [name]})
self.check_code(response=response, code=0)
result = UtilsResponse().get_result(response=response)
assert len(result) == 1
@allure.title("items.get:模糊搜索")
@allure.story("查询监控项:模糊搜索")
def test_case_08(self):
name = self.base_name + "08"
response = self.items_create(name=name)
self.check_code(response=response, code=0)
response = self.items_get(search={"name": ["*" + self.base_name + "*"]}, searchByAny=True, searchWildcardsEnabled=True)
self.check_code(response=response, code=0)
result = UtilsResponse().get_result(response=response)
assert len(result) >= 1
@allure.title("items.get:sortfield=groupid")
@allure.story("查询监控项:sortfield=groupid")
def test_case_09(self):
response = self.items_get(sortfield=["groupid"])
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
self.check_sortfield(response=response, possible=True) self.check_sortfield(response=response, possible=True)
@allure.title("items.get:sortfield=groupid, sortorder=ASC") @allure.title("items.get:sortfield=itemid, sortorder=ASC")
@allure.story("查询监控项:sortfield=groupid, sortorder=ASC") @allure.story("查询监控项:sortfield=itemid, sortorder=ASC")
def test_case_10(self): def test_case_08(self):
response = self.items_get(sortfield=["groupid"], sortorder=["ASC"]) response = self.items_get(sortfield=["itemid"], sortorder=["ASC"])
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
self.check_sortfield(response=response, possible="ASC") self.check_sortfield(response=response, possible="ASC")
@allure.title("items.get:sortfield=groupid, sortorder=DESC") @allure.title("items.get:sortfield=itemid, sortorder=DESC")
@allure.story("查询监控项:sortfield=groupid, sortorder=DESC") @allure.story("查询监控项:sortfield=itemid, sortorder=DESC")
def test_case_11(self): def test_case_09(self):
response = self.items_get(sortfield=["groupid"], sortorder=["DESC"]) response = self.items_get(sortfield=["itemid"], sortorder=["DESC"])
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
self.check_sortfield(response=response, possible="DESC") self.check_sortfield(response=response, possible="DESC")
...@@ -259,10 +245,10 @@ if __name__ == "__main__": ...@@ -259,10 +245,10 @@ 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 = TestItemsGet() # a = TestItemsGet()
a.test_case_01() # a.test_case_09()
...@@ -95,18 +95,21 @@ class DataItems(object): ...@@ -95,18 +95,21 @@ class DataItems(object):
self.table = Items self.table = Items
def select_all_from_allKeys(self, session, hostid=None, templateid=None): def select_all_from_allKeys(self, session, itemid=None, hostid=None, templateid=None):
""" """
:param session: 指针 :param session: 指针
:param itemid:
:param hostid: :param hostid:
:param templateid: :param templateid:
:return: 查询结果 :return: 查询结果
""" """
self.log.debug("查询数据库:") self.log.debug("查询数据库:")
self.log.debug("itemid: %s" % itemid)
self.log.debug("hostid: %s" % hostid) self.log.debug("hostid: %s" % hostid)
self.log.debug("templateid: %s" % templateid) self.log.debug("templateid: %s" % templateid)
try: try:
base = UtilsDataBase() base = UtilsDataBase()
base.add_param(_key="itemid", value=itemid)
base.add_param(_key="hostid", value=hostid) base.add_param(_key="hostid", value=hostid)
base.add_param(_key="templateid", value=templateid) base.add_param(_key="templateid", value=templateid)
sql_rep = session.query(self.table).filter_by(**base.param).all() sql_rep = session.query(self.table).filter_by(**base.param).all()
......
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