Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
InterfaceAutoTest
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
TestAuto
InterfaceAutoTest
Commits
b827d88c
Commit
b827d88c
authored
Oct 26, 2021
by
xujianxue
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【企业云平台】新增控制台测试用例
parent
1bf2a057
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
320 additions
and
5 deletions
+320
-5
test_case/bmy/test_console.py
+320
-5
test_case_data/bmy/bmy_case.xlsx
+0
-0
No files found.
test_case/bmy/test_console.py
View file @
b827d88c
import
pytest
,
allure
,
xlrd
,
requests
,
os
from
config
import
BmyConfig
from
common.utils.getExcelData
import
get_excelData
from
common.utils.getExcelData
import
get_excelData
from
common.tools
import
request_main
from
service.login
import
BMY
from
common.db
import
RedisString
,
MYSQL
from
config
import
BaseConfig
@pytest.fixture
(
scope
=
'function'
)
# 初始化
# 添加子成员时获取验证码
def
get_code
():
# data = {"signName": "斑马企业云", "templateCode": "SMS_208720201", "timeOut": "100"}
json
=
{
"mobile"
:
"15100010011"
,
"signName"
:
"斑马企业云"
,
"templateCode"
:
"SMS_208720201"
,
"timeOut"
:
"100"
}
requests
.
post
(
f
"{BmyConfig().test_host}/website/sms/verify-code/send"
,
json
=
json
)
num
=
RedisString
(
3
)
.
get
(
f
"SMS:15100010011:SMS_208720201"
)
num
=
str
(
num
)[
-
7
:
-
1
]
return
num
#添加子成员后解除绑定关系
@pytest.fixture
(
scope
=
'function'
)
# 初始化
def
delete_member
():
yield
mysql
=
MYSQL
(
*
BaseConfig
.
test_mysql
)
mysql
.
ExecuNonQuery
(
"update hzcp.user_base_info set group_code = null, `role` = 0 WHERE mobile IN ('15100010011')"
)
print
(
"***********"
)
#购买应用后删除应用购买信息
@pytest.fixture
(
scope
=
'function'
)
def
delete_applicationbuy
():
yield
mysql
=
MYSQL
(
*
BaseConfig
.
test_mysql
)
mysql
.
ExecuNonQuery
(
"DELETE FROM hzcp.user_application WHERE user_id IN (1390853586517544961) AND application_id IN (1401813857936723970);"
)
mysql
.
ExecuNonQuery
(
"DELETE FROM hzcp.application_open_apply WHERE contact_id IN (1390853586517544961) AND application_id IN (1401813857936723970);"
)
print
(
"******delete_applicationbuy*****"
)
# @allure.epic("控制台111")
@allure.feature
(
"控制台"
)
class
Test_console
:
#引用测试用例表单
workBook
=
xlrd
.
open_workbook
(
f
'{BmyConfig.root_path}/test_case_data/bmy/bmy_case.xlsx'
)
#类初始化登录账户
def
setup_class
(
self
):
Headers
=
{
"Content-Type"
:
"application/json"
}
self
.
headers1
=
Headers
indata
=
{
"username"
:
"19900010005"
,
"password"
:
"A123456"
,
"Register-Origin"
:
"yun"
}
res
=
BMY
()
.
bmy_login
(
indata
)
self
.
headers1
[
'Authorization'
]
=
res
print
(
"----------"
,
self
.
headers1
)
"""接口1"""
...
...
@@ -23,14 +72,203 @@ class Test_console:
res
=
request_main
(
url
,
headers
,
method
,
data
)
# print("-------------------",res)
allure
.
attach
(
"{0}"
.
format
(
res
),
"用例结果"
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
"""接口2"""
@allure.story
(
"控制台的应用中心"
)
# 接口
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'MyApplicationCenter'
))
# [{},{},{}]
def
test_myapplicationcenter
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
),
"用例结果"
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
"""接口3"""
# @pytest.mark.aaaa
@allure.story
(
"应用中心"
)
# 接口
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'CategoryList'
))
# [{},{},{}]
def
test_categorylist
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
other_expected_data
=
inData
[
'otherExpectData'
]
if
inData
[
'frontCondition'
]
==
''
:
#如果Excel中前置条件项不为空,则引用指定的headers1
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
),
"用例结果"
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
else
:
res
=
request_main
(
url
,
self
.
headers1
,
method
,
data
,
has_token
=
True
)
allure
.
attach
(
"{0}"
.
format
(
res
),
"用例结果"
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
assert
res
[
'data'
]
==
other_expected_data
[
'data'
]
#assert res['data'][0]['applications'] == None
"""接口4"""
# @pytest.mark.aaaa
@allure.story
(
"应用中心"
)
# 接口
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'HotsellList'
))
# [{},{},{}]
def
test_hotselllist
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
other_expected_data
=
inData
[
'otherExpectData'
]
if
inData
[
'frontCondition'
]
==
''
:
# 如果Excel中前置条件项不为空,则引用指定的headers1
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
),
"用例结果"
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
else
:
res
=
request_main
(
url
,
self
.
headers1
,
method
,
data
,
has_token
=
True
)
allure
.
attach
(
"{0}"
.
format
(
res
),
"用例结果"
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
assert
res
[
'data'
]
==
other_expected_data
[
'data'
]
# @pytest.mark.aaaa
@allure.story
(
"应用中心"
)
# 接口
@allure.title
(
"查看应用中心"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'ApplicationCenter'
))
# [{},{},{}]
def
test_applicationcenter
(
self
,
inData
):
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'HotaffairsList'
))
# [{},{},{}]
def
test_hotaffairslist
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
other_expected_data
=
inData
[
'otherExpectData'
]
if
inData
[
'frontCondition'
]
==
''
:
# 如果Excel中前置条件项不为空,则引用指定的headers1
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
),
"用例结果"
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
else
:
res
=
request_main
(
url
,
self
.
headers1
,
method
,
data
,
has_token
=
True
)
allure
.
attach
(
"{0}"
.
format
(
res
),
"用例结果"
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
assert
res
[
'data'
]
==
other_expected_data
[
'data'
]
"""系统消息"""
@allure.story
(
"系统消息"
)
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'Message'
))
def
test_message
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
),
"用例结果"
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
"""系统消息已读"""
@allure.story
(
"系统消息"
)
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'MessageMarkread'
))
def
test_messagemarkread
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
),
"用例结果"
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
"""企业信息"""
@allure.story
(
"企业信息"
)
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'Companyinfo'
))
def
test_companyinfo
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
,
"用例结果"
))
assert
res
[
'code'
]
==
expectData
[
'code'
]
"""成员管理列表"""
# @pytest.mark.aaaa
@allure.story
(
"成员管理"
)
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'Member'
))
def
test_member
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
,
"用例结果"
))
assert
res
[
'code'
]
==
expectData
[
'code'
]
@pytest.mark.usefixtures
(
"delete_member"
)
# @pytest.mark.aaaa
@allure.story
(
"成员管理"
)
#添加成员
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'MemberAdd'
))
def
test_memberadd
(
self
,
inData
,
get_code
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
# 若参数读出为验证码543340,则修改为正确的
if
data
[
'verificationCode'
]
==
"543340"
:
data
[
'verificationCode'
]
=
get_code
else
:
pass
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
,
"用例结果"
))
assert
res
[
'code'
]
==
expectData
[
'code'
]
# @pytest.mark.aaaa
@allure.story
(
"成员管理"
)
@allure.title
(
"{inData[testPoint]}"
)
#编辑成员
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'MemberUpdate'
))
def
test_memberUpdata
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
,
"用例结果"
))
assert
res
[
'code'
]
==
expectData
[
'code'
]
# @pytest.mark.aaaa
@allure.story
(
"成员管理"
)
#禁用成员、解除绑定关系
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'MemberUpdateBaseinfo'
))
def
test_memberUpdatabaseinfo
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
...
...
@@ -38,16 +276,93 @@ class Test_console:
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
,
"用例结果"
))
assert
res
[
'code'
]
==
expectData
[
'code'
]
# @pytest.mark.aaaa
@allure.story
(
"访问日志"
)
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'Webvisit'
))
def
test_webvisit
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
,
"用例结果"
))
assert
res
[
'code'
]
==
expectData
[
'code'
]
# @pytest.mark.aaaa
@allure.story
(
"访问日志"
)
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'webVisitCount'
))
def
test_webvisitcount
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
,
"用例结果"
))
assert
res
[
'code'
]
==
expectData
[
'code'
]
# @pytest.mark.aaaa
@allure.story
(
"获取应用详情"
)
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'ApplicationDetail'
))
def
test_applicationDetail
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
,
"用例结果"
))
assert
res
[
'code'
]
==
expectData
[
'code'
]
@pytest.mark.aaaa
@allure.story
(
"购买应用 "
)
@pytest.mark.usefixtures
(
"delete_applicationbuy"
)
@allure.title
(
"{inData[testPoint]}"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
'控制台'
,
'ApplicationBuy'
))
def
test_applicationBuy
(
self
,
inData
):
url
=
f
"{BmyConfig().test_host}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
testPoint
=
inData
[
'testPoint'
]
if
testPoint
.
find
(
"重复"
):
res
=
request_main
(
url
,
headers
,
method
,
data
)
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
,
"用例结果"
))
assert
res
[
'code'
]
==
expectData
[
'code'
]
else
:
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
"{0}"
.
format
(
res
,
"用例结果"
))
assert
res
[
'code'
]
==
expectData
[
'code'
]
if
__name__
==
'__main__'
:
for
one
in
os
.
listdir
(
'../../report/tmp'
):
# 列出对应文件夹的数据
if
'json'
in
one
:
os
.
remove
(
f
'../../report/tmp/{one}'
)
pytest
.
main
([
'test_console.py'
,
'-s'
,
'--alluredir'
,
'../../report/tmp'
])
# pytest.main(['test_console.py', '-s', '--alluredir', '../../report/tmp'])
pytest
.
main
([
'test_console.py'
,
'-s'
,
'-m'
,
'aaaa'
,
'--alluredir'
,
'../../report/tmp'
])
# # 启动默认浏览器打开报告
os
.
system
(
'allure serve ../../report/tmp'
)
# json = {"mobile":"15100010011","signName": "斑马企业云", "templateCode": "SMS_208720201", "timeOut": "100"}
# res = requests.post(f"{BmyConfig().test_host}/website/sms/verify-code/send", json=json)
# print("----------", res.json())
# num = RedisString(3).get(f"SMS:15100010011:SMS_208720201")
# num = str(num)[-7:-1]
# print("-$$$$$$$$$$", num)
test_case_data/bmy/bmy_case.xlsx
View file @
b827d88c
No preview for this file type
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