Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zmops-test
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sanshi
zmops-test
Commits
4da6e023
Commit
4da6e023
authored
Dec 09, 2019
by
sanshi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
IP地址簿
parent
d203df7b
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1829 additions
and
0 deletions
+1829
-0
Administrator.xml
.idea/dictionaries/Administrator.xml
+3
-0
__init__.py
WorkApi/APP/AddressBook/__init__.py
+0
-0
addressbook_create.py
WorkApi/APP/AddressBook/addressbook_create.py
+50
-0
addressbook_delete.py
WorkApi/APP/AddressBook/addressbook_delete.py
+44
-0
addressbook_disabled.py
WorkApi/APP/AddressBook/addressbook_disabled.py
+44
-0
addressbook_enabled.py
WorkApi/APP/AddressBook/addressbook_enabled.py
+42
-0
addressbook_get.py
WorkApi/APP/AddressBook/addressbook_get.py
+44
-0
addressbook_update.py
WorkApi/APP/AddressBook/addressbook_update.py
+50
-0
__init__.py
WorkCase/APP/AddressBook/__init__.py
+0
-0
test_addressbook_create.py
WorkCase/APP/AddressBook/test_addressbook_create.py
+222
-0
test_addressbook_delete.py
WorkCase/APP/AddressBook/test_addressbook_delete.py
+230
-0
test_addressbook_disabled.py
WorkCase/APP/AddressBook/test_addressbook_disabled.py
+240
-0
test_addressbook_enabled.py
WorkCase/APP/AddressBook/test_addressbook_enabled.py
+240
-0
test_addressbook_get.py
WorkCase/APP/AddressBook/test_addressbook_get.py
+273
-0
test_addressbook_update.py
WorkCase/APP/AddressBook/test_addressbook_update.py
+260
-0
__init__.py
WorkCase/__init__.py
+5
-0
address_book.py
WorkData/Argus/address_book.py
+82
-0
No files found.
.idea/dictionaries/Administrator.xml
View file @
4da6e023
<component
name=
"ProjectDictionaryState"
>
<component
name=
"ProjectDictionaryState"
>
<dictionary
name=
"Administrator"
>
<dictionary
name=
"Administrator"
>
<words>
<words>
<w>
addressbook
</w>
<w>
alluredir
</w>
<w>
alluredir
</w>
<w>
applicationids
</w>
<w>
applicationids
</w>
<w>
authpassphrase
</w>
<w>
authpassphrase
</w>
<w>
authprotocol
</w>
<w>
authprotocol
</w>
<w>
authtype
</w>
<w>
authtype
</w>
<w>
bookid
</w>
<w>
bookids
</w>
<w>
businessid
</w>
<w>
businessid
</w>
<w>
businessids
</w>
<w>
businessids
</w>
<w>
contextname
</w>
<w>
contextname
</w>
...
...
WorkApi/APP/Address
b
ook/__init__.py
→
WorkApi/APP/Address
B
ook/__init__.py
View file @
4da6e023
File moved
WorkApi/APP/AddressBook/addressbook_create.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 创建地址簿
# 作者: 陈磊
# 时间: 2019-12-09
from
WorkUtils.UtilsRequest
import
UtilsRequest
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkApi.ApiBase
import
ApiBase
,
GetBase
class
AddressBookCreate
(
object
):
def
__init__
(
self
,
_host
):
"""
:param _host: 域名
:return:
"""
self
.
log
=
UtilsLog
()
self
.
log
.
info
(
"调用创建地址簿"
)
self
.
log
.
info
(
self
.
__class__
)
self
.
_host
=
_host
self
.
_headers
=
{}
self
.
_path
=
"/addressbook/create"
self
.
_url
=
self
.
_host
+
self
.
_path
self
.
_params
=
{}
self
.
_json
=
{}
self
.
_data
=
{}
self
.
response
=
""
self
.
local_json
=
{}
self
.
token
=
None
self
.
name
=
None
self
.
iplist
=
None
self
.
available
=
None
self
.
delay
=
None
self
.
api
=
UtilsRequest
()
def
get_response
(
self
):
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"token"
,
value
=
self
.
token
)
self
.
_headers
=
base
.
_json
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"name"
,
value
=
self
.
name
)
base
.
dict_add_key
(
_key
=
"iplist"
,
value
=
self
.
iplist
)
base
.
dict_add_key
(
_key
=
"available"
,
value
=
self
.
available
)
base
.
dict_add_key
(
_key
=
"delay"
,
value
=
self
.
delay
)
self
.
_json
=
base
.
_json
self
.
response
=
self
.
api
.
post
(
url
=
self
.
_url
,
headers
=
self
.
_headers
,
json
=
self
.
_json
)
WorkApi/APP/AddressBook/addressbook_delete.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 删除地址簿
# 作者: 陈磊
# 时间: 2019-12-09
from
WorkUtils.UtilsRequest
import
UtilsRequest
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkApi.ApiBase
import
ApiBase
,
GetBase
class
AddressBookDelete
(
object
):
def
__init__
(
self
,
_host
):
"""
:param _host: 域名
:return:
"""
self
.
log
=
UtilsLog
()
self
.
log
.
info
(
"调用删除地址簿"
)
self
.
log
.
info
(
self
.
__class__
)
self
.
_host
=
_host
self
.
_headers
=
{}
self
.
_path
=
"/addressbook/delete"
self
.
_url
=
self
.
_host
+
self
.
_path
self
.
_params
=
{}
self
.
_json
=
{}
self
.
_data
=
{}
self
.
response
=
""
self
.
local_json
=
{}
self
.
token
=
None
self
.
bookids
=
None
self
.
api
=
UtilsRequest
()
def
get_response
(
self
):
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"token"
,
value
=
self
.
token
)
self
.
_headers
=
base
.
_json
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"bookids"
,
value
=
self
.
bookids
)
self
.
_json
=
base
.
_json
self
.
response
=
self
.
api
.
post
(
url
=
self
.
_url
,
headers
=
self
.
_headers
,
json
=
self
.
_json
)
WorkApi/APP/AddressBook/addressbook_disabled.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 禁用地址簿
# 作者: 陈磊
# 时间: 2019-12-09
from
WorkUtils.UtilsRequest
import
UtilsRequest
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkApi.ApiBase
import
ApiBase
,
GetBase
class
AddressBookDisabled
(
object
):
def
__init__
(
self
,
_host
):
"""
:param _host: 域名
:return:
"""
self
.
log
=
UtilsLog
()
self
.
log
.
info
(
"调用禁用地址簿"
)
self
.
log
.
info
(
self
.
__class__
)
self
.
_host
=
_host
self
.
_headers
=
{}
self
.
_path
=
"/addressbook/disabled"
self
.
_url
=
self
.
_host
+
self
.
_path
self
.
_params
=
{}
self
.
_json
=
{}
self
.
_data
=
{}
self
.
response
=
""
self
.
local_json
=
{}
self
.
token
=
None
self
.
bookids
=
None
self
.
api
=
UtilsRequest
()
def
get_response
(
self
):
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"token"
,
value
=
self
.
token
)
self
.
_headers
=
base
.
_json
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"bookids"
,
value
=
self
.
bookids
)
self
.
_json
=
base
.
_json
self
.
response
=
self
.
api
.
post
(
url
=
self
.
_url
,
headers
=
self
.
_headers
,
json
=
self
.
_json
)
WorkApi/APP/AddressBook/addressbook_enabled.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 启用地址簿
# 作者: 陈磊
# 时间: 2019-12-09
from
WorkUtils.UtilsRequest
import
UtilsRequest
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkApi.ApiBase
import
ApiBase
,
GetBase
class
AddressBookEnabled
(
object
):
def
__init__
(
self
,
_host
):
"""
:param _host: 域名
:return:
"""
self
.
log
=
UtilsLog
()
self
.
log
.
info
(
"调用启用地址簿"
)
self
.
log
.
info
(
self
.
__class__
)
self
.
_host
=
_host
self
.
_headers
=
{}
self
.
_path
=
"/addressbook/enabled"
self
.
_url
=
self
.
_host
+
self
.
_path
self
.
_params
=
{}
self
.
_json
=
{}
self
.
_data
=
{}
self
.
response
=
""
self
.
token
=
None
self
.
bookids
=
None
self
.
api
=
UtilsRequest
()
def
get_response
(
self
):
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"token"
,
value
=
self
.
token
)
self
.
_headers
=
base
.
_json
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"bookids"
,
value
=
self
.
bookids
)
self
.
_json
=
base
.
_json
self
.
response
=
self
.
api
.
post
(
url
=
self
.
_url
,
headers
=
self
.
_headers
,
json
=
self
.
_json
)
WorkApi/APP/AddressBook/addressbook_get.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 查询地址簿
# 作者: 陈磊
# 时间: 2019-12-09
from
WorkUtils.UtilsRequest
import
UtilsRequest
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkApi.ApiBase
import
ApiBase
,
GetBase
class
AddressBookGet
(
object
):
def
__init__
(
self
,
_host
):
"""
:param _host: 域名
:return:
"""
self
.
log
=
UtilsLog
()
self
.
log
.
info
(
"调用查询地址簿"
)
self
.
log
.
info
(
self
.
__class__
)
self
.
_host
=
_host
self
.
_headers
=
{}
self
.
_path
=
"/addressbook/get"
self
.
_url
=
self
.
_host
+
self
.
_path
self
.
_params
=
{}
self
.
_json
=
{}
self
.
_data
=
{}
self
.
response
=
""
self
.
token
=
None
self
.
name
=
None
self
.
available
=
None
self
.
api
=
UtilsRequest
()
def
get_response
(
self
):
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"token"
,
value
=
self
.
token
)
self
.
_headers
=
base
.
_json
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"name"
,
value
=
self
.
name
)
base
.
dict_add_key
(
_key
=
"available"
,
value
=
self
.
available
)
self
.
_params
=
base
.
_json
self
.
response
=
self
.
api
.
get
(
url
=
self
.
_url
,
headers
=
self
.
_headers
,
params
=
self
.
_params
)
WorkApi/APP/AddressBook/addressbook_update.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 更新地址簿
# 作者: 陈磊
# 时间: 2019-12-09
from
WorkUtils.UtilsRequest
import
UtilsRequest
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkApi.ApiBase
import
ApiBase
,
GetBase
class
AddressBookUpdate
(
object
):
def
__init__
(
self
,
_host
):
"""
:param _host: 域名
:return:
"""
self
.
log
=
UtilsLog
()
self
.
log
.
info
(
"调用更新地址簿"
)
self
.
log
.
info
(
self
.
__class__
)
self
.
_host
=
_host
self
.
_headers
=
{}
self
.
_path
=
"/addressbook/update"
self
.
_url
=
self
.
_host
+
self
.
_path
self
.
_params
=
{}
self
.
_json
=
{}
self
.
_data
=
{}
self
.
response
=
""
self
.
token
=
None
self
.
bookid
=
None
self
.
name
=
None
self
.
iplist
=
None
self
.
available
=
None
self
.
delay
=
None
self
.
api
=
UtilsRequest
()
def
get_response
(
self
):
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"token"
,
value
=
self
.
token
)
self
.
_headers
=
base
.
_json
base
=
ApiBase
()
base
.
dict_add_key
(
_key
=
"name"
,
value
=
self
.
name
)
base
.
dict_add_key
(
_key
=
"bookid"
,
value
=
self
.
bookid
)
base
.
dict_add_key
(
_key
=
"iplist"
,
value
=
self
.
iplist
)
base
.
dict_add_key
(
_key
=
"available"
,
value
=
self
.
available
)
base
.
dict_add_key
(
_key
=
"delay"
,
value
=
self
.
delay
)
self
.
_json
=
base
.
_json
self
.
response
=
self
.
api
.
post
(
url
=
self
.
_url
,
headers
=
self
.
_headers
,
json
=
self
.
_json
)
Work
Api/APP/Addressbook/addressbook_create
.py
→
Work
Case/APP/AddressBook/__init__
.py
View file @
4da6e023
File moved
WorkCase/APP/AddressBook/test_addressbook_create.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-12-09
from
__future__
import
division
from
WorkCase
import
CaseBase
from
WorkData.Zabbix.drules
import
DataDrules
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsDataBase
import
UtilsDataBase
from
WorkUtils.UtilsResponse
import
UtilsResponse
from
WorkApi.APP.Api.api_login
import
ApiLogin
from
WorkApi.APP.AddressBook.addressbook_create
import
AddressBookCreate
from
WorkData.Argus.members
import
DataMembers
from
WorkData.Argus.address_book
import
DataAddressBook
import
allure
@allure.feature
(
"测试模块:addressbook.create"
)
class
TestAddressBookCreate
(
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.0.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
.
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"
])
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
(
"调用接口: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
(
"更新表数据: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
(
"调用接口:addressbook.create"
)
def
addressbook_create
(
self
,
token
=
None
,
name
=
None
,
iplist
=
None
,
available
=
None
,
delay
=
None
):
api
=
AddressBookCreate
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
name
=
name
api
.
iplist
=
iplist
api
.
available
=
available
api
.
delay
=
delay
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
(
"连接数据库: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
,
name
,
available
):
data
=
UtilsResponse
()
.
get_data
(
response
=
response
)
sql
=
self
.
select_address_book
(
address_id
=
data
)
for
x
,
y
in
enumerate
(
sql
):
assert
y
.
name
==
name
assert
y
.
iplist
==
self
.
base_iplist
assert
y
.
available
==
available
assert
y
.
delay
==
"1h"
assert
x
==
0
sql_r
=
self
.
select_drule
(
y
.
ruleid
)
for
q
,
w
in
enumerate
(
sql_r
):
assert
y
.
name
==
w
.
name
assert
y
.
iplist
==
w
.
iprange
assert
y
.
available
==
w
.
status
assert
y
.
delay
==
w
.
delay
assert
x
==
0
assert
sql_r
!=
[]
@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.title
(
"addressbook.create:token未传"
)
@allure.story
(
"创建地址簿:token未传"
)
@allure.severity
(
"blocker"
)
def
test_case_01
(
self
):
self
.
get_base_token
()
response
=
self
.
addressbook_create
()
self
.
check_code
(
response
=
response
,
code
=
2001
)
self
.
check_msg
(
response
=
response
,
msg
=
"无token,请重新登录"
)
@allure.title
(
"addressbook.create:token的用户已删除"
)
@allure.story
(
"创建地址簿:token的用户已删除"
)
@allure.severity
(
"blocker"
)
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
.
addressbook_create
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2004
)
self
.
check_msg
(
response
=
response
,
msg
=
"用户不存在"
)
@allure.title
(
"addressbook.create:token的用户已禁用"
)
@allure.story
(
"创建地址簿:token的用户已禁用"
)
@allure.severity
(
"blocker"
)
def
test_case_03
(
self
):
self
.
get_base_token
()
self
.
update_members_status
(
members_id
=
self
.
base_id
,
value
=
CaseBase
()
.
status
[
"OFF"
])
response
=
self
.
addressbook_create
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2003
)
self
.
check_msg
(
response
=
response
,
msg
=
"账户已被禁用"
)
@allure.title
(
"addressbook.create:创建可用地址簿"
)
@allure.story
(
"创建地址簿:创建可用地址簿"
)
@allure.severity
(
"blocker"
)
def
test_case_04
(
self
):
self
.
get_base_token
()
name
=
self
.
base_name
+
"04"
response
=
self
.
addressbook_create
(
token
=
self
.
token
,
name
=
name
,
iplist
=
self
.
base_iplist
,
available
=
CaseBase
()
.
available
[
"ON"
],
delay
=
"1h"
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
response
=
response
,
name
=
name
,
available
=
CaseBase
()
.
available
[
"ON"
])
@allure.title
(
"addressbook.create:创建禁用地址簿"
)
@allure.story
(
"创建地址簿:创建禁用地址簿"
)
@allure.severity
(
"blocker"
)
def
test_case_05
(
self
):
self
.
get_base_token
()
name
=
self
.
base_name
+
"05"
response
=
self
.
addressbook_create
(
token
=
self
.
token
,
name
=
name
,
iplist
=
self
.
base_iplist
,
available
=
CaseBase
()
.
available
[
"OFF"
],
delay
=
"1h"
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
response
=
response
,
name
=
name
,
available
=
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 = TestAddressBookCreate()
# a.setup_class()
# a.test_case_04()
WorkCase/APP/AddressBook/test_addressbook_delete.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-12-09
from
__future__
import
division
from
WorkCase
import
CaseBase
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsDataBase
import
UtilsDataBase
from
WorkUtils.UtilsResponse
import
UtilsResponse
from
WorkApi.APP.Api.api_login
import
ApiLogin
from
WorkApi.APP.AddressBook.addressbook_create
import
AddressBookCreate
from
WorkApi.APP.AddressBook.addressbook_delete
import
AddressBookDelete
from
WorkData.Argus.members
import
DataMembers
from
WorkData.Argus.address_book
import
DataAddressBook
from
WorkData.Zabbix.drules
import
DataDrules
import
allure
@allure.feature
(
"测试模块:addressbook.delete"
)
class
TestAddressBookDelete
(
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.1.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
.
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"
])
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
(
"调用接口: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
(
"更新表数据: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
(
"调用接口:addressbook.create"
)
def
addressbook_create
(
self
,
token
=
None
,
name
=
None
,
iplist
=
None
,
available
=
None
,
delay
=
None
):
api
=
AddressBookCreate
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
name
=
name
api
.
iplist
=
iplist
api
.
available
=
available
api
.
delay
=
delay
api
.
get_response
()
return
api
.
response
@allure.step
(
"调用接口:addressbook.delete"
)
def
addressbook_delete
(
self
,
token
=
None
,
bookids
=
None
):
api
=
AddressBookDelete
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
bookids
=
bookids
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
(
"连接数据库: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
,
bookid
):
sql
=
self
.
select_address_book
(
address_id
=
bookid
)
assert
sql
==
[]
sql_r
=
self
.
select_drule
(
name
=
self
.
name
)
assert
sql_r
==
[]
@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
(
"创建测试数据"
)
def
case_create
(
self
,
num
,
available
):
self
.
name
=
self
.
base_name
+
num
response
=
self
.
addressbook_create
(
token
=
self
.
token
,
name
=
self
.
name
,
iplist
=
self
.
base_iplist
,
available
=
available
,
delay
=
"1h"
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
address_id
=
UtilsResponse
()
.
get_data
(
response
=
response
)
return
self
.
address_id
@allure.title
(
"addressbook.delete:token未传"
)
@allure.story
(
"删除地址簿:token未传"
)
@allure.severity
(
"blocker"
)
def
test_case_01
(
self
):
self
.
get_base_token
()
response
=
self
.
addressbook_delete
()
self
.
check_code
(
response
=
response
,
code
=
2001
)
self
.
check_msg
(
response
=
response
,
msg
=
"无token,请重新登录"
)
@allure.title
(
"addressbook.delete:token的用户已删除"
)
@allure.story
(
"删除地址簿:token的用户已删除"
)
@allure.severity
(
"blocker"
)
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
.
addressbook_delete
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2004
)
self
.
check_msg
(
response
=
response
,
msg
=
"用户不存在"
)
@allure.title
(
"addressbook.delete:token的用户已禁用"
)
@allure.story
(
"删除地址簿:token的用户已禁用"
)
@allure.severity
(
"blocker"
)
def
test_case_03
(
self
):
self
.
get_base_token
()
self
.
update_members_status
(
members_id
=
self
.
base_id
,
value
=
CaseBase
()
.
status
[
"OFF"
])
response
=
self
.
addressbook_delete
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2003
)
self
.
check_msg
(
response
=
response
,
msg
=
"账户已被禁用"
)
@allure.title
(
"addressbook.delete:删除一个"
)
@allure.story
(
"删除地址簿:删除一个"
)
@allure.severity
(
"blocker"
)
def
test_case_04
(
self
):
self
.
get_base_token
()
bookid_1
=
self
.
case_create
(
num
=
"04"
,
available
=
0
)
response
=
self
.
addressbook_delete
(
token
=
self
.
token
,
bookids
=
[
bookid_1
])
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
bookid
=
bookid_1
)
@allure.title
(
"addressbook.delete:删除多个"
)
@allure.story
(
"删除地址簿:删除多个"
)
def
test_case_05
(
self
):
self
.
get_base_token
()
bookid_1
=
self
.
case_create
(
num
=
"051"
,
available
=
0
)
bookid_2
=
self
.
case_create
(
num
=
"052"
,
available
=
0
)
bookid_3
=
self
.
case_create
(
num
=
"053"
,
available
=
0
)
response
=
self
.
addressbook_delete
(
token
=
self
.
token
,
bookids
=
[
bookid_1
,
bookid_2
,
bookid_3
])
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
bookid
=
bookid_1
)
self
.
check_select
(
bookid
=
bookid_2
)
self
.
check_select
(
bookid
=
bookid_3
)
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 = TestAddressBookDelete()
# a.setup_class()
# a.test_case_06()
WorkCase/APP/AddressBook/test_addressbook_disabled.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-12-09
from
__future__
import
division
from
WorkCase
import
CaseBase
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsDataBase
import
UtilsDataBase
from
WorkUtils.UtilsResponse
import
UtilsResponse
from
WorkApi.APP.Api.api_login
import
ApiLogin
from
WorkApi.APP.AddressBook.addressbook_create
import
AddressBookCreate
from
WorkApi.APP.AddressBook.addressbook_disabled
import
AddressBookDisabled
from
WorkData.Argus.members
import
DataMembers
from
WorkData.Argus.address_book
import
DataAddressBook
from
WorkData.Zabbix.drules
import
DataDrules
import
allure
@allure.feature
(
"测试模块:addressbook.disabled"
)
class
TestAddressBookDisabled
(
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.6.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
.
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"
])
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
(
"调用接口: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
(
"更新表数据: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
(
"调用接口:addressbook.create"
)
def
addressbook_create
(
self
,
token
=
None
,
name
=
None
,
iplist
=
None
,
available
=
None
,
delay
=
None
):
api
=
AddressBookCreate
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
name
=
name
api
.
iplist
=
iplist
api
.
available
=
available
api
.
delay
=
delay
api
.
get_response
()
return
api
.
response
@allure.step
(
"调用接口:addressbook.disable"
)
def
addressbook_disabled
(
self
,
token
=
None
,
bookids
=
None
):
api
=
AddressBookDisabled
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
bookids
=
bookids
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
(
"连接数据库: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
,
bookid
,
available
):
sql
=
self
.
select_address_book
(
address_id
=
bookid
)
for
x
,
y
in
enumerate
(
sql
):
# assert y.name == self.name
assert
y
.
iplist
==
self
.
base_iplist
assert
y
.
available
==
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.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
(
"创建测试数据"
)
def
case_create
(
self
,
num
,
available
):
self
.
name
=
self
.
base_name
+
num
response
=
self
.
addressbook_create
(
token
=
self
.
token
,
name
=
self
.
name
,
iplist
=
self
.
base_iplist
,
available
=
available
,
delay
=
"1h"
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
address_id
=
UtilsResponse
()
.
get_data
(
response
=
response
)
return
self
.
address_id
@allure.title
(
"addressbook.disabled:token未传"
)
@allure.story
(
"禁用地址簿:token未传"
)
@allure.severity
(
"blocker"
)
def
test_case_01
(
self
):
self
.
get_base_token
()
response
=
self
.
addressbook_disabled
()
self
.
check_code
(
response
=
response
,
code
=
2001
)
self
.
check_msg
(
response
=
response
,
msg
=
"无token,请重新登录"
)
@allure.title
(
"addressbook.disabled:token的用户已删除"
)
@allure.story
(
"禁用地址簿:token的用户已删除"
)
@allure.severity
(
"blocker"
)
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
.
addressbook_disabled
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2004
)
self
.
check_msg
(
response
=
response
,
msg
=
"用户不存在"
)
@allure.title
(
"addressbook.disabled:token的用户已禁用"
)
@allure.story
(
"禁用地址簿:token的用户已禁用"
)
@allure.severity
(
"blocker"
)
def
test_case_03
(
self
):
self
.
get_base_token
()
self
.
update_members_status
(
members_id
=
self
.
base_id
,
value
=
CaseBase
()
.
status
[
"OFF"
])
response
=
self
.
addressbook_disabled
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2003
)
self
.
check_msg
(
response
=
response
,
msg
=
"账户已被禁用"
)
@allure.title
(
"addressbook.disabled:禁用一个"
)
@allure.story
(
"禁用地址簿:禁用一个"
)
@allure.severity
(
"blocker"
)
def
test_case_04
(
self
):
self
.
get_base_token
()
bookid_1
=
self
.
case_create
(
num
=
"04"
,
available
=
0
)
response
=
self
.
addressbook_disabled
(
token
=
self
.
token
,
bookids
=
[
bookid_1
])
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
bookid
=
bookid_1
,
available
=
1
)
@allure.title
(
"addressbook.disabled:禁用多个"
)
@allure.story
(
"禁用地址簿:禁用多个"
)
def
test_case_05
(
self
):
self
.
get_base_token
()
bookid_1
=
self
.
case_create
(
num
=
"051"
,
available
=
0
)
bookid_2
=
self
.
case_create
(
num
=
"052"
,
available
=
0
)
bookid_3
=
self
.
case_create
(
num
=
"053"
,
available
=
0
)
response
=
self
.
addressbook_disabled
(
token
=
self
.
token
,
bookids
=
[
bookid_1
,
bookid_2
,
bookid_3
])
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
bookid
=
bookid_1
,
available
=
1
)
self
.
check_select
(
bookid
=
bookid_2
,
available
=
1
)
self
.
check_select
(
bookid
=
bookid_3
,
available
=
1
)
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 = TestAddressBookDisabled()
# a.setup_class()
# a.test_case_06()
WorkCase/APP/AddressBook/test_addressbook_enabled.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-12-09
from
__future__
import
division
from
WorkCase
import
CaseBase
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsDataBase
import
UtilsDataBase
from
WorkUtils.UtilsResponse
import
UtilsResponse
from
WorkApi.APP.Api.api_login
import
ApiLogin
from
WorkApi.APP.AddressBook.addressbook_create
import
AddressBookCreate
from
WorkApi.APP.AddressBook.addressbook_enabled
import
AddressBookEnabled
from
WorkData.Argus.members
import
DataMembers
from
WorkData.Argus.address_book
import
DataAddressBook
from
WorkData.Zabbix.drules
import
DataDrules
import
allure
@allure.feature
(
"测试模块:addressbook.enabled"
)
class
TestAddressBookEnable
(
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
.
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"
])
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
(
"调用接口: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
(
"更新表数据: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
(
"调用接口:addressbook.create"
)
def
addressbook_create
(
self
,
token
=
None
,
name
=
None
,
iplist
=
None
,
available
=
None
,
delay
=
None
):
api
=
AddressBookCreate
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
name
=
name
api
.
iplist
=
iplist
api
.
available
=
available
api
.
delay
=
delay
api
.
get_response
()
return
api
.
response
@allure.step
(
"调用接口:addressbook.enable"
)
def
addressbook_enabled
(
self
,
token
=
None
,
bookids
=
None
):
api
=
AddressBookEnabled
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
bookids
=
bookids
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
(
"连接数据库: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
,
bookid
,
available
):
sql
=
self
.
select_address_book
(
address_id
=
bookid
)
for
x
,
y
in
enumerate
(
sql
):
# assert y.name == self.name
assert
y
.
iplist
==
self
.
base_iplist
assert
y
.
available
==
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.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
(
"创建测试数据"
)
def
case_create
(
self
,
num
,
available
):
self
.
name
=
self
.
base_name
+
num
response
=
self
.
addressbook_create
(
token
=
self
.
token
,
name
=
self
.
name
,
iplist
=
self
.
base_iplist
,
available
=
available
,
delay
=
"1h"
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
address_id
=
UtilsResponse
()
.
get_data
(
response
=
response
)
return
self
.
address_id
@allure.title
(
"addressbook.enabled:token未传"
)
@allure.story
(
"启用地址簿:token未传"
)
@allure.severity
(
"blocker"
)
def
test_case_01
(
self
):
self
.
get_base_token
()
response
=
self
.
addressbook_enabled
()
self
.
check_code
(
response
=
response
,
code
=
2001
)
self
.
check_msg
(
response
=
response
,
msg
=
"无token,请重新登录"
)
@allure.title
(
"addressbook.enabled:token的用户已删除"
)
@allure.story
(
"启用地址簿:token的用户已删除"
)
@allure.severity
(
"blocker"
)
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
.
addressbook_enabled
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2004
)
self
.
check_msg
(
response
=
response
,
msg
=
"用户不存在"
)
@allure.title
(
"addressbook.enabled:token的用户已禁用"
)
@allure.story
(
"启用地址簿:token的用户已禁用"
)
@allure.severity
(
"blocker"
)
def
test_case_03
(
self
):
self
.
get_base_token
()
self
.
update_members_status
(
members_id
=
self
.
base_id
,
value
=
CaseBase
()
.
status
[
"OFF"
])
response
=
self
.
addressbook_enabled
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2003
)
self
.
check_msg
(
response
=
response
,
msg
=
"账户已被禁用"
)
@allure.title
(
"addressbook.enabled:启用一个"
)
@allure.story
(
"启用地址簿:启用一个"
)
@allure.severity
(
"blocker"
)
def
test_case_04
(
self
):
self
.
get_base_token
()
bookid_1
=
self
.
case_create
(
num
=
"04"
,
available
=
1
)
response
=
self
.
addressbook_enabled
(
token
=
self
.
token
,
bookids
=
[
bookid_1
])
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
bookid
=
bookid_1
,
available
=
0
)
@allure.title
(
"addressbook.enabled:启用多个"
)
@allure.story
(
"启用地址簿:启用多个"
)
def
test_case_05
(
self
):
self
.
get_base_token
()
bookid_1
=
self
.
case_create
(
num
=
"051"
,
available
=
1
)
bookid_2
=
self
.
case_create
(
num
=
"052"
,
available
=
1
)
bookid_3
=
self
.
case_create
(
num
=
"053"
,
available
=
1
)
response
=
self
.
addressbook_enabled
(
token
=
self
.
token
,
bookids
=
[
bookid_1
,
bookid_2
,
bookid_3
])
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
bookid
=
bookid_1
,
available
=
0
)
self
.
check_select
(
bookid
=
bookid_2
,
available
=
0
)
self
.
check_select
(
bookid
=
bookid_3
,
available
=
0
)
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 = TestAddressBookEnable()
# a.setup_class()
# a.test_case_06()
WorkCase/APP/AddressBook/test_addressbook_get.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-12-09
from
__future__
import
division
from
WorkCase
import
CaseBase
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsDataBase
import
UtilsDataBase
from
WorkUtils.UtilsResponse
import
UtilsResponse
from
WorkApi.APP.Api.api_login
import
ApiLogin
from
WorkApi.APP.AddressBook.addressbook_create
import
AddressBookCreate
from
WorkApi.APP.AddressBook.addressbook_get
import
AddressBookGet
from
WorkData.Argus.members
import
DataMembers
from
WorkData.Argus.address_book
import
DataAddressBook
from
WorkData.Zabbix.drules
import
DataDrules
import
allure
@allure.feature
(
"测试模块:addressbook.get"
)
class
TestAddressBookGet
(
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.1.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
.
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"
])
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
(
"调用接口: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
(
"更新表数据: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
(
"调用接口:addressbook.create"
)
def
addressbook_create
(
self
,
token
=
None
,
name
=
None
,
iplist
=
None
,
available
=
None
,
delay
=
None
):
api
=
AddressBookCreate
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
name
=
name
api
.
iplist
=
iplist
api
.
available
=
available
api
.
delay
=
delay
api
.
get_response
()
return
api
.
response
@allure.step
(
"调用接口:addressbook.get"
)
def
addressbook_get
(
self
,
token
=
None
,
name
=
None
,
available
=
None
):
api
=
AddressBookGet
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
name
=
name
api
.
available
=
available
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
(
"连接数据库: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.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
(
"创建测试数据"
)
def
case_create
(
self
,
num
,
available
):
self
.
name
=
self
.
base_name
+
num
response
=
self
.
addressbook_create
(
token
=
self
.
token
,
name
=
self
.
name
,
iplist
=
self
.
base_iplist
,
available
=
available
,
delay
=
"1h"
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
address_id
=
UtilsResponse
()
.
get_data
(
response
=
response
)
return
self
.
address_id
@allure.title
(
"addressbook.get:token未传"
)
@allure.story
(
"查询地址簿:token未传"
)
@allure.severity
(
"blocker"
)
def
test_case_01
(
self
):
self
.
get_base_token
()
response
=
self
.
addressbook_get
()
self
.
check_code
(
response
=
response
,
code
=
2001
)
self
.
check_msg
(
response
=
response
,
msg
=
"无token,请重新登录"
)
@allure.title
(
"addressbook.get:token的用户已删除"
)
@allure.story
(
"查询地址簿:token的用户已删除"
)
@allure.severity
(
"blocker"
)
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
.
addressbook_get
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2004
)
self
.
check_msg
(
response
=
response
,
msg
=
"用户不存在"
)
@allure.title
(
"addressbook.get:token的用户已禁用"
)
@allure.story
(
"查询地址簿:token的用户已禁用"
)
@allure.severity
(
"blocker"
)
def
test_case_03
(
self
):
self
.
get_base_token
()
self
.
update_members_status
(
members_id
=
self
.
base_id
,
value
=
CaseBase
()
.
status
[
"OFF"
])
response
=
self
.
addressbook_get
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2003
)
self
.
check_msg
(
response
=
response
,
msg
=
"账户已被禁用"
)
@allure.title
(
"addressbook.get:无参数调用"
)
@allure.story
(
"查询地址簿:无参数调用"
)
@allure.severity
(
"blocker"
)
def
test_case_04
(
self
):
self
.
get_base_token
()
self
.
case_create
(
num
=
"04"
,
available
=
0
)
response
=
self
.
addressbook_get
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
0
)
@allure.title
(
"addressbook.get:name模糊查询"
)
@allure.story
(
"查询地址簿:name模糊查询"
)
def
test_case_05
(
self
):
self
.
get_base_token
()
self
.
case_create
(
num
=
"05"
,
available
=
0
)
response
=
self
.
addressbook_get
(
token
=
self
.
token
,
name
=
self
.
base_name
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
response
=
response
)
@allure.title
(
"addressbook.get:name精确查询"
)
@allure.story
(
"查询地址簿:name精确查询"
)
def
test_case_06
(
self
):
self
.
get_base_token
()
self
.
case_create
(
num
=
"06"
,
available
=
0
)
response
=
self
.
addressbook_get
(
token
=
self
.
token
,
name
=
self
.
name
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
response
=
response
)
assert
UtilsResponse
()
.
get_data
(
response
=
response
)[
"list"
][
0
][
"id"
]
==
self
.
address_id
@allure.title
(
"addressbook.get:available=0查询"
)
@allure.story
(
"查询地址簿:available=0查询"
)
def
test_case_07
(
self
):
self
.
get_base_token
()
self
.
case_create
(
num
=
"07"
,
available
=
0
)
response
=
self
.
addressbook_get
(
token
=
self
.
token
,
name
=
self
.
name
,
available
=
0
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
response
=
response
)
assert
UtilsResponse
()
.
get_data
(
response
=
response
)[
"list"
][
0
][
"id"
]
==
self
.
address_id
assert
UtilsResponse
()
.
get_data
(
response
=
response
)[
"list"
][
0
][
"available"
]
==
0
@allure.title
(
"addressbook.get:available=1查询"
)
@allure.story
(
"查询地址簿:available=1查询"
)
def
test_case_08
(
self
):
self
.
get_base_token
()
self
.
case_create
(
num
=
"08"
,
available
=
1
)
response
=
self
.
addressbook_get
(
token
=
self
.
token
,
name
=
self
.
name
,
available
=
1
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
response
=
response
)
assert
UtilsResponse
()
.
get_data
(
response
=
response
)[
"list"
][
0
][
"id"
]
==
self
.
address_id
assert
UtilsResponse
()
.
get_data
(
response
=
response
)[
"list"
][
0
][
"available"
]
==
1
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 = TestAddressBookGet()
# a.setup_class()
# a.test_case_06()
WorkCase/APP/AddressBook/test_addressbook_update.py
0 → 100644
View file @
4da6e023
# -*- coding: utf-8 -*-
# 测试用例
# 作者: 陈磊
# 时间: 2019-12-09
from
__future__
import
division
from
WorkCase
import
CaseBase
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsDataBase
import
UtilsDataBase
from
WorkUtils.UtilsResponse
import
UtilsResponse
from
WorkApi.APP.Api.api_login
import
ApiLogin
from
WorkApi.APP.AddressBook.addressbook_create
import
AddressBookCreate
from
WorkApi.APP.AddressBook.addressbook_update
import
AddressBookUpdate
from
WorkData.Argus.members
import
DataMembers
from
WorkData.Argus.address_book
import
DataAddressBook
from
WorkData.Zabbix.drules
import
DataDrules
import
allure
@allure.feature
(
"测试模块:addressbook.update"
)
class
TestAddressBookUpdate
(
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.3.1-254"
base_update_iplist
=
"192.168.4.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
.
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"
])
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
(
"调用接口: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
(
"更新表数据: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
(
"调用接口:addressbook.create"
)
def
addressbook_create
(
self
,
token
=
None
,
name
=
None
,
iplist
=
None
,
available
=
None
,
delay
=
None
):
api
=
AddressBookCreate
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
name
=
name
api
.
iplist
=
iplist
api
.
available
=
available
api
.
delay
=
delay
api
.
get_response
()
return
api
.
response
@allure.step
(
"调用接口:addressbook.update"
)
def
addressbook_update
(
self
,
token
=
None
,
bookid
=
None
,
name
=
None
,
iplist
=
None
,
available
=
None
):
api
=
AddressBookUpdate
(
_host
=
self
.
host
)
api
.
token
=
token
api
.
bookid
=
bookid
api
.
name
=
name
api
.
iplist
=
iplist
api
.
available
=
available
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
(
"连接数据库: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
,
address_id
,
available
):
sql
=
self
.
select_address_book
(
address_id
=
address_id
)
for
x
,
y
in
enumerate
(
sql
):
assert
y
.
name
==
self
.
name
+
"修改"
assert
y
.
iplist
==
self
.
base_update_iplist
assert
y
.
available
==
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.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
(
"创建测试数据"
)
def
case_create
(
self
,
num
,
available
):
self
.
name
=
self
.
base_name
+
num
response
=
self
.
addressbook_create
(
token
=
self
.
token
,
name
=
self
.
name
,
iplist
=
self
.
base_iplist
,
available
=
available
,
delay
=
"1h"
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
address_id
=
UtilsResponse
()
.
get_data
(
response
=
response
)
return
self
.
address_id
@allure.title
(
"addressbook.update:token未传"
)
@allure.story
(
"更新地址簿:token未传"
)
@allure.severity
(
"blocker"
)
def
test_case_01
(
self
):
self
.
get_base_token
()
response
=
self
.
addressbook_update
()
self
.
check_code
(
response
=
response
,
code
=
2001
)
self
.
check_msg
(
response
=
response
,
msg
=
"无token,请重新登录"
)
@allure.title
(
"addressbook.update:token的用户已删除"
)
@allure.story
(
"更新地址簿:token的用户已删除"
)
@allure.severity
(
"blocker"
)
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
.
addressbook_update
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2004
)
self
.
check_msg
(
response
=
response
,
msg
=
"用户不存在"
)
@allure.title
(
"addressbook.update:token的用户已禁用"
)
@allure.story
(
"更新地址簿:token的用户已禁用"
)
@allure.severity
(
"blocker"
)
def
test_case_03
(
self
):
self
.
get_base_token
()
self
.
update_members_status
(
members_id
=
self
.
base_id
,
value
=
CaseBase
()
.
status
[
"OFF"
])
response
=
self
.
addressbook_update
(
token
=
self
.
token
)
self
.
check_code
(
response
=
response
,
code
=
2003
)
self
.
check_msg
(
response
=
response
,
msg
=
"账户已被禁用"
)
@allure.title
(
"addressbook.update:修改必填字段"
)
@allure.story
(
"更新地址簿:修改必填字段"
)
@allure.severity
(
"blocker"
)
def
test_case_04
(
self
):
self
.
get_base_token
()
self
.
case_create
(
num
=
"04"
,
available
=
0
)
response
=
self
.
addressbook_update
(
token
=
self
.
token
,
bookid
=
self
.
address_id
,
name
=
self
.
name
+
"修改"
,
iplist
=
self
.
base_update_iplist
,)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
address_id
=
self
.
address_id
,
available
=
0
)
@allure.title
(
"addressbook.update:修改available从0=1"
)
@allure.story
(
"更新地址簿:name模糊查询"
)
def
test_case_05
(
self
):
self
.
get_base_token
()
self
.
case_create
(
num
=
"05"
,
available
=
0
)
response
=
self
.
addressbook_update
(
token
=
self
.
token
,
bookid
=
self
.
address_id
,
name
=
self
.
name
+
"修改"
,
iplist
=
self
.
base_update_iplist
,
available
=
1
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
address_id
=
self
.
address_id
,
available
=
1
)
@allure.title
(
"addressbook.update:修改available从1=0"
)
@allure.story
(
"更新地址簿:name精确查询"
)
def
test_case_06
(
self
):
self
.
get_base_token
()
self
.
case_create
(
num
=
"06"
,
available
=
1
)
response
=
self
.
addressbook_update
(
token
=
self
.
token
,
bookid
=
self
.
address_id
,
name
=
self
.
name
+
"修改"
,
iplist
=
self
.
base_update_iplist
,
available
=
0
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
address_id
=
self
.
address_id
,
available
=
0
)
@allure.title
(
"addressbook.update:修改available不变"
)
@allure.story
(
"更新地址簿:修改available不变"
)
def
test_case_07
(
self
):
self
.
get_base_token
()
self
.
case_create
(
num
=
"07"
,
available
=
1
)
response
=
self
.
addressbook_update
(
token
=
self
.
token
,
bookid
=
self
.
address_id
,
name
=
self
.
name
+
"修改"
,
iplist
=
self
.
base_update_iplist
)
self
.
check_code
(
response
=
response
,
code
=
0
)
self
.
check_select
(
address_id
=
self
.
address_id
,
available
=
1
)
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 = TestAddressBookUpdate()
# a.setup_class()
# a.test_case_04()
WorkCase/__init__.py
View file @
4da6e023
...
@@ -51,3 +51,8 @@ class CaseBase:
...
@@ -51,3 +51,8 @@ class CaseBase:
"ON"
:
1
,
"ON"
:
1
,
"OFF"
:
0
"OFF"
:
0
}
}
self
.
available
=
{
"ON"
:
1
,
"OFF"
:
0
}
WorkData/Argus/address_book.py
0 → 100644
View file @
4da6e023
# -*- coding: utf_8 -*-
# 表名: address_book
# 作者: 陈磊
# 时间: 2019-12-09
from
sqlalchemy.ext.declarative
import
declarative_base
from
sqlalchemy
import
Column
,
Integer
,
VARCHAR
,
SMALLINT
,
DATETIME
,
DECIMAL
,
BigInteger
,
FLOAT
,
NUMERIC
,
TEXT
from
sqlalchemy.orm.exc
import
MultipleResultsFound
,
NoResultFound
from
sqlalchemy
import
or_
from
WorkUtils.UtilsLog
import
UtilsLog
from
WorkUtils.UtilsDataBase
import
UtilsDataBase
import
time
Base
=
declarative_base
()
class
AddressBook
(
Base
):
"""
地址簿
"""
__tablename__
=
"address_book"
id
=
Column
(
Integer
,
primary_key
=
True
)
name
=
Column
(
VARCHAR
(
255
),
comment
=
"名称"
)
iplist
=
Column
(
VARCHAR
(
255
),
comment
=
"ip范围"
)
available
=
Column
(
Integer
,
comment
=
"可用性 1-可用0-禁用"
)
ruleid
=
Column
(
Integer
,
comment
=
"规则id"
)
delay
=
Column
(
VARCHAR
(
255
),
comment
=
"间隔时间"
)
class
DataAddressBook
(
object
):
def
__init__
(
self
):
self
.
log
=
UtilsLog
()
self
.
log
.
info
(
self
.
__class__
)
self
.
table
=
AddressBook
def
select_all_from_allKeys
(
self
,
session
,
_id
=
None
,
name
=
None
):
"""
:param session: 指针
:param _id:
:param name:
:return: 查询结果
"""
self
.
log
.
debug
(
"查询数据库:"
)
try
:
base
=
UtilsDataBase
()
base
.
add_param
(
_key
=
"id"
,
value
=
_id
)
base
.
add_param
(
_key
=
"name"
,
value
=
name
)
sql_rep
=
session
.
query
(
self
.
table
)
.
filter_by
(
**
base
.
param
)
.
all
()
self
.
log
.
debug
(
sql_rep
)
session
.
close
()
return
sql_rep
except
UtilsDataBase
()
.
errors
as
error
:
self
.
log
.
error
(
"异常:"
)
self
.
log
.
error
(
error
)
session
.
close
()
return
error
def
delete_like_name
(
self
,
session
,
name
):
"""
:param session: 指针
:param name:
:return:
"""
self
.
log
.
debug
(
"查询数据库:"
)
try
:
self
.
log
.
debug
(
"删除相关测试数据"
)
session
.
query
(
self
.
table
)
.
filter
(
self
.
table
.
name
.
like
(
str
(
name
)
+
"
%
"
))
.
delete
(
synchronize_session
=
False
)
# session.delete(sql)
session
.
commit
()
session
.
close
()
self
.
log
.
debug
(
"删除成功"
)
return
True
except
UtilsDataBase
()
.
errors
as
error
:
self
.
log
.
error
(
"异常:"
)
self
.
log
.
error
(
error
)
session
.
close
()
return
error
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment