Commit 1af9ae94 by sanshi

地址更新

parent 3506743d
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-12-17
from __future__ import division
from WorkCase import CaseBase
from WorkCase.APP import AppBase
from WorkUtils.UtilsLog import UtilsLog
from WorkUtils.UtilsDataBase import UtilsDataBase
from WorkUtils.UtilsResponse import UtilsResponse
from WorkData.Argus.members import DataMembers
from WorkData.Argus.address_book import DataAddressBook
from WorkData.Zabbix.drules import DataDrules
import allure
@allure.feature("测试模块:addressbook.iplist.get")
class TestAddressBookIplistGet(object):
log = UtilsLog()
env = CaseBase().app_environment
host = env["host"]
db_url = env["db_url"]
db_port = env["db_port"]
db_user = env["db_user"]
db_pw = env["db_pw"]
db_base = env["db_base"]
db_base_zabbix = env["db_base_zabbix"]
login_name = "SS测试用户名"
base_id = 10
base_password = "123456"
base_name = "SS 自动化专用地址簿"
base_iplist = "192.168.5.1-254"
@classmethod
def setup_class(cls):
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)
DataAddressBook().delete_like_name(session=session, name=cls.base_name)
session = UtilsDataBase().conn_mysql(db_url=cls.db_url, db_port=cls.db_port, db_base=cls.db_base_zabbix, db_user=cls.db_user, db_pw=cls.db_pw)
DataDrules().delete_like_name(session=session, name=cls.base_name)
@classmethod
def teardown_class(cls):
cls.log.debug("结束执行测试套件.......")
def setup_method(self):
self.log.debug("测试用例执行开始...")
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.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):
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("连接数据库:Zabbix")
def db_session_zabbix(self):
session = UtilsDataBase().conn_mysql(db_url=self.db_url, db_port=self.db_port, db_base=self.db_base_zabbix, db_user=self.db_user, db_pw=self.db_pw)
return session
@allure.step("查询表:drule")
def select_drule(self, druleid=None, name=None):
session = self.db_session_zabbix()
sql = DataDrules().select_all_from_allKeys(session=session, druleid=druleid, name=name)
return sql
@allure.step("查询表:address_book")
def select_address_book(self, address_id=None, name=None):
session = self.db_session()
sql = DataAddressBook().select_all_from_allKeys(session=session, _id=address_id, name=name)
return sql
@allure.step("校验查询结果")
def check_select(self, response):
data = UtilsResponse().get_data(response=response)
for q, w in enumerate(data["list"]):
sql = self.select_address_book(address_id=w["id"])
for x, y in enumerate(sql):
assert y.name == w["name"]
assert y.iplist == self.base_iplist
assert y.available == w["available"]
assert y.delay == "1h"
assert x == 0
sql_r = self.select_drule(y.ruleid)
for e, t in enumerate(sql_r):
assert y.name == t.name
assert y.iplist == t.iprange
assert y.available == t.status
assert y.delay == t.delay
assert x == 0
assert sql_r != []
@allure.title("addressbook.iplist.get:token未传")
@allure.story("查询地址簿列表:token未传")
@allure.severity("blocker")
def test_case_01(self):
response = self.app.addressbook_iplist_get()
self.app.check_code(response=response, code=2001)
self.app.check_msg(response=response, msg="无token,请重新登录")
@allure.title("addressbook.iplist.get:token的用户已删除")
@allure.story("查询地址簿列表:token的用户已删除")
@allure.severity("blocker")
def test_case_02(self):
self.app.update_members_del_flag(session=self.db_session(), members_id=self.base_id, value=CaseBase().del_flag["ON"])
response = self.app.addressbook_iplist_get(token=self.token)
self.app.check_code(response=response, code=2004)
self.app.check_msg(response=response, msg="用户不存在")
@allure.title("addressbook.iplist.get:token的用户已禁用")
@allure.story("查询地址簿列表:token的用户已禁用")
@allure.severity("blocker")
def test_case_03(self):
self.app.update_members_status(session=self.db_session(), members_id=self.base_id, value=CaseBase().status["OFF"])
response = self.app.addressbook_iplist_get(token=self.token)
self.app.check_code(response=response, code=2003)
self.app.check_msg(response=response, msg="账户已被禁用")
@allure.title("addressbook.iplist.get:无参数调用")
@allure.story("查询地址簿列表:无参数调用")
@allure.severity("blocker")
def test_case_04(self):
response = self.app.addressbook_iplist_get(token=self.token)
self.app.check_code(response=response, code=0)
@allure.title("addressbook.iplist.get:name精确查询")
@allure.story("查询地址簿列表:name精确查询")
def test_case_05(self):
name = self.base_name + "05"
self.app.case_create_addressbook(name=name, iplist=self.base_iplist, available=CaseBase().available["ON"], _type=1)
response = self.app.addressbook_iplist_get(token=self.token, name=name)
self.app.check_code(response=response, code=0)
self.app.check_keyValue(_json=UtilsResponse().get_data_list(response=response), _key="name", _value=name)
@allure.title("addressbook.iplist.get:available=0查询")
@allure.story("查询地址簿列表:available=0查询")
def test_case_06(self):
name = self.base_name + "06"
self.app.case_create_addressbook(name=name, iplist=self.base_iplist, available=CaseBase().available["ON"], _type=1)
response = self.app.addressbook_iplist_get(token=self.token, available=CaseBase().available["ON"])
self.app.check_code(response=response, code=0)
self.app.check_keyValue(_json=UtilsResponse().get_data_list(response=response), _key="available", _value=CaseBase().available["ON"])
@allure.title("addressbook.iplist.get:available=1查询")
@allure.story("查询地址簿列表:available=1查询")
def test_case_07(self):
name = self.base_name + "07"
self.app.case_create_addressbook(name=name, iplist=self.base_iplist, available=CaseBase().available["OFF"], _type=1)
response = self.app.addressbook_iplist_get(token=self.token, available=CaseBase().available["OFF"])
self.app.check_code(response=response, code=0)
self.app.check_keyValue(_json=UtilsResponse().get_data_list(response=response), _key="available", _value=CaseBase().available["OFF"])
if __name__ == "__main__":
from WorkUtils.UtilsPyTest import UtilsPyTest
from WorkUtils.UtilsCmd import UtilsCmd
import os
# 执行自动化测试用例
# case_info = os.path.split(__file__)
# case = UtilsCmd().pytest_cmd()
# r = UtilsPyTest(case=case, case_info=case_info)
# r.run_main()
a = TestAddressBookIplistGet()
a.setup_class()
a.setup_method()
a.test_case_05()
...@@ -9,6 +9,8 @@ from __future__ import division ...@@ -9,6 +9,8 @@ from __future__ import division
from WorkCase import CaseBase from WorkCase import CaseBase
from WorkCase.APP import AppBase from WorkCase.APP import AppBase
from WorkData.Zabbix.drules import DataDrules from WorkData.Zabbix.drules import DataDrules
from WorkData.Zabbix.dchecks import DataDchecks
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
...@@ -40,6 +42,9 @@ class TestAddressBookCreate(object): ...@@ -40,6 +42,9 @@ class TestAddressBookCreate(object):
base_name = "SS 自动化专用地址簿" base_name = "SS 自动化专用地址簿"
base_iplist = "192.168.0.1-254" base_iplist = "192.168.0.1-254"
base_iprange = "192.168.0.1-254"
base_delay = "1h"
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
cls.log.debug("开始执行测试套件.......") cls.log.debug("开始执行测试套件.......")
...@@ -77,12 +82,18 @@ class TestAddressBookCreate(object): ...@@ -77,12 +82,18 @@ class TestAddressBookCreate(object):
session = UtilsDataBase().conn_mysql(db_url=self.db_url, db_port=self.db_port, db_base=self.db_base_zabbix, db_user=self.db_user, db_pw=self.db_pw) session = UtilsDataBase().conn_mysql(db_url=self.db_url, db_port=self.db_port, db_base=self.db_base_zabbix, db_user=self.db_user, db_pw=self.db_pw)
return session return session
@allure.step("查询表:drule") @allure.step("查询表:drules")
def select_drule(self, druleid=None, name=None): def select_drules(self, druleid=None, name=None):
session = self.db_session_zabbix() session = self.db_session_zabbix()
sql = DataDrules().select_all_from_allKeys(session=session, druleid=druleid, name=name) sql = DataDrules().select_all_from_allKeys(session=session, druleid=druleid, name=name)
return sql return sql
@allure.step("查询表:dchecks")
def select_dchecks(self, druleid=None):
session = self.db_session_zabbix()
sql = DataDchecks().select_all_from_allKeys(session=session, druleid=druleid)
return sql
@allure.step("查询表:address_book") @allure.step("查询表:address_book")
def select_address_book(self, address_id=None, name=None): def select_address_book(self, address_id=None, name=None):
session = self.db_session() session = self.db_session()
...@@ -90,23 +101,43 @@ class TestAddressBookCreate(object): ...@@ -90,23 +101,43 @@ class TestAddressBookCreate(object):
return sql return sql
@allure.step("校验查询结果") @allure.step("校验查询结果")
def check_select(self, response, name, available): def check_select(self, response, name, available, check_type, dchecks_type, dchecks_key_, dchecks_snmp_community,
data = UtilsResponse().get_data(response=response) dchecks_ports, dchecks_host_source, dchecks_name_source):
sql = self.select_address_book(address_id=data) self.druleid = UtilsResponse().get_data(response=response)
sql = self.select_address_book(address_id=self.druleid)
self.ruleid = None
assert sql != []
for x, y in enumerate(sql): for x, y in enumerate(sql):
assert y.name == name assert y.name == name
assert y.iplist == self.base_iplist
assert y.available == available assert y.available == available
assert y.delay == "1h" assert y.delay == "1h"
assert y.checktype == check_type
assert x == 0
self.ruleid = y.ruleid
sql = self.select_drules(druleid=self.ruleid)
assert sql != []
for x, y in enumerate(sql):
assert y.name == name
assert y.iprange == self.base_iprange
assert y.delay == self.base_delay
assert y.status == available
assert y.delay == "1h"
assert x == 0 assert x == 0
sql_r = self.select_drule(y.ruleid)
for q, w in enumerate(sql_r): sql = self.select_dchecks(druleid=self.ruleid)
assert y.name == w.name assert sql != []
assert y.iplist == w.iprange for x, y in enumerate(sql):
assert y.available == w.status assert y.type == dchecks_type
assert y.delay == w.delay assert y.key_ == dchecks_key_
assert y.snmp_community == dchecks_snmp_community
assert int(y.ports) == dchecks_ports
assert y.host_source == dchecks_host_source
assert y.name_source == dchecks_name_source
assert y.snmpv3_securitylevel == 0
assert y.snmpv3_authprotocol == 0
assert y.snmpv3_privprotocol == 0
assert x == 0 assert x == 0
assert sql_r != []
@allure.title("addressbook.create:token未传") @allure.title("addressbook.create:token未传")
@allure.story("创建地址簿:token未传") @allure.story("创建地址簿:token未传")
...@@ -134,25 +165,53 @@ class TestAddressBookCreate(object): ...@@ -134,25 +165,53 @@ class TestAddressBookCreate(object):
self.app.check_code(response=response, code=2003) self.app.check_code(response=response, code=2003)
self.app.check_msg(response=response, msg="账户已被禁用") self.app.check_msg(response=response, msg="账户已被禁用")
@allure.title("addressbook.create:创建可用地址簿") @allure.title("addressbook.create:创建可用地址簿 类型 Agent")
@allure.story("创建地址簿:创建可用地址簿") @allure.story("创建地址簿:创建可用地址簿 类型 Agent")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_04(self): def test_case_04(self):
name = self.base_name + "04" name = self.base_name + "04"
response = self.app.addressbook_create(token=self.token, name=name, iplist=self.base_iplist, response = self.app.addressbook_create(token=self.token, name=name, iplist=self.base_iplist,
available=CaseBase().available["ON"], delay="1h") available=CaseBase().available["ON"], delay="1h", _type=1)
self.app.check_code(response=response, code=0) self.app.check_code(response=response, code=0)
self.check_select(response=response, name=name, available=CaseBase().available["ON"]) self.check_select(response=response, name=name, available=CaseBase().available["ON"], check_type=1,
dchecks_type=9, dchecks_key_="system.uname", dchecks_snmp_community="",
dchecks_ports=10050, dchecks_host_source=2, dchecks_name_source=2)
@allure.title("addressbook.create:创建禁用地址簿") @allure.title("addressbook.create:创建可用地址簿 类型 snmp")
@allure.story("创建地址簿:创建禁用地址簿") @allure.story("创建地址簿:创建可用地址簿 类型 snmp")
@allure.severity("blocker") @allure.severity("blocker")
def test_case_05(self): def test_case_05(self):
name = self.base_name + "05" name = self.base_name + "05"
response = self.app.addressbook_create(token=self.token, name=name, iplist=self.base_iplist, response = self.app.addressbook_create(token=self.token, name=name, iplist=self.base_iplist,
available=CaseBase().available["ON"], delay="1h", _type=2)
self.app.check_code(response=response, code=0)
self.check_select(response=response, name=name, available=CaseBase().available["ON"], check_type=2,
dchecks_type=11, dchecks_key_="1.3.6.1.2.1.25.4.2.1.2", dchecks_snmp_community="{$SNMP_COMMUNITY}",
dchecks_ports=161, dchecks_host_source=2, dchecks_name_source=2)
@allure.title("addressbook.create:创建可用地址簿 类型 icmp")
@allure.story("创建地址簿:创建可用地址簿 类型 icmp")
@allure.severity("blocker")
def test_case_06(self):
name = self.base_name + "06"
response = self.app.addressbook_create(token=self.token, name=name, iplist=self.base_iplist,
available=CaseBase().available["ON"], delay="1h", _type=3)
self.app.check_code(response=response, code=0)
self.check_select(response=response, name=name, available=CaseBase().available["ON"], check_type=3,
dchecks_type=12, dchecks_key_="", dchecks_snmp_community="",
dchecks_ports=0, dchecks_host_source=2, dchecks_name_source=2)
@allure.title("addressbook.create:创建禁用地址簿")
@allure.story("创建地址簿:创建禁用地址簿")
@allure.severity("blocker")
def test_case_07(self):
name = self.base_name + "07"
response = self.app.addressbook_create(token=self.token, name=name, iplist=self.base_iplist, _type=1,
available=CaseBase().available["OFF"], delay="1h") available=CaseBase().available["OFF"], delay="1h")
self.app.check_code(response=response, code=0) self.app.check_code(response=response, code=0)
self.check_select(response=response, name=name, available=CaseBase().available["OFF"]) self.check_select(response=response, name=name, available=CaseBase().available["OFF"], check_type=1,
dchecks_type=9, dchecks_key_="system.uname", dchecks_snmp_community="",
dchecks_ports=10050, dchecks_host_source=2, dchecks_name_source=2)
if __name__ == "__main__": if __name__ == "__main__":
...@@ -169,5 +228,6 @@ if __name__ == "__main__": ...@@ -169,5 +228,6 @@ if __name__ == "__main__":
# a = TestAddressBookCreate() # a = TestAddressBookCreate()
# a.setup_class() # a.setup_class()
# a.setup_method()
# a.test_case_04() # a.test_case_04()
...@@ -148,7 +148,7 @@ class TestAddressBookGet(object): ...@@ -148,7 +148,7 @@ class TestAddressBookGet(object):
@allure.story("查询地址簿:name精确查询") @allure.story("查询地址簿:name精确查询")
def test_case_05(self): def test_case_05(self):
name = self.base_name + "05" name = self.base_name + "05"
self.app.case_create_addressbook(name=name, iplist=self.base_iplist, available=CaseBase().available["ON"]) self.app.case_create_addressbook(name=name, iplist=self.base_iplist, available=CaseBase().available["ON"], _type=1)
response = self.app.addressbook_get(token=self.token, name=name) response = self.app.addressbook_get(token=self.token, name=name)
self.app.check_code(response=response, code=0) self.app.check_code(response=response, code=0)
...@@ -158,7 +158,7 @@ class TestAddressBookGet(object): ...@@ -158,7 +158,7 @@ class TestAddressBookGet(object):
@allure.story("查询地址簿:available=0查询") @allure.story("查询地址簿:available=0查询")
def test_case_06(self): def test_case_06(self):
name = self.base_name + "06" name = self.base_name + "06"
self.app.case_create_addressbook(name=name, iplist=self.base_iplist, available=CaseBase().available["ON"]) self.app.case_create_addressbook(name=name, iplist=self.base_iplist, available=CaseBase().available["ON"], _type=1)
response = self.app.addressbook_get(token=self.token, available=CaseBase().available["ON"]) response = self.app.addressbook_get(token=self.token, available=CaseBase().available["ON"])
self.app.check_code(response=response, code=0) self.app.check_code(response=response, code=0)
...@@ -168,7 +168,7 @@ class TestAddressBookGet(object): ...@@ -168,7 +168,7 @@ class TestAddressBookGet(object):
@allure.story("查询地址簿:available=1查询") @allure.story("查询地址簿:available=1查询")
def test_case_07(self): def test_case_07(self):
name = self.base_name + "07" name = self.base_name + "07"
self.app.case_create_addressbook(name=name, iplist=self.base_iplist, available=CaseBase().available["OFF"]) self.app.case_create_addressbook(name=name, iplist=self.base_iplist, available=CaseBase().available["OFF"], _type=1)
response = self.app.addressbook_get(token=self.token, available=CaseBase().available["OFF"]) response = self.app.addressbook_get(token=self.token, available=CaseBase().available["OFF"])
self.app.check_code(response=response, code=0) self.app.check_code(response=response, code=0)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# Argus模块公共封装类 # Argus模块公共封装类
# 作者: 陈磊 # 作者: 陈磊
# 时间: 2019-12-17 # 时间: 2019-12-17
from WorkApi.APP.AddressBook.Iplist.addressbook_iplist_get import AddressBookIplistGet
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
...@@ -169,12 +169,13 @@ class AppBase(object): ...@@ -169,12 +169,13 @@ class AppBase(object):
return api.response return api.response
@allure.step("调用接口:addressbook.create") @allure.step("调用接口:addressbook.create")
def addressbook_create(self, token=None, name=None, iplist=None, available=None, delay=None): def addressbook_create(self, token=None, name=None, iplist=None, available=None, _type=None, delay=None):
api = AddressBookCreate(_host=self.host) api = AddressBookCreate(_host=self.host)
api.token = token api.token = token
api.name = name api.name = name
api.iplist = iplist api.iplist = iplist
api.available = available api.available = available
api.type = _type
api.delay = delay api.delay = delay
api.get_response() api.get_response()
return api.response return api.response
...@@ -203,6 +204,15 @@ class AppBase(object): ...@@ -203,6 +204,15 @@ class AppBase(object):
api.get_response() api.get_response()
return api.response return api.response
@allure.step("调用接口:addressbook.iplist.get")
def addressbook_iplist_get(self, token=None, ruleid=None, available=None):
api = AddressBookIplistGet(_host=self.host)
api.token = token
api.ruleid = ruleid
api.available = available
api.get_response()
return api.response
@allure.step("调用接口:addressbook.get") @allure.step("调用接口:addressbook.get")
def addressbook_get(self, token=None, name=None, available=None): def addressbook_get(self, token=None, name=None, available=None):
api = AddressBookGet(_host=self.host) api = AddressBookGet(_host=self.host)
...@@ -213,12 +223,13 @@ class AppBase(object): ...@@ -213,12 +223,13 @@ class AppBase(object):
return api.response return api.response
@allure.step("调用接口:addressbook.update") @allure.step("调用接口:addressbook.update")
def addressbook_update(self, token=None, bookid=None, name=None, iplist=None, available=None): def addressbook_update(self, token=None, bookid=None, name=None, iplist=None, _type=None, available=None):
api = AddressBookUpdate(_host=self.host) api = AddressBookUpdate(_host=self.host)
api.token = token api.token = token
api.bookid = bookid api.bookid = bookid
api.name = name api.name = name
api.iplist = iplist api.iplist = iplist
api.type = _type
api.available = available api.available = available
api.get_response() api.get_response()
return api.response return api.response
...@@ -435,8 +446,8 @@ class AppBase(object): ...@@ -435,8 +446,8 @@ class AppBase(object):
return business_id return business_id
@allure.step("创建测试数据-地址簿") @allure.step("创建测试数据-地址簿")
def case_create_addressbook(self, name, iplist, available): def case_create_addressbook(self, name, iplist, available, _type=None):
response = self.addressbook_create(token=self.token, name=name, iplist=iplist, available=available, delay="1h") response = self.addressbook_create(token=self.token, name=name, iplist=iplist, available=available, _type=_type, delay="1h")
self.check_code(response=response, code=0) self.check_code(response=response, code=0)
address_id = UtilsResponse().get_data(response=response) address_id = UtilsResponse().get_data(response=response)
return address_id return address_id
......
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