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
52966db2
Commit
52966db2
authored
Aug 25, 2021
by
hanxiaojuan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://10.197.236.199:8001/TestAuto/InterfaceAutoTest
parents
a252d3ff
d880c008
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
236 additions
and
54 deletions
+236
-54
common/db.py
+3
-1
common/utils/dingTalk.py
+12
-8
config.py
+9
-4
test_case/safe_transportation/jgd/test_riskManagement.py
+212
-41
test_case_data/safe_transportation/jgd_riskCase.xlsx
+0
-0
No files found.
common/db.py
View file @
52966db2
...
...
@@ -96,7 +96,9 @@ if __name__ == '__main__':
mysql_config
=
(
"10.197.236.190"
,
3306
,
"root"
,
"123456"
,
""
)
# mysql = MYSQL(host="10.197.236.190", port=3306, user="root", pwd="123456", db="edl_private")
mysql
=
MYSQL
(
*
mysql_config
)
info
=
mysql
.
ExecuQuery
(
"SELECT * FROM db_tbd_base1.project;"
)
# info = mysql.ExecuQuery("SELECT * FROM db_tbd_base1.project;")
info
=
mysql
.
ExecuQuery
(
"select id from db_tbd_base1.risk_info where risk_name='自动化新增';"
)
print
(
info
)
# r = RedisString(0).get('bmc:captcha:1ad7d0e9-1e01-454c-8500-d7b5b15c90ff')
common/utils/dingTalk.py
View file @
52966db2
...
...
@@ -94,7 +94,7 @@ def dingTalk_markdown_bmy(group):
def
dingTalk_markdown_safe_transportation
(
group
):
for
i
in
group
:
"""发送消息到钉钉群(
企业云
)"""
"""发送消息到钉钉群(
交委
)"""
timestamp
=
str
(
round
(
time
.
time
()
*
1000
))
sign
=
get_sign
(
i
[
"secret"
])
webhook
=
i
[
"webhook"
]
+
f
"×tamp={timestamp}&sign={sign}"
...
...
@@ -103,7 +103,7 @@ def dingTalk_markdown_safe_transportation(group):
"markdown"
:
{
"title"
:
"接口执行报告"
,
"text"
:
f
"#### 接口自动化测试报告
\n
> 本消息由Jenkins构建后自动发送
\n
>
\

\n
> ###### 点击查看 >> [安全运输呀](http://10.197.236.10:8080/job/bmy
/allure/)
\n
"

\n
> ###### 点击查看 >> [交委安全运输监管平台](http://10.197.236.10:8080/job/safe_transportation
/allure/)
\n
"
},
'at'
:
{
'isAtAll'
:
False
}}
post_data
=
json
.
dumps
(
data
)
...
...
@@ -134,11 +134,14 @@ def dingTalk_markdown_safe_transportation(group):
if
__name__
==
'__main__'
:
test_group
=
[{
"secret"
:
"SEC40a1be4bbd9214e16ba288208fd608b2b590e82e853fa9b24c1850a506c6185b"
,
"webhook"
:
"https://oapi.dingtalk.com/robot/send?access_token=e830b05eeee88da31972099e403a74d05ec55719360707dc44e532c0d0b49cb6"
,
"group"
:
"自动化测试组 - 技术和思路分享"
}
# ,
# {"secret": "SEC1d08f46da74337cc0e1cd5bb9ad19622d825483343fdfa43ce396881e4745bdb",
# "webhook": "https://oapi.dingtalk.com/robot/send?access_token=f9e005c1a984b9607960345d38669337b1115d1141a0294e98666443b312115b",
# "group": "自动群"}
"group"
:
"自动化测试组 - 技术和思路分享"
}
]
bmy_group
=
[{
"secret"
:
"SEC40a1be4bbd9214e16ba288208fd608b2b590e82e853fa9b24c1850a506c6185b"
,
"webhook"
:
"https://oapi.dingtalk.com/robot/send?access_token=e830b05eeee88da31972099e403a74d05ec55719360707dc44e532c0d0b49cb6"
,
"group"
:
"自动化测试组 - 技术和思路分享"
},
{
"secret"
:
"SEC7714672a0be0239dbff12083d6beca3961490f1f5384c616ea259015d7e71cd1"
,
"webhook"
:
"https://oapi.dingtalk.com/robot/send?access_token=10baf66992f12849793666ee882569bf50d313e9c070ab1afbff25cb9ffcd567"
,
"group"
:
"测试序列"
}
]
bmc_group
=
[{
"secret"
:
"SECd10e7eaf4ae5e4a9b15cb059951519c0d8537721fd588e38b861c411ce6442d3"
,
"webhook"
:
"https://oapi.dingtalk.com/robot/send?access_token=9755709d67e98f6adfa09c884b2b62480b5315ffb65acde5309094206374e3a1"
,
...
...
@@ -146,6 +149,6 @@ if __name__ == '__main__':
{
"secret"
:
"SEC465015385218e70a94f107a16f72dd33d8fc118c3b2a631e0433685302f2fbb3"
,
"webhook"
:
"https://oapi.dingtalk.com/robot/send?access_token=229908a83825ed56abbf728d3382e446a4e8a90e9ad302c37a036bcbccbbf9ee"
,
"group"
:
"自动化小组"
}]
dingTalk_markdown_safe_transportation
(
test
_group
)
dingTalk_markdown_safe_transportation
(
bmy
_group
)
# dingTalk_markdown(test_group,"https://aqjg.gyszhjt.com:60028/img/group1/M00/00/04/Cgs5XWD2NrOACeeHAAhEU1jS9Xc475.png","交委项目","http://10.197.236.10:8080/job/bmc/allure/")
\ No newline at end of file
config.py
View file @
52966db2
...
...
@@ -19,13 +19,18 @@ class BaseConfig():
bmc_group
=
[{
"secret"
:
"SECd10e7eaf4ae5e4a9b15cb059951519c0d8537721fd588e38b861c411ce6442d3"
,
"webhook"
:
"https://oapi.dingtalk.com/robot/send?access_token=9755709d67e98f6adfa09c884b2b62480b5315ffb65acde5309094206374e3a1"
,
"group"
:
"斑马信用测试"
},
{
"secret"
:
"SEC465015385218e70a94f107a16f72dd33d8fc118c3b2a631e0433685302f2fbb3"
,
"webhook"
:
"https://oapi.dingtalk.com/robot/send?access_token=229908a83825ed56abbf728d3382e446a4e8a90e9ad302c37a036bcbccbbf9ee"
,
"group"
:
"自动化小组"
}]
{
"secret"
:
"SEC7714672a0be0239dbff12083d6beca3961490f1f5384c616ea259015d7e71cd1"
,
"webhook"
:
"https://oapi.dingtalk.com/robot/send?access_token=10baf66992f12849793666ee882569bf50d313e9c070ab1afbff25cb9ffcd567"
,
"group"
:
"测试序列"
}
]
# 交委钉钉群
bmy_group
=
[{
"secret"
:
"SEC40a1be4bbd9214e16ba288208fd608b2b590e82e853fa9b24c1850a506c6185b"
,
"webhook"
:
"https://oapi.dingtalk.com/robot/send?access_token=e830b05eeee88da31972099e403a74d05ec55719360707dc44e532c0d0b49cb6"
,
"group"
:
"自动化测试组 - 技术和思路分享"
}]
"group"
:
"自动化测试组 - 技术和思路分享"
},
{
"secret"
:
"SEC7714672a0be0239dbff12083d6beca3961490f1f5384c616ea259015d7e71cd1"
,
"webhook"
:
"https://oapi.dingtalk.com/robot/send?access_token=10baf66992f12849793666ee882569bf50d313e9c070ab1afbff25cb9ffcd567"
,
"group"
:
"测试序列"
}
]
# 日志相关
log_path
=
r''
# 日志路径
...
...
test_case/safe_transportation/jgd/test_riskManagement.py
View file @
52966db2
# autor: taoke
# time : 2021/8/23 13:46
from
config
import
*
import
requests
,
pytest
import
requests
,
pytest
,
allure
,
xlrd
from
common.tools
import
request_main
from
common.utils.getExcelData
import
get_excelData
from
common.db
import
MYSQL
# class Test_Model():
# def test_qyd(self):
# print("测试")
# """直接拿token"""
# # bmy_token=SafeTransportationConfig.bmy_token
# # bmy_headers = {"Content-Type": "application/json",
# # "Authorization": bmy_token,
# # "appCode": "1422744796822036481"}
# # res=requests.post("http://testyun.banmago.com/api/tbd/web/baseData/intoVehicle/list",
# # json={"appCode":"1422744796822036481","pageNum":1,"pageSize":10,"useNaturePropertyIds":[]},
# # headers=bmy_headers)
# # print(res.json())
#
# """使用公共方法"""
# res=request_main("http://testyun.banmago.com/api/tbd/web/baseData/intoVehicle/list",
# "",
# "POST",
# {"appCode":"1422744796822036481","pageNum":1,"pageSize":10,"useNaturePropertyIds":[]})
# print(res)
#
# def test_jgd(self):
# print("测试")
# # """直接拿token"""
# # sso_token=SafeTransportationConfig.sso_token
# # headers = {"Content-Type": "application/json",
# # "token": sso_token}
# # res=requests.post("http://testtbdzj.hikcreate.com/web/warnPoint/pageList",
# # json={"pageNum":1,"pageSize":10},
# # headers=headers)
# # print(res.json())
#
# """使用公共方法"""
# res=request_main("http://testtbdzj.hikcreate.com/web/warnPoint/pageList",
# "",
# "POST",
# {"pageNum":1,"pageSize":10})
# print(res)
class
TestRiskManagement
():
def
test_qyd
(
self
):
print
(
"测试"
)
"""直接拿token"""
# bmy_token=SafeTransportationConfig.bmy_token
# bmy_headers = {"Content-Type": "application/json",
# "Authorization": bmy_token,
# "appCode": "1422744796822036481"}
# res=requests.post("http://testyun.banmago.com/api/tbd/web/baseData/intoVehicle/list",
# json={"appCode":"1422744796822036481","pageNum":1,"pageSize":10,"useNaturePropertyIds":[]},
# headers=bmy_headers)
# print(res.json())
"""使用公共方法"""
res
=
request_main
(
"http://testyun.banmago.com/api/tbd/web/baseData/intoVehicle/list"
,
""
,
"POST"
,
{
"appCode"
:
"1422744796822036481"
,
"pageNum"
:
1
,
"pageSize"
:
10
,
"useNaturePropertyIds"
:[]})
print
(
res
)
def
test_jgd
(
self
):
print
(
"测试"
)
# """直接拿token"""
# sso_token=SafeTransportationConfig.sso_token
# headers = {"Content-Type": "application/json",
# "token": sso_token}
# res=requests.post("http://testtbdzj.hikcreate.com/web/warnPoint/pageList",
# json={"pageNum":1,"pageSize":10},
# headers=headers)
# print(res.json())
"""使用公共方法"""
res
=
request_main
(
"http://testtbdzj.hikcreate.com/web/warnPoint/pageList"
,
""
,
"POST"
,
{
"pageNum"
:
1
,
"pageSize"
:
10
})
print
(
res
)
@pytest.fixture
(
scope
=
"class"
)
def
riskPointdelete
():
"""删除测试数据"""
yield
mysql
=
MYSQL
(
*
BaseConfig
.
test_mysql
)
mysql
.
ExecuNonQuery
(
"delete from db_tbd_base1.risk_info where risk_name like '自动化新增
%
'"
)
mysql
.
ExecuNonQuery
(
"delete from db_tbd_base1.risk_info_comment where content like '自动化测试
%
'"
)
@allure.feature
(
"风险配置"
)
@allure.description
(
"author:taoke"
)
@pytest.mark.usefixtures
(
"riskPointdelete"
)
class
TestRiskMan
():
workBook
=
xlrd
.
open_workbook
(
f
'{BaseConfig.root_path}/test_case_data/safe_transportation/jgd_riskCase.xlsx'
)
# @pytest.mark.run(order=661)
@allure.story
(
"风险规则配置"
)
@allure.title
(
"{inData[testPoint]}"
)
@allure.testcase
(
"http://yapi.hikcreate.com/project/336/interface/api/73931"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
"风险管理中心"
,
"riskSave"
))
def
test_1riskpointsave
(
self
,
inData
):
url
=
f
"{SafeTransportationConfig().SSO_url}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
f
"{res}"
,
"响应结果"
,
allure
.
attachment_type
.
TEXT
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
@pytest.fixture
()
def
riskPointID
(
self
):
"""返回新增的测试数据的id"""
mysql
=
MYSQL
(
*
BaseConfig
.
test_mysql
)
info
=
mysql
.
ExecuQuery
(
"select id from db_tbd_base1.risk_info where risk_name like '自动化新增
%
';"
)
return
info
[
0
][
'id'
]
@allure.story
(
"风险规则配置"
)
# 编辑
@allure.title
(
"{inData[testPoint]}"
)
@allure.testcase
(
"http://yapi.hikcreate.com/project/336/interface/api/73931"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
"风险管理中心"
,
"riskupdateSave"
))
def
test_riskupdateSave
(
self
,
inData
,
riskPointID
):
url
=
f
"{SafeTransportationConfig().SSO_url}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
# 修改请求参数中的风险id
data
[
"riskPointRequest"
][
"riskId"
]
=
riskPointID
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
f
"{res}"
,
"响应结果"
,
allure
.
attachment_type
.
TEXT
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
@allure.story
(
"风险规则配置"
)
@allure.title
(
"{inData[testPoint]}"
)
@allure.testcase
(
"http://yapi.hikcreate.com/project/336/interface/api/73931"
)
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
"风险管理中心"
,
"riskList"
))
def
test_riskList
(
self
,
inData
):
url
=
f
"{SafeTransportationConfig().SSO_url}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
f
"{res}"
,
"响应结果"
,
allure
.
attachment_type
.
TEXT
)
# 如果通过关键字查询则多个判断
if
inData
[
'frontCondition'
]
==
'关键字:自动化'
:
assert
res
[
'data'
][
'list'
][
0
][
'riskName'
]
.
__contains__
(
"自动化"
)
else
:
assert
res
[
'code'
]
==
expectData
[
'code'
]
# @pytest.mark.pppp
@allure.story
(
"风险时间配置"
)
@allure.title
(
"{inData[testPoint]}"
)
# @allure.testcase("")
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
"风险管理中心"
,
"riskTime"
))
def
test_riskTime
(
self
,
inData
):
url
=
f
"{SafeTransportationConfig().SSO_url}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
f
"{res}"
,
"响应结果"
,
allure
.
attachment_type
.
TEXT
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
# @pytest.mark.pppp
@allure.story
(
"风险基础查询"
)
@allure.title
(
"{inData[testPoint]}"
)
# @allure.testcase("")
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
"风险管理中心"
,
"riskBase"
))
def
test_riskBase
(
self
,
inData
):
url
=
f
"{SafeTransportationConfig().SSO_url}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
f
"{res}"
,
"响应结果"
,
allure
.
attachment_type
.
TEXT
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
# @pytest.mark.pppp
@allure.story
(
"风险备注配置"
)
@allure.title
(
"{inData[testPoint]}"
)
# @allure.testcase("")
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
"风险管理中心"
,
"riskComments"
))
def
test_riskComments
(
self
,
inData
):
url
=
f
"{SafeTransportationConfig().SSO_url}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
f
"{res}"
,
"响应结果"
,
allure
.
attachment_type
.
TEXT
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
@allure.story
(
"风险备注配置"
)
@allure.title
(
"{inData[testPoint]}"
)
# @allure.testcase("")
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
"风险管理中心"
,
"riskcommentCreate"
))
def
test_riskcommentCreate
(
self
,
inData
,
riskPointID
):
url
=
f
"{SafeTransportationConfig().SSO_url}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
# 请求的风险id修改为新增的风险
data
[
"parentRiskId"
]
=
riskPointID
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
f
"{res}"
,
"响应结果"
,
allure
.
attachment_type
.
TEXT
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
@allure.story
(
"风险相关"
)
@allure.title
(
"{inData[testPoint]}"
)
# @allure.testcase("")
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
"风险管理中心"
,
"riskTogeter"
))
def
test_riskTogeter
(
self
,
inData
):
url
=
f
"{SafeTransportationConfig().SSO_url}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
f
"{res}"
,
"响应结果"
,
allure
.
attachment_type
.
TEXT
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
@allure.feature
(
"风险结果"
)
@allure.description
(
"author:taoke"
)
@pytest.mark.usefixtures
(
"riskPointdelete"
)
class
TestRiskRsu
():
workBook
=
xlrd
.
open_workbook
(
f
'{BaseConfig.root_path}/test_case_data/safe_transportation/jgd_riskCase.xlsx'
)
@pytest.mark.pppp
@allure.story
(
"风险数据分析"
)
@allure.title
(
"{inData[testPoint]}"
)
# @allure.testcase("")
@pytest.mark.parametrize
(
"inData"
,
get_excelData
(
workBook
,
"风险管理中心"
,
"riskAnalysis"
))
def
test_riskAnalysis
(
self
,
inData
):
url
=
f
"{SafeTransportationConfig().SSO_url}{inData['url']}"
headers
=
inData
[
'headers'
]
method
=
inData
[
'method'
]
data
=
inData
[
'reqData'
]
expectData
=
inData
[
'expectData'
]
res
=
request_main
(
url
,
headers
,
method
,
data
)
allure
.
attach
(
f
"{res}"
,
"响应结果"
,
allure
.
attachment_type
.
TEXT
)
assert
res
[
'code'
]
==
expectData
[
'code'
]
if
__name__
==
'__main__'
:
for
one
in
os
.
listdir
(
'../../../report/tmp'
):
if
'json'
or
'txt'
in
one
:
os
.
remove
(
f
'../../../report/tmp/{one}'
)
pytest
.
main
([
'test_riskManagement.py'
,
'-s'
,
'--alluredir'
,
'../../../report/tmp'
])
pytest
.
main
([
'test_riskManagement.py'
,
'-s'
,
'--alluredir'
,
'../../../report/tmp'
])
# 启动默认浏览器打开报告
# os.system('allure serve ../../../report/tmp')
\ No newline at end of file
os
.
system
(
'allure serve ../../../report/tmp'
)
test_case_data/safe_transportation/jgd_riskCase.xlsx
View file @
52966db2
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