Commit 3b3b7550 by fanxun

Merge remote-tracking branch 'origin/master'

parents 5c0c2f9d cbbd9676
......@@ -41,12 +41,29 @@ def dingTalk_link(secret,webhook,message):
response = requests.post(webhook, headers=BaseConfig.headers, data=post_data)
return response.text
# def dingTalk_markdown(secret,webhook,message):
# """发送消息到钉钉群"""
# timestamp = str(round(time.time() * 1000))
# sign=get_sign(secret)
# webhook=webhook+f"&timestamp={timestamp}&sign={sign}"
# now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M')
# data = {'msgtype': 'markdown',
# "markdown": {
# "title":"接口执行报告",
# "text": f"#### 接口自动化测试报告 \n> 本消息由Jenkins构建后自动发送\n> \
# ![screenshot](https://aqjg.gyszhjt.com:60028/img/group1/M00/00/03/Cgs5X2CwRQ-AKCtYAAFAKzUlsWM407.png)\n> ###### 点击查看 >> [斑马信用](http://10.197.236.10:8080/job/bmc/allure/) \n"
# },
# 'at': {'isAtAll': False}}
# post_data = json.dumps(data)
# response = requests.post(webhook, headers=BaseConfig.headers, data=post_data)
# return response.text
def dingTalk_markdown(secret,webhook,message):
def dingTalk_markdown2(group):
for i in group:
"""发送消息到钉钉群"""
timestamp = str(round(time.time() * 1000))
sign=get_sign(secret)
webhook=webhook+f"&timestamp={timestamp}&sign={sign}"
sign=get_sign(i["secret"])
webhook=i["webhook"]+f"&timestamp={timestamp}&sign={sign}"
now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M')
data = {'msgtype': 'markdown',
"markdown": {
......@@ -56,25 +73,21 @@ def dingTalk_markdown(secret,webhook,message):
},
'at': {'isAtAll': False}}
post_data = json.dumps(data)
response = requests.post(webhook, headers=BaseConfig.headers, data=post_data)
return response.text
requests.post(webhook, headers=BaseConfig.headers, data=post_data)
if __name__ == '__main__':
res=dingTalk_markdown(secret="SEC40a1be4bbd9214e16ba288208fd608b2b590e82e853fa9b24c1850a506c6185b",
webhook="https://oapi.dingtalk.com/robot/send?access_token=e830b05eeee88da31972099e403a74d05ec55719360707dc44e532c0d0b49cb6",
message="小帅")
print(res)
now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M')
print(now_time)
# 自动化测试组 - 技术和思路分享 - ----小帅
# SEC40a1be4bbd9214e16ba288208fd608b2b590e82e853fa9b24c1850a506c6185b
# https: // oapi.dingtalk.com / robot / send?access_token = e830b05eeee88da31972099e403a74d05ec55719360707dc44e532c0d0b49cb6
# 自动化小组
# secret = "SEC465015385218e70a94f107a16f72dd33d8fc118c3b2a631e0433685302f2fbb3",
# webhook = "https://oapi.dingtalk.com/robot/send?access_token=229908a83825ed56abbf728d3382e446a4e8a90e9ad302c37a036bcbccbbf9ee"
\ No newline at end of file
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": "自动群"}]
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": "自动化小组"}]
dingTalk_markdown2(bmc_group)
\ No newline at end of file
......@@ -15,6 +15,12 @@ class BaseConfig():
# 钉钉相关
webhook = ''
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": "自动化小组"}]
# 日志相关
log_path = r'' # 日志路径
......
......@@ -29,7 +29,7 @@ if __name__ == "__main__":
# os.system('allure serve ./report/tmp')
# 发送钉钉 ()
dingTalk.dingTalk_markdown(secret="SEC465015385218e70a94f107a16f72dd33d8fc118c3b2a631e0433685302f2fbb3",
webhook="https://oapi.dingtalk.com/robot/send?access_token=229908a83825ed56abbf728d3382e446a4e8a90e9ad302c37a036bcbccbbf9ee",
message="")
dingTalk.dingTalk_markdown2(BaseConfig.bmc_group)
#作者: taoke
#时间: 2021/5/31 16:34
#编码: -- coding: utf-8 --
#版本: !python3.7
import pytest,allure,xlrd,requests,os,datetime,random
from common.utils.getExcelData import get_excelData
from service.login import BMY
from common.tools import request_main
from config import BaseConfig,BMCConfig
from service.login import BMC
from common.db import RedisString,MYSQL
# @allure.epic("斑马信用")
@allure.feature("电动车预约")
class TestDrivingLicense():
workBook = xlrd.open_workbook(f'{BaseConfig.root_path}/test_case_data/bmc/bmc_ElectricBicycle_20210531.xlsx')
def setup_class(self):
pass
@allure.story("“通行证类型”状态")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/19711")
@allure.description("/pvtapi/deliveryVehicle/passcardTypeState")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'passcardTypeState'))
def test_passcardTypeState(self,inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("电动车banner接口")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/61377")
@allure.description("接口:/electric/electricBannerOrPop,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'electricBannerOrPop'))
def test_electricBannerOrPop(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("电动车banner接口")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/61377")
@allure.description("接口:/electric/electricBannerOrPop,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'electricBannerOrPop'))
def test_electricBannerOrPop(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("检测是否领取")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/45684")
@allure.description("接口:/pvtapi/electricBicycle/isBind,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'electricBicycleIsBind'))
def test_electricBicycleIsBind(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("电动自行车行驶证二维码")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/46554")
@allure.description("接口:/electricBicycle/qr,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'ElectricBicycleQr'))
def test_ElectricBicycleQr(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("获取须知信息")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/7704")
@allure.description("接口:/pvtapi/sys/notice/detail,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'noticeDetail'))
def test_noticeDetail(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("文件上传")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/5452")
@allure.description("接口:/pvtapi/file/upload,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'fileUpload'))
def test_fileUpload(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
expectData = inData['expectData']
"""特殊处理"""
headers = {'City-Code': "520100", 'Device-Brand': "vivo", 'Device-Code': "000000001e167ed7000000001e167ed7",
'Device-Model': "vivo vivo X20", 'Device-Name': "vivo+X20", 'Device-Type': "Android",
'Mac': "38:6E:A2:A0:0E:AF", 'mimeType': "application/json", 'Net': "wifi", 'OS-Type': "Android",
'OS-Version': "27", 'Pvt-Token': f"{BMCConfig.bmc_pvt_token}", 'Resolution': "2034x1080",
'Token': f"{BMCConfig.bmc_token}", 'Version': "2.2.6"}
user_file = {'file': ("321.gif", open(f"{BaseConfig.root_path}/test_case_data/bmc/321.gif", 'rb'), 'image/png/jpg')}
res = requests.post(url, files=user_file, headers=headers)
allure.attach(f"{res.json()}", "响应结果", allure.attachment_type.TEXT)
assert res.json()['code'] == expectData['code']
@allure.story("获取系统字典")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/5077")
@allure.description("接口:/pvtapi/sys/dict/list,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'sysDictlist'))
def test_sysDictlist(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("地址选择")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/45572")
@allure.description("接口://electricBicycle/apply/address/addressSelector,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'addressSelector'))
def test_addressSelector(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("车架号是否存在")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/45032")
@allure.description("接口:/pvtapi/electricBicycle/getBikeCccInfo,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'getBikeCccInfo'))
def test_getBikeCccInfo(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("检查车架号和身份证号")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/45540")
@allure.description("接口:/pvtapi/electricBicycle/checkStatus,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'checkStatus'))
def test_checkStatus(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("车管所列表")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/45216")
@allure.description("接口:/pvtapi/electricBicycle/dmv/list,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'dmvList'))
def test_dmvList(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@allure.story("获取可预约日期的列表")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/45508")
@allure.description("接口:/pvtapi/electricBicycle/exchangeLicensePlate/getDataList,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'getDataList'))
def test_getDataList(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""请求"""
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
@pytest.mark.scoreDetail
@allure.story("提交新国标备案申请")
@allure.link("http://yapi.hikcreate.com/project/32/interface/api/44776")
@allure.description("接口:/pvtapi/electricBicycle/apply/newGB/submit,creator:胥键雪,autoCreator:taoke")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '电动车', 'newGBsubmit'))
def test_newGBsubmit(self, inData):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
"""处理"""
today = datetime.date.today()
if today.isoweekday() in [5, 6, 7]:
today += datetime.timedelta(days=8 - today.isoweekday()) # 需要是工作日
appointDate=str(today)
else:
today += datetime.timedelta(days=1) # 放管服设置需提前预约一天
appointDate=str(today)
print(appointDate)
frameNumber = f"{random.randint(100, 999)}757890668{random.randint(100, 999)}"
req_data['appointDate']=appointDate
req_data['frameNumber']=frameNumber
res = request_main(url, headers, method, req_data)
allure.attach(f"{res}", "响应结果", allure.attachment_type.TEXT)
assert res['code'] == expectData['code']
if __name__ == '__main__':
for one in os.listdir('../../report/tmp'): # '-m','scoreDetail' ,
if 'json' in one:
os.remove(f'../../report/tmp/{one}')
pytest.main(['test_ElectricBicycle.py', '-s', '-m','scoreDetail' , '--alluredir','../../report/tmp'])
os.system('allure serve ../../report/tmp')
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment