238c925c by 付孟奇

初始化

0 parents
Showing 114 changed files with 7112 additions and 0 deletions
No preview for this file type
# Created by .ignore support plugin (hsz.mobi)
### Python template
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
.idea
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
1、设置运行环境,util/HandleJenkins.py
2、设置项目数据库,util/HandleDB.py
3、设置redis连接db,config/vendorList.py
4、设置APP登陆方式(统一登录、无统一登陆),config/vendorList.py
5、新增有统一登陆项目,需要在excel中添加该项目的可登录账号信息,A_api_case.xlsx里的app登录sheet
6、新增保全项目,需要在excel里添加订单号(找保司要,订单不定期更新),A_api_case.xlsx里的查询保司订单sheet
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午4:58
# @Author : 付孟奇
import unittest
from unittestreport import TestRunner
from util.HandleJenkins import config
from util.swaggerApi import swaggerApi
from config.vendorPath import case_path
from util.getSuitCase import get_suit
# 执行的项目文件目录
pro = config['pro']
email_data = config['email']
email = str(email_data).split(',')
if len(email) > 1:
email = list(email)
title = config['title']
env = config['env']
# 获取swagger返回的api信息并保存到swaggerApi.json
swaggerApi
# 执行文件地址
suite_case = get_suit()
runner = TestRunner(suite_case,
filename="report.html",
report_dir='./report',
title=title,
tester='测试组',
desc='接口自动化测试报告',
templates=1,
pro=pro,
env=env
)
runner.run()
runner.send_email(host="smtp.exmail.qq.com",
port=465,
user="fumengqi@situdata.com",
password="Fz315824",
to_addrs=email)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config import vendorList
from util.log import logger
from util.generate import getTestCase
from util.HandleJson import file_readAPI
from util.HandleJson import file_updata_global
from util.HandleJenkins import config
class AppAuthLogin(unittest.TestCase):
def testFunc(self):
'''app登录'''
data_list = getTestCase('A_api_case.xlsx', 'app登录')
for j in range(len(data_list)):
if data_list[j]['vendor'] == config['pro']: # 处理统一登录和无统一登陆参数问题
self.getTest(data_list[j])
else:
logger.info('该case忽略')
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
password = data['password']
username = data['username']
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
}
payload = {
"username": username,
"password": password,
"deviceNum": "078424F3-26DE-4A76-BC66-E4CD2C55BB0A"
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'loginUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
if res['code'] == 0:
file_updata_global('app_login', 'token', res['result']['token'])
file_updata_global('app_login', 'directlyAgencyName', res['result']['directlyAgencyName'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.error(response.text)
if __name__ == '__main__':
unittest.main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global
class AppAuthSts(unittest.TestCase):
def testFunc(self):
'''获取鉴权'''
data_list = getTestCase('A_api_case.xlsx', '获取鉴权')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
videoUrlNums = data['videoUrlNums']
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = {
"videoUrlNums": videoUrlNums
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'ossStsUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global
class AppFileList(unittest.TestCase):
def testFunc(self):
'''A端文件列表'''
data_list = getTestCase('A_api_case.xlsx', '文件列表')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = {
"orderRecordId": file_read_global('order', 'orderRecordId')
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'agentFileListUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/12 下午5:35
# @Author : 付孟奇
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_read_global
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.HandleJson import file_readAPI
class AppHomeList(unittest.TestCase):
def testFunc(self):
'''app首页展示'''
data_list = getTestCase('A_api_case.xlsx', 'app首页展示')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = {
"wait2UploadOrderList": [
0
]
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'listCountUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/12 下午5:35
# @Author : 付孟奇
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_read_global
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.HandleJson import file_readAPI
class AppListCount(unittest.TestCase):
def testFunc(self):
'''app订单列表'''
data_list = getTestCase('A_api_case.xlsx', 'app订单列表')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
listType = data['listType']
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = {
"wait2UploadOrderList": [
],
"listType": listType,
"name": "",
"perPage": "10",
"page": "1"
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'listUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
if __name__ == '__main__':
unittest.main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/12 下午5:35
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import add_order_type_1_path
from config import vendorList
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_read_global, file_read, file_readAPI, file_updata_global
from util.HandleTime import handle_time
from util.HandleJenkins import config
class AppOrderAdd(unittest.TestCase):
def testFunc(self):
'''创建纸质新契约订单'''
data_list = getTestCase('A_api_case.xlsx', '创建订单')
for i in range(len(data_list)):
if config['pro'] in vendorList.add_order_type_2:
self.getTest(data_list[i])
else:
logger.info('掠过此条case')
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = file_read(add_order_type_1_path)
payload['订单基本信息']['销售渠道'] = file_read_global('channel', 'channel_name')
payload['订单基本信息']['双录创建日期'] = handle_time.timeTimeYMD()
payload['订单基本信息']['机构名称'] = file_read_global('app_login', 'directlyAgencyName')
payload['订单基本信息']['投保单号'] = 'api' + handle_time.timeStamp_10()
payload['主险信息'][0]['产品类型'] = file_read_global('product', 'productTypeName')
payload['主险信息'][0]['产品名称'] = file_read_global('product', 'product_name')
payload['主险信息'][0]['产品代码'] = file_read_global('product', 'product_code')
payload['附加险信息'][0]['产品类型'] = file_read_global('product', 'productTypeName')
payload['附加险信息'][0]['产品名称'] = file_read_global('product', 'product_name_att')
payload['附加险信息'][0]['产品代码'] = file_read_global('product', 'product_code_att')
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'handAddOrderUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
if res['code'] == 0:
file_updata_global('order', 'orderRecordId', res['result']['orderRecordId'])
file_updata_global('order', 'orderId', res['result']['orderId'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/12 下午5:35
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import add_order_type_2_path
from config import vendorList
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_read_global, file_read, file_readAPI, file_updata_global
from util.HandleTime import handle_time
from util.HandleJenkins import config
class AppOrderAddQuota(unittest.TestCase):
def testFunc(self):
'''创建纸质保全订单'''
data_list = getTestCase('A_api_case.xlsx', '创建订单')
for i in range(len(data_list)):
if config['pro'] in vendorList.add_order_type_2:
self.getTest(data_list[i])
else:
logger.info('掠过此条case')
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = file_read(add_order_type_2_path)
pay_list = []
pa_dic = {}
payload['订单基本信息']['保全项'] = '新增附加险'
payload['订单基本信息']['保全日期'] = handle_time.timeTimeYMD()
payload['新增附加险'] = pay_list
pa_dic['每期缴费金额'] = '5'
pa_dic['被保人'] = payload['保险信息'][0]['被保人']
pa_dic['产品种类'] = '附加险'
pa_dic['缴费期限'] = '1年'
pa_dic['产品类型'] = file_read_global('product', 'productTypeName')
pa_dic['缴费方式'] = '趸缴'
pa_dic['产品代码'] = file_read_global('product', 'product_code')
pa_dic['保险期限'] = '1年'
pa_dic['监护人名称'] = 'apitest'
pa_dic['附加险名称'] = file_read_global('product', 'product_name_att')
pay_list.append(pa_dic)
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'addQuotaUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
if res['code'] == 0:
file_updata_global('order', 'policyId', res['result']['orderRecordId'])
file_updata_global('order', 'policyNo', res['result']['policyNo'])
file_updata_global('order', 'selfNo', res['result']['selfNo'])
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global
class AppOrderDetail(unittest.TestCase):
def testFunc(self):
'''订单详情接口'''
data_list = getTestCase('A_api_case.xlsx', '订单详情')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = {
"orderRecordId": file_read_global('order', 'orderRecordId')
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'detailUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path, order_idCard_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global, file_base_64
class AppOrderFace(unittest.TestCase):
def testFunc(self):
'''人脸比对'''
data_list = getTestCase('A_api_case.xlsx', '人脸比对')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = {
"faceImageBase64": file_base_64(order_idCard_path),
"idCardImageBase64": file_base_64(order_idCard_path),
"orderRecordId": file_read_global('order', 'orderRecordId')
}
# logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'facePairUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/12 下午5:35
# @Author : 付孟奇
import unittest, requests
from util import HandleJson
from util.generate import getTestCase
from util.log import logger
from config.vendorHost import vendor_host
from config.vendorPath import add_order_type_2_path
class AppOrderQuotaDetail(unittest.TestCase):
def testFunc(self):
'''查询订单在保司是否存在'''
data_list = getTestCase('A_api_case.xlsx', '查询保司订单')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
identifier = data['identifier']
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': HandleJson.file_read_global('app_login', 'token')
}
payload = {
"businessType": 1,
"identifier": identifier
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + HandleJson.file_readAPI(api_type, 'quotaDetailUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
HandleJson.file_write(add_order_type_2_path, res['result'])
HandleJson.file_updata_global('order', 'policy_no', identifier)
else:
logger.info(response.text)
if __name__ == '__main__':
unittest.main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/12 下午5:35
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import order_mp4_path, order_zip_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_read_global, file_readAPI
import warnings
class AppOrderSubmit(unittest.TestCase):
def testFunc(self):
'''订单视频提交'''
warnings.simplefilter('ignore', ResourceWarning)
data_list = getTestCase('A_api_case.xlsx', '视频上传')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'X-Auth-Token': file_read_global('app_login', 'token'),
}
# multipart_encoder = MultipartEncoder(
# fields={
# "videoUrl": "public-staging-bucket/metlife/video/20210818/12a3cbc1f9d44f269bb9421bb2076a3e.mp4",
# "jsonData": ("json.txt", open(order_mp4_path, 'rb'), "video/mp4"),
# 'imageData': ("images.zip", open(order_zip_path, 'rb'), "application/zip")
# },
# # 自定义分隔符
# boundary='wfWiEWrgEFA9A78512weF7106A'
# )
#
# # 后给Content-Type加入属性
# headers['Content-Type'] = multipart_encoder.content_type
payload = {'videoUrl': 'public-staging-bucket/metlife/video/20210818/12a3cbc1f9d44f269bb9421bb2076a3e.mp4'}
files = [
('jsonData', ('json.txt',
open(order_mp4_path, 'rb'), "video/mp4")),
('imageData', ('images.zip',
open(order_zip_path, 'rb'), "application/zip")),
]
url = vendor_host + api_type + file_readAPI(api_type, 'orderSubmitUsingPOST')
# url = r'http://192.168.10.190:9000/re' + file_readAPI(api_type, 'orderSubmitUsingPOST')
# response = requests.post(url=url, data=multipart_encoder, headers=headers)
response = requests.post(url, headers=headers, data=payload, files=files)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global
from util.HandleTime import handle_time
class AppPhaseV3(unittest.TestCase):
def testFunc(self):
'''话术3.0获取话术内容'''
data_list = getTestCase('A_api_case.xlsx', '获取话术内容')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = {
"orderRecordId": file_read_global('order', 'orderRecordId'),
"recordingBeginTime": handle_time.timeStamp_13()
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'phaseContentV3UsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/12 下午5:35
# @Author : 付孟奇
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_read_global
from util.HandleJson import file_readAPI
from config.vendorHost import vendor_host
from config.vendorPath import global_path
class AppProductList(unittest.TestCase):
def testFunc(self):
'''产品信息'''
data_list = getTestCase('A_api_case.xlsx', '产品信息')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
riskType = int(data['riskType'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = {
"productType": "0",
"page": 1,
"perpage": 15,
"insureType": 2,
"riskType": riskType
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'productNameSelectV2UsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
if __name__ == '__main__':
unittest.main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global
class AppQualityAuditRejectedDetail(unittest.TestCase):
def testFunc(self):
'''app的拒绝详情'''
data_list = getTestCase('A_api_case.xlsx', 'app的拒绝详情')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = {
"orderRecordId": file_read_global('order', 'orderRecordId')
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'rejectedDetailUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global
from util.HandleTime import handle_time
class AppTtsV3(unittest.TestCase):
def testFunc(self):
'''话术3.0获取话术音频'''
data_list = getTestCase('A_api_case.xlsx', '获取话术音频')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
rate = data['rate']
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('app_login', 'token')
}
payload = {
"orderRecordId": file_read_global('order', 'orderRecordId'),
"recordingBeginTime": handle_time.timeStamp_13(),
"rate": rate
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'synthesizerZipV3UsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
self.assertEqual(response.status_code, code, msg='接口调用失败!')
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from util.generate import getTestCase
from util.log import logger
from config.vendorHost import vendor_host
from util.HandleJson import file_readAPI
class AppVersionUpdate(unittest.TestCase):
def testFunc(self):
'''A端版本更新'''
data_list = getTestCase('A_api_case.xlsx', 'A端版本更新')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json'
}
payload = {
"deviceType": "ANDROID",
"deviceId": "c4fc83d1-fba3-3593-ba84-a26ee9bcc818"
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'appUpdateUsingPOST')
print(url)
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config import vendorList
from util.log import logger
from util.generate import getTestCase
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
from util.HandleJenkins import config
from util.HandleRedis import handle_redis
class SystemResetPassword(unittest.TestCase):
def testFunc(self):
'''重置密码'''
data_list = getTestCase('A_api_case.xlsx', '重置密码')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
password = data['password']
username = data['username']
validateCode = handle_redis.get_value('loginservice_forget_password_string_'+config['phone'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
}
if config['pro'] in vendorList.app_login_type_3:
payload = {
"username": file_read_global('account', 'app_user'),
"password": password,
"validateCode": validateCode,
"phoneNum": config['phone'],
"deviceNum": "078424F3-26DE-4A76-BC66-E4CD2C55BB0A"
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'forgPasswordUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.error(response.text)
if __name__ == '__main__':
unittest.main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:36
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config import vendorList
from util.log import logger
from util.generate import getTestCase
from util.HandleJson import file_readAPI
from util.HandleJson import file_updata_global
from util.HandleJenkins import config
class SystemSendSms(unittest.TestCase):
def testFunc(self):
'''发送短信'''
data_list = getTestCase('A_api_case.xlsx', '发送短信')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
}
payload = {
"phoneNum": config['phone'],
"type": 2
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'sendSmsUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.error(response.text)
if __name__ == '__main__':
unittest.main()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.firstLogin import FirstLogin
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
from util.HandleJenkins import config
class WebAccountAddAPPUser(unittest.TestCase):
def testFunc(self):
'''增加app账号'''
data_list = getTestCase('WEB_api_case.xlsx', '增加app账号')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
name = data['name']
username = data['username']
phoneNum = int(config['phone'])
branchId = file_read_global('organization', 'branchId')
subBranchId = file_read_global('organization', 'subBranchId')
channel = file_read_global('channel', 'channel_name')
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': FirstLogin()
}
# if config['pro'] =='中美大都会'
# 之后如果角色可以从接口获取,这里再从接口获取并进行项目判断
payload = {
"name": name,
"username": username,
"phoneNum": phoneNum,
"branchId": branchId,
"subBranchId": subBranchId,
"channelCode": channel,
"marketingChannel": channel
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'addAppUserUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
file_updata_global('account', 'app_user', username)
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.firstLogin import FirstLogin
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebAccountAddWebUser(unittest.TestCase):
def testFunc(self):
'''添加web账号'''
data_list = getTestCase('WEB_api_case.xlsx', '添加web账号')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
username = data['username']
email = data['email']
employeeId = data['employeeId']
name = data['name']
staffNo = data['staffNo']
role = data['role']
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': FirstLogin()
}
# if config['pro'] =='中美大都会'
# 之后如果角色可以从接口获取,这里再从接口获取并进行项目判断
payload = {
"id": '',
"username": username,
"email": email,
"employeeId": employeeId,
"name": name,
"roleId": role,
"orgId": file_read_global('organization', 'subBranchId'),
"orgIdList": [int(role)],
"groupId": '',
"auditScopeList": [],
"staffNo": staffNo,
"role": role
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'addUserUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
file_updata_global('account', 'web_user', name)
file_updata_global('account', 'web_email', email)
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global
class WebAccountAppManage(unittest.TestCase):
def testFunc(self):
'''app账户信息查询'''
data_list = getTestCase('WEB_api_case.xlsx', 'app账户信息查询')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
userType = data['userType']
name = file_read_global('account', 'app_user')
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"page": 1,
"perPage": 10,
"userType": userType,
"name":name
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'appManageUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests,time
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global, file_updata_global
class WebAccountGetUserInfo(unittest.TestCase):
def testFunc(self):
'''根据用户名获取用户信息'''
data_list = getTestCase('WEB_api_case.xlsx', '获取用户信息')
for i in range(len(data_list)):
self.getTest(data_list[i])
time.sleep(2)
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"username": file_read_global('account', 'web_user')
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'getUserInfoUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/12 下午5:35
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import excel_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_read_global, file_readAPI
import warnings
class WebAccountImportAppUser(unittest.TestCase):
def testFunc(self):
'''导入app账号'''
warnings.simplefilter('ignore', ResourceWarning)
data_list = getTestCase('WEB_api_case.xlsx', '导入app账号')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'X-Auth-Token': file_read_global('web_login', 'token')
}
files = [
('file', ('A_api_case.xlsx',
open(excel_path + '/A_api_case.xlsx', 'rb'),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
]
url = vendor_host + api_type + file_readAPI(api_type, 'importAppUserUsingPOST')
response = requests.post(url, headers=headers, files=files)
if response.status_code is 200:
logger.info('接口可以调通!')
else:
logger.error('接口异常')
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global,file_updata_global
from util.HandleSql import db_sql
class WebAccountManage(unittest.TestCase):
def testFunc(self):
'''web账户信息查询'''
data_list = getTestCase('WEB_api_case.xlsx', 'web账户信息查询')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
userType = data['userType']
name = file_read_global('account', 'web_user')
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"name": name,
"page": 1,
"perPage": 10,
"userType": userType
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'webManageUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
if res['code'] == 0:
file_updata_global('account', 'web_user_id', db_sql.select_user_id(name))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
class WebAccountModifyPassword(unittest.TestCase):
def testFunc(self):
'''Web端强制修改密码'''
data_list = getTestCase('WEB_api_case.xlsx', '强制修改密码')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
username = data['username']
currentPassword = data['currentPassword']
newPassword = data['newPassword']
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
}
payload = {"username": username, "currentPassword": currentPassword, "newPassword": newPassword}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'webModifyUsernameUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global
class WebAccountModifyUser(unittest.TestCase):
def testFunc(self):
'''web端修改账号'''
data_list = getTestCase('WEB_api_case.xlsx', 'web端修改账号')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
web_name = file_read_global('account', 'web_user')
email = file_read_global('account', 'web_email')
id = file_read_global('account', 'web_user_id')
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"id": id,
"username": web_name,
"email": email,
"employeeId": web_name,
"name": web_name,
"roleId": 1,
"orgId": file_read_global('organization', 'subBranchId'),
"orgIdList": [1],
"groupId": '',
"auditScopeList": [],
"staffNo": web_name,
"role": 1
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'modifyUserUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests, time
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
class WebAccountUserEditState(unittest.TestCase):
def testFunc(self):
'''更新web账号启用/禁用状态'''
data_list = getTestCase('WEB_api_case.xlsx', 'web账号启用禁用')
for i in range(len(data_list)):
self.getTest(data_list[i])
time.sleep(2)
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
departed = int(data['departed'])
username = file_read_global('account', 'web_user')
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"departed": departed,
"userId": file_read_global('account', 'web_user_id')
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'editStateUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
class WebAdditionalDel(unittest.TestCase):
def testFunc(self):
'''删除附加属性模版'''
data_list = getTestCase('WEB_api_case.xlsx', '删除附加属性模版')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"akId": file_read_global('product', 'akId')
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'delAdditionalTemplateUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
from util.HandleSql import db_sql
class WebAdditionalEdit(unittest.TestCase):
def testFunc(self):
'''编辑附加属性'''
data_list = getTestCase('WEB_api_case.xlsx', '编辑附加属性')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
productCode = data['productCode']
productName = data['productName']
keyValue = data['keyValue']
avId = data['avId']
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"plId": db_sql.select_product(productName),
"akId": file_read_global('product', 'akId'),
"avId": avId,
"productCode": productCode,
"productName": productName,
"keyValue": keyValue
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'editsAdditionalValueUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
class WebAdditionalGet(unittest.TestCase):
def testFunc(self):
'''获取附加属性信息'''
data_list = getTestCase('WEB_api_case.xlsx', '获取附加属性信息')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"akId": file_read_global('product', 'akId'),
"page": 1,
"perPage": 10
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'getAdditionalAllValueUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebAdditionalList(unittest.TestCase):
def testFunc(self):
'''查询所有附加属性列表'''
data_list = getTestCase('WEB_api_case.xlsx', '查询所有附加属性列表')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
url = vendor_host + api_type + file_readAPI(api_type, 'queryProductAttributesListUsingPOST')
response = requests.request('POST', url, headers=headers)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
from util.HandleSql import db_sql
class WebAdditionalTemplate(unittest.TestCase):
def testFunc(self):
'''创建附加属性模版'''
data_list = getTestCase('WEB_api_case.xlsx', '创建附加属性模版')
for i in range(len(data_list)):
additional = data_list[i]['additional']
additional_id = db_sql.select_attributes(additional)
if additional_id is not None:
db_sql.delete_attributes(additional)
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
additional = data['additional']
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {"additionalTemplates": [{"keyword": additional}]}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'createAdditionalTemplateUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
if res['code'] == 0:
file_updata_global('product', 'akId', res['result'][0]['akId'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest
from util.HandleSql import db_sql
from util.HandleJson import file_read_global
class WebAllDelete(unittest.TestCase):
def testFunc(self):
'''删除所有测试数据'''
# 删除账号
db_sql.delete_user('apiappuser')
db_sql.delete_user('apiwebuser')
# 删除话术
stlId = file_read_global('speech', 'stlId')
db_sql.delete_phase(stlId)
speech_name_copy = file_read_global('speech', 'speechName') + '-副本'
phase_copy_id = db_sql.select_pahse(speech_name_copy)
db_sql.delete_phase(phase_copy_id)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global,file_updata_global
class WebChannelList(unittest.TestCase):
def testFunc(self):
'''查询所有的渠道'''
data_list = getTestCase('WEB_api_case.xlsx', '查询所有的渠道')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
url = vendor_host + api_type + file_readAPI(api_type, 'queryAllChannelUsingPOST')
response = requests.request('POST', url, headers=headers)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
if res['code'] == 0:
file_updata_global('channel', 'channel_name', res['result'][0]['label'])
file_updata_global('channel', 'channel_code', res['result'][0]['value'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config import vendorList
from util.generate import getTestCase
from util.log import logger
from util.HandleJenkins import config
from util.HandleJson import file_readAPI, file_read_global
class WebEmailSend(unittest.TestCase):
def testFunc(self):
'''发送验证码'''
data_list = getTestCase('WEB_api_case.xlsx', '发送验证码')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
bizType = data['bizType']
toEmail = file_read_global('account', 'web_email')
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json'
}
if config['pro'] in vendorList.web_login_forget_pwd:
payload = {
"bizType": bizType,
"toEmail": toEmail
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'sendValidCodeEmailUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global, file_updata_global
from util.HandleRedis import handle_redis
class WebEmailValidCode(unittest.TestCase):
def testFunc(self):
'''验证邮箱验证码'''
data_list = getTestCase('WEB_api_case.xlsx', '验证邮箱验证码')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
bizType = data['bizType']
email = file_read_global('account', 'web_email')
username = file_read_global('account', 'web_user')
validCode = handle_redis.get_string_value('email_forget_password_' + email)
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json'
}
payload = {
"bizType": bizType,
"email": email,
"username": username,
"validCode": validCode
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'validEmailCodeUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
file_updata_global('account', 'web_valid_code', res['result'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
from util.HandleSql import db_sql
class WebFileDelete(unittest.TestCase):
def testFunc(self):
'''删除文件'''
data_list = getTestCase('WEB_api_case.xlsx', '删除文件')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
fileName = data['fileName']
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"id": db_sql.select_file(fileName)
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'deleteFileDetailUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
from util.HandleSql import db_sql
class WebFileDetail(unittest.TestCase):
def testFunc(self):
'''查看文件详情'''
data_list = getTestCase('WEB_api_case.xlsx', '查看文件详情')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
fileName = data['fileName']
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"id": db_sql.select_file(fileName)
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'getFileDetailUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global,file_updata_global
class WebFileList(unittest.TestCase):
def testFunc(self):
'''文件管理列表'''
data_list = getTestCase('WEB_api_case.xlsx', '文件管理列表')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
docName = data['docName']
product = data['product']
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"docName": docName,
"docType": file_read_global('fileList', 'docType'),
"product": product,
"page": 1,
"perPage": 10
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'deleteFileDetailUsingPOST_1')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
class WebFileProductFuzzy(unittest.TestCase):
def testFunc(self):
'''查询产品关联信息'''
data_list = getTestCase('WEB_api_case.xlsx', '查询关联产品')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
url = vendor_host + api_type + file_readAPI(api_type, 'getProductUsingGET')
response = requests.request('GET', url, headers=headers)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
from util.HandleSql import db_sql
class WebFileUpdate(unittest.TestCase):
def testFunc(self):
'''更新文件信息'''
data_list = getTestCase('WEB_api_case.xlsx', '更新文件信息')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
docName = data['docName']
productCode = data['productCode']
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
'id': db_sql.select_file(docName),
'docName': docName,
'docType': file_read_global('fileList', 'docType'),
'productCode': productCode,
'checkedCityArr': [file_read_global('organization', 'branchId')],
'checkedChannelArr': [file_read_global('channel', 'channel_name')]
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'updateFileUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/12 下午5:35
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path, file_pdf_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_read_global, file_readAPI
import warnings
class WebFileUpload(unittest.TestCase):
def testFunc(self):
'''Web端上传文件'''
warnings.simplefilter('ignore', ResourceWarning)
data_list = getTestCase('WEB_api_case.xlsx', 'Web端上传文件')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
productCode = data['productCode']
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
# 'docName': 'apitest.pdf',
'docType': file_read_global('fileList', 'docType'),
'productCode': productCode,
'checkedChannelArr': file_read_global('channel', 'channel_name'),
'checkedCityArr': file_read_global('organization', 'subBranchId'),
'checkedProvinceArr': file_read_global('organization', 'branchId'),
}
files = [
('file', ('apitest.pdf',
open(file_pdf_path, 'rb'), "application/pdf"))
]
url = vendor_host + api_type + file_readAPI(api_type, 'uploadFileUsingPOST')
response = requests.post(url, headers=headers, data=payload, files=files)
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI, file_read_global
from util.HandleRedis import handle_redis
class WebForgetPassword(unittest.TestCase):
def testFunc(self):
'''web端忘记密码'''
data_list = getTestCase('WEB_api_case.xlsx', '忘记密码修改')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
password = data['password']
username = file_read_global('account', 'web_user')
validCode = file_read_global('account','web_valid_code')
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json'
}
payload = {
"password": password,
"username": username,
"validNum": validCode
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'forgetPassword2UsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config import vendorList
from util.generate import getTestCase
from util.log import logger
from util.HandleJenkins import config
from util.HandleJson import file_readAPI
from util.HandleJson import file_updata_global
class WebLogin(unittest.TestCase):
def testFunc(self):
'''web登陆'''
data_list = getTestCase('WEB_api_case.xlsx', 'web登陆')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
password = data['password']
username = data['username']
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json'
}
if config['pro'] in vendorList.web_login_1:
payload = {"username": username, "password": password}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'webLoginUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
file_updata_global('web_login', 'token', res['result']['token'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
from util.HandleSql import db_sql
class WebOrderPhaseValidateV3(unittest.TestCase):
def testFunc(self):
'''话术验证生成话术'''
data_list = getTestCase('WEB_api_case.xlsx', '话术验证生成话术')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
orderInfo =db_sql.select_extra_info(file_read_global('order','orderRecordId'))
stlId = file_read_global('speech', 'stlId')
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"orderInfo": orderInfo,
"stlId": stlId
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'getOrderPhaseV3UsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.error(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI,file_read_global
from util.HandleTime import handle_time
class WebOrderReportDown(unittest.TestCase):
def testFunc(self):
'''报表下载'''
data_list = getTestCase('WEB_api_case.xlsx', '报表下载')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
api_type = 'cl'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"beginTime": handle_time.timeTimeYMD(),
"endTime": handle_time.timeTimeYMD()
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'orderReport3UsingGET')
response = requests.request('GET', url, headers=headers, params=payload)
if response.status_code is 200:
logger.info('报表下载成功')
else:
logger.error('报表下载失败')
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.firstLogin import FirstLogin
from util.HandleJson import file_readAPI
from util.HandleJson import file_updata_global
class WebOrganizationGetTree(unittest.TestCase):
def testFunc(self):
'''查询机构结构'''
data_list = getTestCase('WEB_api_case.xlsx', '查询机构结构')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': FirstLogin()
}
url = vendor_host + api_type + file_readAPI(api_type, 'getOrgTreeUsingPOST')
response = requests.request('POST', url, headers=headers)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
if res['code'] == 0:
file_updata_global('organization', 'branchId', res['result'][0]['id'])
file_updata_global('organization', 'subBranchId', res['result'][0]['orgs'][0]['id'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebOrganizationList(unittest.TestCase):
def testFunc(self):
'''机构列表'''
data_list = getTestCase('WEB_api_case.xlsx', '机构列表')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
branchId = data['branchId']
if branchId != '':
branchId = file_read_global('organization', 'branchId')
subBranchId = data['subBranchId']
if subBranchId != '':
subBranchId = file_read_global('organization', 'subBranchId')
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"branchId": branchId,
"subBranchId": subBranchId,
"page": 1,
"perPage": 10
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'organizationListUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebOrganizationPositingSwitcher(unittest.TestCase):
def testFunc(self):
'''地理位置水印开关'''
data_list = getTestCase('WEB_api_case.xlsx', '地理位置水印开关')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
positioning = data['positioning']
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"branchId": file_read_global('organization', 'branchId'),
"positioning": positioning
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'switcherPositioningUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
class WebOrganizationQuery(unittest.TestCase):
def testFunc(self):
'''查询机构'''
data_list = getTestCase('WEB_api_case.xlsx', '查询机构')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"verifyPermissions": 2
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'querySpeechTakeEffectConditionUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebOrganizationQueryBranch(unittest.TestCase):
def testFunc(self):
'''查询全部分公司'''
data_list = getTestCase('WEB_api_case.xlsx', '查询全部分公司')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"type": '',
"verifyPermissions": 2
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'queryBranchUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebOrganizationQuerySubBranch(unittest.TestCase):
def testFunc(self):
'''查询属于某个分公司的全部支公司'''
data_list = getTestCase('WEB_api_case.xlsx', '查询分公司的子公司')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 'sys'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"branchId": file_read_global('organization', 'branchId'),
"type": '',
"verifyPermissions": 2
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'querySubBranchUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global,file_updata_global
class WebPopupFileList(unittest.TestCase):
def testFunc(self):
'''查询文件类型'''
data_list = getTestCase('WEB_api_case.xlsx', '查询文件类型')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
url = vendor_host + api_type + file_readAPI(api_type, 'getPoupFilesUsingPOST')
response = requests.request('POST', url, headers=headers)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
if res['code'] == 0:
file_updata_global('fileList', 'docType', res['result'][0]['value'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
from util.HandleSql import db_sql
class WebProductCreat(unittest.TestCase):
def testFunc(self):
'''创建产品'''
data_list = getTestCase('WEB_api_case.xlsx', '创建产品')
for i in range(len(data_list)):
product_name = data_list[i]['productName']
product_id = db_sql.select_product(product_name)
if product_id is not None:
db_sql.delete_product(product_name)
self.getTest(data_list[i])
def getTest(self, data):
tc_ame = data['tc_name']
code = int(data['code'])
productName = data['productName']
productCode = data['productCode']
insuranceType = data['insuranceType']
api_type = 're'
logger.info('********************【' + tc_ame + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {"productName": productName,
"productTypeId": file_read_global('product', 'productTypeId'),
"productCode": productCode,
"insuranceType": insuranceType,
"additionalAttributes": [],
"checkedChannelArr": [file_read_global('channel', 'channel_code')]}
logger.info('【' + tc_ame + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'createProductUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tc_ame + '】的接口返回参数为:' + str(res))
if insuranceType == '1':
file_updata_global('product', 'product_name', productName)
file_updata_global('product', 'product_code', productCode)
elif insuranceType == '2':
file_updata_global('product', 'product_name_att', productName)
file_updata_global('product', 'product_code_att', productCode)
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebProductList(unittest.TestCase):
def testFunc(self):
'''查询产品库列表'''
data_list = getTestCase('WEB_api_case.xlsx', '查询产品库列表')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
productStatus = data['productStatus']
productTypeId = data['productTypeId']
productNameCode = data['productNameCode']
insuranceType = data['insuranceType']
marketingChannel = data['marketingChannel']
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {"productStatus": productStatus,
"productTypeId": productTypeId,
"productNameCode": productNameCode,
"insuranceType": insuranceType,
"marketingChannel": marketingChannel,
"page": 1,
"perPage": 10}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'queryProductLibraryListUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
if productNameCode == file_read_global('product','product_code'):
file_updata_global('product', 'plId', res['result']['productLibraryList'][0]['id'])
elif productNameCode == file_read_global('product','product_code_att'):
file_updata_global('product', 'plId_att', res['result']['productLibraryList'][0]['id'])
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global,file_updata_global
class WebProductTypeList(unittest.TestCase):
def testFunc(self):
'''产品类型列表'''
data_list = getTestCase('WEB_api_case.xlsx', '产品类型列表')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
url = vendor_host + api_type + file_readAPI(api_type, 'templateListUsingPOST')
response = requests.request('POST', url, headers=headers)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
if res['code'] == 0:
file_updata_global('product', 'productTypeName', res['result'][0]['productTypeName'])
file_updata_global('product', 'productTypeId', res['result'][0]['productTypeId'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global
class WebProductUpdate(unittest.TestCase):
def testFunc(self):
'''更新产品上下架状态'''
data_list = getTestCase('WEB_api_case.xlsx', '更新产品上下架状态')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
productStatus = data['productStatus']
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
product_list = []
product_list.append(file_read_global('product', 'plId'))
product_list.append(file_read_global('product', 'plId_att'))
for i in product_list:
payload = {
"plId": i,
"productStatus": productStatus
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'updateProductStatusUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebQualityAuditCanList(unittest.TestCase):
def testFunc(self):
'''可质检列表'''
data_list = getTestCase('WEB_api_case.xlsx', '可质检列表')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
order_id = file_read_global('order', 'orderId')
api_type = 'qa'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"orderId": order_id,
"page": 1,
"perPage": 10
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'getAuditCanListUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
from util.HandleSql import db_sql
import time
class WebQualityAuditDetail(unittest.TestCase):
def testFunc(self):
'''订单详情'''
data_list = getTestCase('WEB_api_case.xlsx', '订单详情')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
orderSource = int(data['orderSource'])
orderRecordId = file_read_global('order', 'orderRecordId')
api_type = 'qa'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"orderRecordId": orderRecordId,
"orderSource": orderSource
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'infoDetailUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
file_updata_global('order', 'submitRecordId', res['result']['videoInfo'][0]['submitInfoId'])
file_updata_global('order', 'phaseId',
res['result']['videoInfo'][0]['phase'][0]['orderPhaseId'])
file_updata_global('order', 'phaseNum', res['result']['videoInfo'][0]['phase'][0]['phaseNum'])
file_updata_global('order', 'hintId', res['result']['videoInfo'][0]['phase'][0]['hint'][0]['hintId'])
file_updata_global('order', 'hintNum', res['result']['videoInfo'][0]['phase'][0]['hint'][0]['hintNum'])
else:
logger.info(response.text)
db_sql.update_order_status(orderRecordId)
\ No newline at end of file
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebQualityAuditProportionConfigDetail(unittest.TestCase):
def testFunc(self):
'''提供质检比例规则详情'''
data_list = getTestCase('WEB_api_case.xlsx', '提供质检比例规则详情')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
role_id = file_read_global('proportion', 'role_id')
api_type = 'qa'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"id": role_id
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'getProportionRuleDetailUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebQualityAuditProportionConfigList(unittest.TestCase):
def testFunc(self):
'''提供质检比例规则列表'''
data_list = getTestCase('WEB_api_case.xlsx', '提供质检比例规则列表')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
ruleName = file_read_global('proportion', 'role_name')
api_type = 'qa'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"ruleName": ruleName,
"page": 1,
"perPage": 10
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'proportionListUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
file_updata_global('proportion','role_id',res['result']['proportionList'][0]['id'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
from util.HandleSql import db_sql
class WebQualityAuditProportionConfigRuleAdd(unittest.TestCase):
def testFunc(self):
'''质检比列列表:新增规则'''
data_list = getTestCase('WEB_api_case.xlsx', '新增质检比例')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
ruleName = data['ruleName']
proportion = int(data['proportion'])
channle = file_read_global('channel', 'channel_name')
age_id = file_read_global('age', '60岁以下')
age = db_sql.select_age_value(age_id)
productType = file_read_global('product', 'productTypeId')
branchId = file_read_global('organization', 'branchId')
subBranchId = file_read_global('organization', 'subBranchId')
api_type = 'qa'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"ruleName": ruleName,
"proportion": proportion,
"checkedChannelArr": [channle],
"checkedAgeArr": [age],
"checkedProductTypeArr": [productType],
"ai": [],
"reviewProportion": 100,
"checkedProvinceArr": [branchId],
"checkedCityArr": [subBranchId],
"checkedPeriodArr": [],
"checkedSystemTypeArr": [],
"checkedOrderTypeArr": [],
"samplingPeriod": "0",
"checkedSubCompanyArr": [subBranchId]
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'addProportionRuleUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
file_updata_global('proportion', 'role_name', ruleName)
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebQualityAuditProportionConfigRuleDelete(unittest.TestCase):
def testFunc(self):
'''质检比列列表:删除规则'''
data_list = getTestCase('WEB_api_case.xlsx', '删除质检比例')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
role_id = file_read_global('proportion', 'role_id')
api_type = 'qa'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"id": role_id
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'deleteProportionRuleUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
from util.HandleSql import db_sql
class WebQualityAuditProportionConfigRuleModify(unittest.TestCase):
def testFunc(self):
'''质检比列列表:修改规则'''
data_list = getTestCase('WEB_api_case.xlsx', '修改质检比例')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
proportion = int(data['proportion'])
ruleName = file_read_global('proportion', 'role_name')
channle = file_read_global('channel', 'channel_name')
age_id = file_read_global('age', '60岁以下')
age = db_sql.select_age_value(age_id)
productType = file_read_global('product', 'productTypeId')
branchId = file_read_global('organization', 'branchId')
subBranchId = file_read_global('organization', 'subBranchId')
role_id = file_read_global('proportion', 'role_id')
api_type = 'qa'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"id": role_id,
"ruleName": ruleName,
"proportion": proportion,
"checkedChannelArr": [channle],
"checkedAgeArr": [age],
"checkedProductTypeArr": [productType],
"ai": [],
"checkedProvinceArr": [branchId],
"checkedCityArr": [subBranchId],
"checkedPeriodArr": [],
"checkedSystemTypeArr": [],
"checkedOrderTypeArr": [],
"samplingPeriod": "0",
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'modifyProportionRuleUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
file_updata_global('proportion', 'role_name', ruleName)
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebQualityAuditRecordHistory(unittest.TestCase):
def testFunc(self):
'''审核历史记录'''
data_list = getTestCase('WEB_api_case.xlsx', '审核历史记录')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
orderRecordId = file_read_global('order', 'orderRecordId')
api_type = 'qa'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"orderRecordId": orderRecordId,
"page": 1,
"perPage": 10000
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'getAuditHistoriesUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebQualityAuditSubmit(unittest.TestCase):
def testFunc(self):
'''审核结论提交'''
data_list = getTestCase('WEB_api_case.xlsx', '审核结论提交')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
manualConclusion = data['manualConclusion']
orderSource = int(data['orderSource'])
orderRecordId = file_read_global('order', 'orderRecordId')
submitRecordId = file_read_global('order', 'submitRecordId')
phaseId = file_read_global('order', 'phaseId')
phaseNum = file_read_global('order', 'phaseNum')
hintId = file_read_global('order', 'hintId')
hintNum = file_read_global('order', 'hintNum')
api_type = 'qa'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"qualityAuditAdvice": 3,
"orderRecordId": orderRecordId,
"submitRecordId": submitRecordId,
"submitDetailId": "",
"auditResult": [
{
"phaseId": phaseId,
"phaseNum": phaseNum,
"hint": [
{
"manualConclusion": manualConclusion,
"auditConclusion": [
{
"label": "客户离席",
"value": "0.1",
"checked": 1
}
],
"hintId": hintId,
"hintNum": hintNum
}
]
}
],
"changed": 0,
"remark": "",
"orderSource": orderSource,
"tag": "",
"modifyTag": "",
"comparisonResult": 2,
"rerecord": ""
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'submitAuditUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebSpeechTemplateConditionList(unittest.TestCase):
def testFunc(self):
'''获取话术生效条件'''
data_list = getTestCase('WEB_api_case.xlsx', '获取话术生效条件')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"insuranceType": "sx",
"stlId": ""
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'querySpeechTakeEffectConditionUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
file_updata_global('age', res['result']['takeEffectAge'][0]['ageDescribe'],
res['result']['takeEffectAge'][0]['ageId'])
file_updata_global('age', res['result']['takeEffectAge'][1]['ageDescribe'],
res['result']['takeEffectAge'][1]['ageId']
)
file_updata_global('channel', 'channel_id',
res['result']['takeEffectChannel'][0]['channelId']
)
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebSpeechTemplateCopySpeech(unittest.TestCase):
def testFunc(self):
'''复制话术模版'''
data_list = getTestCase('WEB_api_case.xlsx', '复制话术模版')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
stlId = file_read_global('speech', 'stlId')
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"stlId": stlId
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'copySpeechTemplateUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebSpeechTemplateCreatRule(unittest.TestCase):
def testFunc(self):
'''创建话术模板'''
data_list = getTestCase('WEB_api_case.xlsx', '创建话术模板')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
speechName = data['speechName']
channelIds = file_read_global('channel', 'channel_id')
provinceIds = file_read_global('organization', 'branchId')
cityIds = file_read_global('organization', 'subBranchId')
ageIds = file_read_global('age', '60岁以下')
# 是否自保件
insuranceSelf = int(data['insuranceSelf'])
#
systemType = int(data['systemType'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"speechName": speechName,
"channelIds": [channelIds],
"provinceIds": [provinceIds, provinceIds],
"cityIds": [cityIds],
"ageIds": [ageIds],
"insuranceSelf": insuranceSelf,
"insuranceType": "sx",
"systemType": systemType
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'createSpeechRuleUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
file_updata_global('speech', 'speechName', speechName)
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebSpeechTemplateGetSpeech(unittest.TestCase):
def testFunc(self):
'''话术预览/话术编辑 (获取话术)'''
data_list = getTestCase('WEB_api_case.xlsx', '话术预览编辑')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
stlId = file_read_global('speech','stlId')
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"stlId": stlId
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'getSpeechTemplateUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebSpeechTemplateOperators(unittest.TestCase):
def testFunc(self):
'''话术获取运算符'''
data_list = getTestCase('WEB_api_case.xlsx', '话术获取运算符')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
url = vendor_host + api_type + file_readAPI(api_type, 'getOperatorsUsingGET')
response = requests.request('GET', url, headers=headers)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebSpeechTemplatePhaseCreat(unittest.TestCase):
def testFunc(self):
'''创建话术模板环节(话术大环节、小环节)'''
data_list = getTestCase('WEB_api_case.xlsx', '创建话术')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
speechName = file_read_global('speech', 'speechName')
stlId = file_read_global('speech', 'stlId')
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"speechName": speechName,
"stlId": stlId,
"phaseList": [
{
"phaseTitle": "大环节名称",
"phaseNum": 1,
"showPhaseTitle": "大环节名称",
"hintsList": [
{
"hintName": "apitest",
"hintTitle": "apitest",
"showHintName": "小环节名称",
"tts": "接口自动话测试",
"hintNum": 1,
"conditions": [],
"conditionType": 1,
"hintType": {
"hintType": 2,
"sure": "",
"no": "",
"docType": 100,
"certificateType": "",
"ocr": "",
"docPrdCode": ""
},
"bindBefore": 0,
"bindAfter": 0,
"bindBeforeChosed": 1,
"bindUnique": "f2f3eb26-856b-8fd1-e916-e761f8739d9d",
"classIndex": 0,
"userRole": 1
}
]
}
]
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'createSpeechPhaseUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebSpeechTemplateQueryList(unittest.TestCase):
def testFunc(self):
'''话术模版库列表'''
data_list = getTestCase('WEB_api_case.xlsx', '话术模版库列表')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
speechName = file_read_global('speech', 'speechName')
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"speechName": speechName,
"page": 1,
"perPage": 10,
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'querySpeechTemplateListUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
file_updata_global('speech', 'stlId', res['result']['speechList'][0]['stlId'])
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebSpeechTemplateUpdateStatus(unittest.TestCase):
def testFunc(self):
'''更新话术状态: 上架、下架'''
data_list = getTestCase('WEB_api_case.xlsx', '更新话术状态')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
speechStatus = int(data['speechStatus'])
stlId = file_read_global('speech', 'stlId')
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
payload = {
"speechStatus": speechStatus,
"stlId": stlId
}
logger.info('【' + tcname + '】的接口入参为:' + str(payload))
url = vendor_host + api_type + file_readAPI(api_type, 'updateSpeechStatusUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/13 下午3:55
# @Author : 付孟奇
import unittest, requests
from config.vendorHost import vendor_host
from config.vendorPath import global_path
from util.generate import getTestCase
from util.log import logger
from util.HandleJson import file_readAPI
from util.HandleJson import file_read_global, file_updata_global
class WebSpeechTemplateVariables(unittest.TestCase):
def testFunc(self):
'''话术获取生效条件'''
data_list = getTestCase('WEB_api_case.xlsx', '话术获取生效条件')
for i in range(len(data_list)):
self.getTest(data_list[i])
def getTest(self, data):
tcname = data['tc_name']
code = int(data['code'])
api_type = 're'
logger.info('********************【' + tcname + '】接口测试开始!' + '********************')
headers = {
'Content-Type': 'application/json',
'X-Auth-Token': file_read_global('web_login', 'token')
}
url = vendor_host + api_type + file_readAPI(api_type, 'getVariablesUsingGET')
response = requests.request('GET', url, headers=headers)
if response.status_code is 200:
res = response.json()
self.assertEqual(res['code'], code, msg=str(res))
logger.info('【' + tcname + '】的接口返回参数为:' + str(res))
else:
logger.info(response.text)
{
"app_login": {
"token": "d301462b474643f483d1a4353495b5c4",
"directlyAgencyName": "济南本部"
},
"web_login": {
"token": "34bbb95137264d03b252a0082ef6f742"
},
"order": {
"orderRecordId": 167,
"orderId": "",
"submitRecordId": 7914,
"phaseId": 184605,
"phaseNum": 1,
"hintId": 368568,
"hintNum": 1,
"policyId": 169,
"policyNo": "202106002448538",
"selfNo": "202106002448538_8"
},
"product": {
"productTypeName": "分红险",
"productTypeId": 13,
"akId": 129,
"product_name": "apitest",
"product_code": "apitest",
"plId": 435,
"product_name_att": "apitest2",
"product_code_att": "apitest2",
"plId_att": 436
},
"fileList": {
"docType": 3
},
"account": {
"desc": "账号信息",
"app_user": "apiappuser",
"web_user": "apiwebuser",
"web_email": "fumengqi@situdata.com",
"web_user_id": 2188,
"web_valid_code": "163245"
},
"organization": {
"branchId": 1,
"subBranchId": 5
},
"channel": {
"desc": "渠道信息",
"channel_name": "个人营销",
"channel_code": "个人营销",
"channel_id": 9
},
"age": {
"60岁以上": 3,
"60岁以下": 4
},
"speech": {
"desc": "话术模版信息",
"stlId": 85,
"speechName": "接口自动化话术(勿动)"
},
"proportion": {
"desc": "质检比例信息",
"role_name": "接口自动化质检比例(勿动)",
"role_id": 7
},
"订单基本信息": {
"保单号": "202106002448538",
"保单类型": "非自保件"
},
"被保人信息": [
{
"姓名": "哦哦",
"监护人姓名": "",
"证件号码": "110101200803071616",
"出生日期": "2008-03-07",
"证件类型": "身份证",
"性别": "男"
}
],
"投保人信息": {
"姓名": "韩超",
"证件号码": "110101199003077694",
"出生日期": "1990-03-07",
"证件类型": "身份证",
"性别": "男",
"投保人是被保人的": "父亲"
},
"保险信息": [
{
"保险期限": "1年",
"被保人": [
"哦哦"
],
"附加险": [],
"产品名称": "德华安顾奥特保重大疾病保险(2021版)",
"每期缴费金额": 3.4,
"缴费期限": "1年",
"缴费方式": "年缴"
}
]
}
\ No newline at end of file
{
"re": {
"ossStsUsingPOST": {
"des": "获取鉴权",
"value": "/auth/sts"
},
"deleteFileDetailUsingPOST": {
"des": "deleteFileDetail",
"value": "/files/delete"
},
"getFileDetailUsingPOST": {
"des": "查看文件详情",
"value": "/files/detail"
},
"deleteFileDetailUsingPOST_1": {
"des": "deleteFileDetail",
"value": "/files/list"
},
"updateFileUsingPOST": {
"des": "updateFile",
"value": "/files/update"
},
"uploadFileUsingPOST": {
"des": "Web端上传文件",
"value": "/files/upload"
},
"fetchByAgeRangeUsingPOST": {
"des": "fetchByAgeRange",
"value": "/inner/ageTplFetchByProductCode"
},
"appOrderListUsingPOST": {
"des": "appOrderList",
"value": "/inner/appOrderList"
},
"appOrderListCountUsingPOST": {
"des": "appOrderListCount",
"value": "/inner/appOrderListCount"
},
"generateAuditReportExcelUsingPOST": {
"des": "generateAuditReportExcel",
"value": "/inner/create/auditReport"
},
"createOperationRecordsDOUsingPOST": {
"des": "createOperationRecordsDO",
"value": "/inner/createOperationRecordsDO"
},
"createOrderUsingPOST": {
"des": "createOrder",
"value": "/inner/createOrder"
},
"createOrderAuditDOUsingPOST": {
"des": "createOrderAuditDO",
"value": "/inner/createOrderAuditDO"
},
"createOrderPhaseV3UsingPOST": {
"des": "createOrderPhaseV3",
"value": "/inner/createOrderPhaseV3"
},
"facePairUsingPOST": {
"des": "facePair",
"value": "/inner/face-pair"
},
"fetchByIdUsingPOST": {
"des": "fetchById",
"value": "/inner/fetchById"
},
"fetchByObiIdUsingPOST": {
"des": "fetchByObiId",
"value": "/inner/fetchByObiId"
},
"fetchByOrderIdUsingPOST": {
"des": "fetchByOrderId",
"value": "/inner/fetchByOrderId"
},
"fetchByOrderIdOrSerialNoUsingPOST": {
"des": "fetchByOrderIdOrSerialNo",
"value": "/inner/fetchByOrderIdOrSerialNo"
},
"fetchByOrderNumAndFlagUsingPOST": {
"des": "fetchByOrderNumAndFlag",
"value": "/inner/fetchByOrderNumAndFlag"
},
"fetchCountBySelfNoAndRecordTypeUsingPOST": {
"des": "fetchCountBySelfNoAndRecordType",
"value": "/inner/fetchCountBySelfNoAndRecordType"
},
"fetchOrderBaseInfoUsingPOST": {
"des": "fetchOrderBaseInfo",
"value": "/inner/fetchOrder"
},
"fetchUsingPOST": {
"des": "fetch",
"value": "/inner/fetchOrderBaseInfoDo"
},
"findByOrderRecordIdUsingPOST": {
"des": "findByOrderRecordId",
"value": "/inner/findByOrderRecordId"
},
"findByProductTypeUsingPOST": {
"des": "findByProductType",
"value": "/inner/findByProductType"
},
"getAllVariablesForPaperUsingGET": {
"des": "getAllVariablesForPaper",
"value": "/inner/getAllVariablesForPaper"
},
"getVariablesWithoutProductAttrsUsingGET": {
"des": "getVariablesWithoutProductAttrs",
"value": "/inner/getAllVariablesWithoutProductAttrs"
},
"getByOrderIdAndLifeUsingPOST": {
"des": "getByOrderIdAndLife",
"value": "/inner/getByOrderIdAndLife"
},
"getByOrderIdAndLifeCycleBiggerThanUsingPOST": {
"des": "getByOrderIdAndLifeCycleBiggerThan",
"value": "/inner/getByOrderIdAndLifeCycleBiggerThan"
},
"getOrderGateWayByTaskIdUsingPOST": {
"des": "getOrderGateWayByTaskId",
"value": "/inner/getOrderGateWayByTaskId"
},
"getOrderIdNameUsingGET": {
"des": "getOrderIdName",
"value": "/inner/getOrderIdName"
},
"listUsingPOST_1": {
"des": "list",
"value": "/inner/market/channel"
},
"marketChannelByChannelNameUsingPOST": {
"des": "marketChannelByChannelName",
"value": "/inner/marketChannelByChannelName"
},
"notifyRemoteUsingPOST": {
"des": "notifyRemote",
"value": "/inner/notifyRemote"
},
"getAsrTxtInfosUsingPOST": {
"des": "getAsrTxtInfos",
"value": "/inner/order/asrTxtInfos"
},
"getOrderSpeechBigPhaseListUsingPOST": {
"des": "getOrderSpeechBigPhaseList",
"value": "/inner/order/orderSpeechBigPhaseList"
},
"orderSpeechLittlePhaseListIgnoreStatusUsingPOST": {
"des": "orderSpeechLittlePhaseListIgnoreStatus",
"value": "/inner/order/orderSpeechLittlePhaseList"
},
"getOrderSpeechLittlePhaseListUsingPOST": {
"des": "getOrderSpeechLittlePhaseList",
"value": "/inner/order/submitLittlePhaseDetailsIgnoreStatus"
},
"orderCancelUsingPOST": {
"des": "orderCancel",
"value": "/inner/orderCancel"
},
"orderCodeFileCreateUsingPOST": {
"des": "orderCodeFileCreate",
"value": "/inner/orderCodeFileCreate"
},
"orderCodeFileFetchByProductCodeUsingPOST": {
"des": "orderCodeFileFetchByProductCode",
"value": "/inner/orderCodeFileFetchByProductCode"
},
"orderCodeFileGetRemoteFileListUsingPOST": {
"des": "orderCodeFileGetRemoteFileList",
"value": "/inner/orderCodeFileGetRemoteFileList"
},
"orderCodeFileRemoveByProductCodeUsingPOST": {
"des": "orderCodeFileRemoveByProductCode",
"value": "/inner/orderCodeFileRemoveByProductCode"
},
"orderCreateConfirmUsingPOST": {
"des": "orderCreateConfirm",
"value": "/inner/orderCreateConfirm"
},
"orderCreateInfoCreateUsingPOST": {
"des": "orderCreateInfoCreate",
"value": "/inner/orderCreateInfoCreate"
},
"orderCreateInfoFetchByTaskIdUsingPOST": {
"des": "orderCreateInfoFetchByTaskId",
"value": "/inner/orderCreateInfoFetchByTaskId"
},
"orderDeleteUsingPOST": {
"des": "orderDelete",
"value": "/inner/orderDelete"
},
"orderFileCreateUsingPOST": {
"des": "orderFileCreate",
"value": "/inner/orderFileCreate"
},
"orderFileFetchByIdUsingPOST": {
"des": "orderFileFetchById",
"value": "/inner/orderFileFetchById"
},
"orderFileFetchByIdAndMd5AndNameUsingPOST": {
"des": "orderFileFetchByIdAndMd5AndName",
"value": "/inner/orderFileFetchByIdAndMd5AndName"
},
"orderFileFetchOssUrlByIdUsingPOST": {
"des": "orderFileFetchOssUrlById",
"value": "/inner/orderFileFetchOssUrlById"
},
"orderFileGetFilePathConfigDOUsingPOST": {
"des": "orderFileGetFilePathConfigDO",
"value": "/inner/orderFileGetFilePathConfigDO"
},
"orderFileQueryRemoteFileListUsingPOST": {
"des": "orderFileQueryRemoteFileList",
"value": "/inner/orderFileQueryRemoteFileList"
},
"orderFileRemoveByObiIdAndNameUsingPOST": {
"des": "orderFileRemoveByObiIdAndName",
"value": "/inner/orderFileRemoveByObiIdAndName"
},
"orderFileremoveByIdUsingPOST": {
"des": "orderFileremoveById",
"value": "/inner/orderFileremoveById"
},
"orderGatewayCreateUsingPOST": {
"des": "orderGatewayCreate",
"value": "/inner/orderGatewayCreate"
},
"orderStatusInsertSelectiveUsingPOST": {
"des": "orderStatusInsertSelective",
"value": "/inner/orderStatusInsertSelective"
},
"orderStatusSelectWaittingStatusByIdentifierUsingPOST": {
"des": "orderStatusSelectWaittingStatusByIdentifier",
"value": "/inner/orderStatusSelectWaittingStatusByIdentifier"
},
"orderStatusUpdateByPrimaryKeySelectiveUsingPOST": {
"des": "orderStatusUpdateByPrimaryKeySelective",
"value": "/inner/orderStatusUpdateByPrimaryKeySelective"
},
"orderSubmitWithCheckOrderUsingPOST_1": {
"des": "orderSubmitWithCheckOrder",
"value": "/inner/orderSubmitWithCheckOrder"
},
"orderUploadFileRemoveByObiIdAndMD5AndNameUsingPOST": {
"des": "orderUploadFileRemoveByObiIdAndMD5AndName",
"value": "/inner/orderUploadFileRemoveByObiIdAndMD5AndName"
},
"fetchByProductCodeUsingPOST": {
"des": "fetchByProductCode",
"value": "/inner/pLibraryFetchByProductCode"
},
"phaseContentV3UsingPOST": {
"des": "phaseContentV3",
"value": "/inner/phaseContentV3"
},
"productNameSelectUsingPOST_1": {
"des": "productNameSelect",
"value": "/inner/productNameSelect"
},
"productNameSelectV2UsingPOST": {
"des": "productNameSelectV2",
"value": "/inner/productNameSelectV2"
},
"queryByIdToOrderSpeechBigPhaseDOUsingPOST": {
"des": "queryByIdToOrderSpeechBigPhaseDO",
"value": "/inner/queryByIdToOrderSpeechBigPhaseDO"
},
"queryByObiIdUsingPOST": {
"des": "queryByObiId",
"value": "/inner/queryByObiIdBigPhaseDetailDo"
},
"queryIdAndNameByIdListUsingPOST": {
"des": "queryIdAndNameByIdList",
"value": "/inner/queryIdAndNameByIdList"
},
"queryOrderByIdAndLifeCycleUsingPOST": {
"des": "queryOrderByIdAndLifeCycle",
"value": "/inner/queryOrderByIdAndLifeCycle"
},
"queryReportOrderBaseListUsingPOST": {
"des": "queryReportOrderBaseList",
"value": "/inner/queryReportOrderBaseList"
},
"queryReportVOByOrderRecordIdOrderByNumUsingPOST": {
"des": "queryReportVOByOrderRecordIdOrderByNum",
"value": "/inner/queryReportVOByOrderRecordIdOrderByNum"
},
"queryTtsContentOsbpIdByObiIdUsingPOST": {
"des": "queryTtsContentOsbpIdByObiId",
"value": "/inner/queryTtsContentOsbpIdByObiId"
},
"matchRemoteCommunicationIdUsingPOST": {
"des": "matchRemoteCommunicationId",
"value": "/inner/remote/match/communicationId"
},
"remoteCreateUsingPOST": {
"des": "remoteCreate",
"value": "/inner/remote/remoteCreate"
},
"remoteFetchByAgentChannelIdUsingPOST": {
"des": "remoteFetchByAgentChannelId",
"value": "/inner/remote/remoteFetchByAgentChannelId"
},
"remoteFetchByCustomerChannelIdUsingPOST": {
"des": "remoteFetchByCustomerChannelId",
"value": "/inner/remote/remoteFetchByCustomerChannelId"
},
"remoteFetchByIdUsingPOST": {
"des": "remoteFetchById",
"value": "/inner/remote/remoteFetchById"
},
"remoteFetchByObiIdUsingPOST": {
"des": "remoteFetchByObiId",
"value": "/inner/remote/remoteFetchByObiId"
},
"remoteRemoveDiscardAgentRecordUsingPOST": {
"des": "remoteRemoveDiscardAgentRecord",
"value": "/inner/remote/remoteRemoveDiscardAgentRecord"
},
"remoteUpdateUsingPOST": {
"des": "remoteUpdate",
"value": "/inner/remote/remoteUpdate"
},
"remoteUpdateAgentVideoUrlUsingPOST": {
"des": "remoteUpdateAgentVideoUrl",
"value": "/inner/remote/remoteUpdateAgentVideoUrl"
},
"remoteUpdateCustomerCommunicationInfoUsingPOST": {
"des": "remoteUpdateCustomerCommunicationInfo",
"value": "/inner/remote/remoteUpdateCustomerCommunicationInfo"
},
"remoteUpdateCustomerVideoUrlUsingPOST": {
"des": "remoteUpdateCustomerVideoUrl",
"value": "/inner/remote/remoteUpdateCustomerVideoUrl"
},
"updateMixedFlowCompletedUsingPOST": {
"des": "updateMixedFlowCompleted",
"value": "/inner/remote/updateMixedFlowCompleted"
},
"remoteOrderListUsingPOST": {
"des": "remoteOrderList",
"value": "/inner/remoteOrderList"
},
"remoteOrderSubmitUsingPOST": {
"des": "remoteOrderSubmit",
"value": "/inner/remoteOrderSubmit"
},
"remoteOrderSubmitWithCheckOrderUsingPOST": {
"des": "remoteOrderSubmitWithCheckOrder",
"value": "/inner/remoteOrderSubmitWithCheckOrder"
},
"remotePhaseContentV3UsingPOST": {
"des": "remotePhaseContentV3",
"value": "/inner/remotePhaseContentV3"
},
"selectForcePassSpeechCountUsingPOST": {
"des": "selectForcePassSpeechCount",
"value": "/inner/selectForcePassSpeechCount"
},
"getSignaturePictureUsingGET": {
"des": "saveSignaturePicture",
"value": "/inner/signature/picture"
},
"saveSignaturePictureUsingPOST": {
"des": "saveSignaturePicture",
"value": "/inner/signature/picture"
},
"orderSubmitUsingPOST_1": {
"des": "orderSubmit",
"value": "/inner/submitOrder"
},
"synthesizerZipV3UsingPOST": {
"des": "synthesizerZipV3",
"value": "/inner/synthesizerZipV3"
},
"updateAuditLifeCycleAndCountByIdUsingPOST": {
"des": "updateAuditLifeCycleAndCountById",
"value": "/inner/updateAuditLifeCycleAndCountById"
},
"updateAuditSourceUsingPOST": {
"des": "updateAuditSource",
"value": "/inner/updateAuditSource"
},
"updateLifeCycleUsingPOST": {
"des": "updateLifeCycle",
"value": "/inner/updateLifeCycle"
},
"updateLockOrder1ByIdLifeCycle21LockOrder1UsingPOST": {
"des": "updateLockOrder1ByIdLifeCycle21LockOrder1",
"value": "/inner/updateLockOrder1ByIdLifeCycle21LockOrder1"
},
"updateLockOrder1ByIdModifyLockOrder1UsingPOST": {
"des": "updateLockOrder1ByIdModifyLockOrder1",
"value": "/inner/updateLockOrder1ByIdModifyLockOrder1"
},
"updateLockOrder2ByIdUsingPOST": {
"des": "updateLockOrder2ById",
"value": "/inner/updateLockOrder2ById"
},
"updateOrderBaseInfoDOUsingPOST": {
"des": "updateOrderBaseInfoDO",
"value": "/inner/updateOrderBaseInfoDO"
},
"orderSubmitWithCheckOrderUsingPOST": {
"des": "orderSubmitWithCheckOrder",
"value": "/order/check-submit"
},
"uploadFileUsingPOST_1": {
"des": "uploadFile",
"value": "/order/file/upload"
},
"orderSubmitUsingPOST": {
"des": "orderSubmit",
"value": "/order/submit"
},
"resourcesUsingGET": {
"des": "resources",
"value": "/ossResourcesGain/resources"
},
"resourcesUsingHEAD": {
"des": "resources",
"value": "/ossResourcesGain/resources"
},
"resourcesUsingPOST": {
"des": "resources",
"value": "/ossResourcesGain/resources"
},
"resourcesUsingPUT": {
"des": "resources",
"value": "/ossResourcesGain/resources"
},
"resourcesUsingDELETE": {
"des": "resources",
"value": "/ossResourcesGain/resources"
},
"resourcesUsingOPTIONS": {
"des": "resources",
"value": "/ossResourcesGain/resources"
},
"resourcesUsingPATCH": {
"des": "resources",
"value": "/ossResourcesGain/resources"
},
"commonListUsingPOST": {
"des": "commonList",
"value": "/product/common/list"
},
"createAdditionalTemplateUsingPOST": {
"des": "创建附加属性模版",
"value": "/product/library/create/additional/template"
},
"createProductUsingPOST": {
"des": "创建产品",
"value": "/product/library/create/product"
},
"delAdditionalTemplateUsingPOST": {
"des": "删除某个附加属性的模版,以及所有产品的此附加属性值",
"value": "/product/library/del/additional/template"
},
"editsAdditionalValueUsingPOST": {
"des": "编辑某个产品的某个附加属性值",
"value": "/product/library/edits/additional/value"
},
"editsProductUsingPOST": {
"des": "编辑产品以及产品的附加属性值",
"value": "/product/library/edits/product"
},
"getProductUsingGET": {
"des": "getProduct",
"value": "/product/library/fuzzy"
},
"getAdditionalAllValueUsingPOST": {
"des": "获取某个附加属性的所有产品的所有附加属性值",
"value": "/product/library/get/additional/all/value"
},
"getProductUsingPOST": {
"des": "获取某个产品详情",
"value": "/product/library/get/product"
},
"importExcelUsingPOST": {
"des": "importExcel",
"value": "/product/library/import/excel"
},
"queryConditionUsingPOST": {
"des": "查询产品库列表下拉框选择条件",
"value": "/product/library/query/condition/list"
},
"queryProductLibraryListUsingPOST": {
"des": "查询产品库列表",
"value": "/product/library/query/list"
},
"queryProductAttributesListUsingPOST": {
"des": "查询所有附加属性列表",
"value": "/product/library/query/product/attributes/list"
},
"updateProductStatusUsingPOST": {
"des": "更新产品上下架状态",
"value": "/product/library/update/product/status"
},
"listUsingPOST": {
"des": "list",
"value": "/product/list"
},
"productNameSelectUsingPOST": {
"des": "productNameSelect",
"value": "/product/name/select"
},
"phaseEditUsingPOST": {
"des": "phaseEdit",
"value": "/product/phase/get"
},
"phaseTransferUsingPOST": {
"des": "phaseTransfer",
"value": "/product/phase/transfer"
},
"phaseUpdateUsingPOST": {
"des": "phaseUpdate",
"value": "/product/phase/update"
},
"upOrdownUsingPOST": {
"des": "upOrdown",
"value": "/product/store/{action}"
},
"templateListUsingPOST": {
"des": "产品类型列表",
"value": "/product/type/select/list"
},
"getAllProductTypesUsingGET": {
"des": "getAllProductTypes",
"value": "/product/types"
},
"copySpeechTemplateUsingPOST": {
"des": "复制话术模版",
"value": "/speech/template/copy/speech"
},
"createSpeechRuleUsingPOST": {
"des": "创建话术模板",
"value": "/speech/template/create/rule"
},
"getPoupFilesUsingPOST": {
"des": "getPoupFiles",
"value": "/speech/template/get/popupfilelist"
},
"getSignatureObjsUsingPOST": {
"des": "getSignatureObjs",
"value": "/speech/template/get/signatureObjs"
},
"getSpeechTemplateUsingPOST": {
"des": "话术预览/话术编辑 (获取话术)",
"value": "/speech/template/get/speech"
},
"getVerificationMethodsUsingPOST": {
"des": "getVerificationMethods",
"value": "/speech/template/get/verificationMethods"
},
"getOperatorsUsingGET": {
"des": "getOperators",
"value": "/speech/template/operators"
},
"createSpeechPhaseUsingPOST": {
"des": "创建话术模板环节(话术大环节、小环节)",
"value": "/speech/template/phase/create"
},
"querySpeechTakeEffectConditionUsingPOST": {
"des": "获取话术生效条件",
"value": "/speech/template/query/condition/list"
},
"querySpeechTemplateListUsingPOST": {
"des": "话术模版库列表",
"value": "/speech/template/query/list"
},
"getVariablesUsingGET": {
"des": "getVariables",
"value": "/speech/template/speech/variables"
},
"updateSpeechStatusUsingPOST": {
"des": "更新话术状态: 上架、下架",
"value": "/speech/template/update/speech/status"
}
},
"cl": {
"appUpdateUsingPOST": {
"des": "A端版本更新",
"value": "/app/version/update"
},
"accountActivateUsingPOST": {
"des": "新建账号且激活",
"value": "/auth/account/activate"
},
"loginUsingPOST": {
"des": "app登录",
"value": "/auth/login"
},
"logoutUsingPOST": {
"des": "统一退出登录",
"value": "/auth/logout"
},
"loginUsingPOST_1": {
"des": "app-B端登录",
"value": "/auth/remote/login"
},
"ossStsUsingPOST": {
"des": "获取鉴权",
"value": "/auth/sts"
},
"addOrderUsingPOST": {
"des": "创建订单接口",
"value": "/order/add"
},
"orderCreateConfirmUsingPOST": {
"des": "orderCreateConfirm",
"value": "/order/add/confirm"
},
"addQuotaUsingPOST": {
"des": "创建保全订单接口",
"value": "/order/addQuota"
},
"agentFileListUsingPOST": {
"des": "A端文件列表",
"value": "/order/agent/file/list"
},
"customerFileListUsingPOST": {
"des": "B端文件列表",
"value": "/order/customer/file/list"
},
"deleteOrderUsingPOST": {
"des": "删除订单",
"value": "/order/delete"
},
"deleteFileUsingPOST": {
"des": "删除文件",
"value": "/order/delete/file"
},
"detailUsingPOST": {
"des": "订单详情接口",
"value": "/order/detail"
},
"downloadFileUsingPOST": {
"des": "下载文件",
"value": "/order/download/file"
},
"facePairUsingPOST": {
"des": "人脸比对",
"value": "/order/face-pair"
},
"handAddOrderUsingPOST": {
"des": "handAddOrder",
"value": "/order/hand/add"
},
"listUsingPOST": {
"des": "app订单列表",
"value": "/order/list"
},
"listCountUsingPOST": {
"des": "app首页展示数量",
"value": "/order/list/count"
},
"orCodeUsingPOST": {
"des": "二维码扫码接口",
"value": "/order/or/code"
},
"phaseContentV3UsingPOST": {
"des": "话术3.0获取话术内容",
"value": "/order/phase/content/v3"
},
"phaseContentAllV3UsingPOST": {
"des": "phaseContentAllV3",
"value": "/order/phase/fileAndContent/all"
},
"quotaDetailUsingPOST": {
"des": "quotaDetail",
"value": "/order/quotaDetail"
},
"orderReport3UsingGET": {
"des": "报表下载",
"value": "/order/report3"
},
"orderCancelUsingPOST": {
"des": "撤单",
"value": "/order/status"
},
"orderCancelUsingPUT": {
"des": "撤单",
"value": "/order/status"
},
"orderSubmitUsingPOST": {
"des": "订单录制完成提交接口",
"value": "/order/submit"
},
"synthesizerZipV3UsingPOST": {
"des": "话术3.0获取话术音频",
"value": "/order/tts/v3"
},
"productNameSelectUsingPOST": {
"des": "productNameSelect",
"value": "/product/hand/list"
},
"productNameSelectV2UsingPOST": {
"des": "productNameSelectV2",
"value": "/product/hand/list/v2"
},
"rejectedDetailUsingPOST": {
"des": "app的拒绝详情",
"value": "/quality/audit/rejected/detail"
},
"agentAliveUsingPOST": {
"des": "agentAlive",
"value": "/remote/agent/alive"
},
"agentGetRoomInfoUsingPOST": {
"des": "agentGetRoomInfo",
"value": "/remote/agent/get/room-info"
},
"agentJoinRoomSuccUsingPOST": {
"des": "agentJoinRoomSucc",
"value": "/remote/agent/join-room/success"
},
"agentLeaveRoomUsingPOST": {
"des": "agentLeaveRoom",
"value": "/remote/agent/leave-room"
},
"selectSceneUsingPOST": {
"des": "selectScene",
"value": "/remote/app/selectScene"
},
"remoteAppUpdateUsingPOST": {
"des": "B端版本更新",
"value": "/remote/app/version/update"
},
"callbackUsingPOST": {
"des": "callback",
"value": "/remote/callback"
},
"customerGetRoomInfoUsingPOST": {
"des": "customerGetRoomInfo",
"value": "/remote/customer/get/room-info"
},
"getUserSigUsingPOST": {
"des": "getUserSig",
"value": "/remote/getUserSig"
},
"notifyRemoteUsingPOST": {
"des": "A端邀请B端短信",
"value": "/remote/notify/remote"
},
"recordBeginUsingPOST": {
"des": "recordBegin",
"value": "/remote/record/begin"
},
"recordFinishUsingPOST": {
"des": "recordFinish",
"value": "/remote/record/finish"
},
"remoteOrderListUsingPOST": {
"des": "远程端双录app订单列表",
"value": "/remote/remote/list"
},
"remotePhaseContentV3UsingPOST": {
"des": "远程app话术获取",
"value": "/remote/remote/phase/content/v3"
},
"uploadFileUsingPOST": {
"des": "uploadFile",
"value": "/remote/upload/file"
},
"validOrderUsingPOST": {
"des": "validOrder",
"value": "/remote/verifyLinkValidity"
},
"saveSignatureFacePictureUsingPOST": {
"des": "saveSignatureFacePicture",
"value": "/signature/saveSignatureFacePicture"
},
"signUsingPOST": {
"des": "sign",
"value": "/signature/sign"
},
"statusUsingPOST": {
"des": "status",
"value": "/signature/status"
},
"appUpdateNewUsingPOST": {
"des": "A端版本更新",
"value": "/system/app/version/update"
},
"queryProfessionListUsingPOST": {
"des": "职业信息集合查询",
"value": "/system/profession/list"
},
"remoteAppUpdateNewUsingPOST": {
"des": "B端版本更新",
"value": "/system/remote/app/version/update"
},
"forgPasswordUsingPOST": {
"des": "重置密码",
"value": "/system/reset/password"
},
"sendSmsUsingPOST": {
"des": "发送短信",
"value": "/system/send/sms"
},
"uploadProductCodeFileUsingPOST": {
"des": "根据产品编号配置文件",
"value": "/upload/product-code-file"
}
},
"qa": {
"submitAuditUsingPOST_1": {
"des": "submitAudit",
"value": "/inner/createSubmitQualityAuditInfo"
},
"getRecordByOrderRecordIdOrderByCreateTimeUsingPOST": {
"des": "getRecordByOrderRecordIdOrderByCreateTime",
"value": "/inner/getRecordByOrderRecordIdOrderByCreateTime"
},
"matchRuleUsingPOST": {
"des": "matchRule",
"value": "/inner/matchRule"
},
"getRectPointsUsingPOST": {
"des": "getRectPoints",
"value": "/inner/qualityQueryByOrderRecordId"
},
"getRejectedDetailUsingPOST": {
"des": "getRejectedDetail",
"value": "/inner/qualityRejectedDetail"
},
"queryByOrderRecordIdUsingPOST": {
"des": "queryByOrderRecordId",
"value": "/inner/queryByOrderRecordId"
},
"getAuditAllListUsingPOST": {
"des": "全部订单列表",
"value": "/quality/audit/all/list"
},
"getAuditCanListUsingPOST": {
"des": "可质检列表",
"value": "/quality/audit/can/list"
},
"comparisonConclusionUsingPOST": {
"des": "comparisonConclusion",
"value": "/quality/audit/compare"
},
"confirmAuditUsingPOST": {
"des": "复核质检同意接口",
"value": "/quality/audit/confirm"
},
"resetUsingGET": {
"des": "reset",
"value": "/quality/audit/dataTrans/reset"
},
"transRulesUsingGET": {
"des": "transRules",
"value": "/quality/audit/dataTrans/transRules"
},
"transStatisticsUsingGET": {
"des": "transStatistics",
"value": "/quality/audit/dataTrans/transStatistics"
},
"infoDetailUsingPOST": {
"des": "获取质检详情",
"value": "/quality/audit/detail"
},
"addProportionRuleUsingPOST": {
"des": "质检比列列表:新增规则",
"value": "/quality/audit/proportion/config/add/rule"
},
"deleteProportionRuleUsingPOST": {
"des": "质检比列列表:删除规则",
"value": "/quality/audit/proportion/config/delete/rule"
},
"getProportionRuleDetailUsingPOST": {
"des": "提供质检比例规则详情",
"value": "/quality/audit/proportion/config/detail"
},
"proportionListUsingPOST": {
"des": "提供质检比例规则列表",
"value": "/quality/audit/proportion/config/list"
},
"modifyProportionRuleUsingPOST": {
"des": "质检比列列表:修改规则",
"value": "/quality/audit/proportion/config/modify/rule"
},
"getAuditHistoriesUsingPOST": {
"des": "审核历史记录",
"value": "/quality/audit/record/history"
},
"submitAuditUsingPOST": {
"des": "待整改点提交",
"value": "/quality/audit/submit"
},
"addRuleUsingPOST": {
"des": "新增规则",
"value": "/quality/audit/v2/proportion/config/add/rule"
},
"deleteRuleUsingPOST": {
"des": "删除规则",
"value": "/quality/audit/v2/proportion/config/delete/rule"
},
"getConfigDetailV2UsingGET": {
"des": "根据当前规则,获取规则详情(编辑/查看时)",
"value": "/quality/audit/v2/proportion/config/detail/{ruleId}"
},
"getRuleListUsingPOST": {
"des": "提供质检比例规则列表",
"value": "/quality/audit/v2/proportion/config/list"
},
"modifyRuleUsingPOST": {
"des": "修改规则",
"value": "/quality/audit/v2/proportion/config/modify/rule"
},
"createSubmitQualityAuditInfoUnloginUsingPOST": {
"des": "createSubmitQualityAuditInfoUnlogin",
"value": "/quality/audit/v2/quality/audit/record-unlogin"
}
},
"sys": {
"addAppUserUsingPOST": {
"des": "增加app账号",
"value": "/account/add/app/user"
},
"addUserUsingPOST": {
"des": "添加web账号",
"value": "/account/addUser"
},
"getUserInfoUsingPOST": {
"des": "根据用户名获取用户信息",
"value": "/account/getUserInfo"
},
"importAppUserUsingPOST": {
"des": "导入app账号",
"value": "/account/import/app/user"
},
"modifyUserUsingPOST": {
"des": "web端修改账号",
"value": "/account/modifyUser"
},
"appManageUsingPOST": {
"des": "app账户信息查询",
"value": "/app/account/manage"
},
"checkValidateCodeUsingPOST": {
"des": "校验验证码",
"value": "/checkValidateCode"
},
"codeLoginUsingPOST": {
"des": "手机验证码登录",
"value": "/codeLogin"
},
"sendValidCodeEmailUsingPOST": {
"des": "发送邮箱验证码",
"value": "/email/sendValidCode"
},
"validEmailCodeUsingPOST": {
"des": "验证邮箱验证码",
"value": "/email/validEmailCode"
},
"accountActivateUsingPOST": {
"des": "accountActivate",
"value": "/inner/account/activate"
},
"appUpdateUsingPOST": {
"des": "appUpdate",
"value": "/inner/app/version/update"
},
"createUserUsingPOST": {
"des": "createUser",
"value": "/inner/createUser"
},
"loginUsingPOST": {
"des": "login",
"value": "/inner/login"
},
"logoutUsingPOST": {
"des": "logout",
"value": "/inner/logout"
},
"getLeafOrgesUsingPOST": {
"des": "getLeafOrges",
"value": "/inner/org/getLeafOrgs"
},
"getOrgListUsingPOST": {
"des": "getOrgList",
"value": "/inner/org/getList"
},
"getOrgTreeUsingPOST": {
"des": "getOrgTree",
"value": "/inner/org/getTree"
},
"getOrgTreeRootUsingPOST": {
"des": "getOrgTreeRoot",
"value": "/inner/org/getTreeRoot"
},
"queryOrganizationLevelVOUsingPOST": {
"des": "queryOrganizationLevelVO",
"value": "/inner/organization/all"
},
"getAllOrgIdsUsingPOST": {
"des": "getAllOrgIds",
"value": "/inner/organization/allorg/ids"
},
"getAllOrganizationOrderLevelUsingPOST": {
"des": "getAllOrganizationOrderLevel",
"value": "/inner/organization/allorg/orderlevel"
},
"queryOrganizationLevelVOUsingPOST_1": {
"des": "queryOrganizationLevelVO",
"value": "/inner/organization/bybranchId"
},
"queryOrganizationByCodeUsingPOST": {
"des": "queryOrganizationByCode",
"value": "/inner/organization/bycode"
},
"queryOrganizationByNameUsingPOST": {
"des": "queryOrganizationByName",
"value": "/inner/organization/byname"
},
"queryOrganizationByIdUsingPOST": {
"des": "queryOrganizationById",
"value": "/inner/organization/byoid"
},
"getChildrenOrgIdsUsingPOST": {
"des": "getChildrenOrgIds",
"value": "/inner/organization/children/orgids"
},
"fetchByOrgListUsingPOST": {
"des": "fetchByOrgList",
"value": "/inner/organization/orglist"
},
"queryOrgIdAndOrgCodeMapUsingPOST": {
"des": "queryOrgIdAndOrgCodeMap",
"value": "/inner/organization/queryOrgIdAndOrgCodeMap"
},
"getSubOrgIdsByBranchIdListUsingPOST": {
"des": "getSubOrgIdsByBranchIdList",
"value": "/inner/organization/sub/orglist"
},
"updateStandardNumByAddCommonProductUsingPOST": {
"des": "updateStandardNumByAddCommonProduct",
"value": "/inner/organization/update/num"
},
"updateStandardNumByCommonProductPhaseChangeUsingPOST": {
"des": "updateStandardNumByCommonProductPhaseChange",
"value": "/inner/organization/update/num/marketid"
},
"updateNotStandardNumByProductPhaseChangeUsingPOST": {
"des": "updateNotStandardNumByProductPhaseChange",
"value": "/inner/organization/update/num/marketid/list"
},
"queryProfessionListUsingPOST": {
"des": "职业信息集合查询",
"value": "/inner/profession/list"
},
"queryOrganizationsByIdsUsingPOST": {
"des": "queryOrganizationsByIds",
"value": "/inner/queryOrganizationsByIds"
},
"queryUserDoByNameUsingPOST": {
"des": "queryUserDoByName",
"value": "/inner/queryUserDoByName"
},
"queryUserDoBySingleNameUsingPOST": {
"des": "queryUserDoBySingleName",
"value": "/inner/queryUserDoBySingleName"
},
"remoteAppUpdateUsingPOST": {
"des": "remoteAppUpdate",
"value": "/inner/remote/app/version/update"
},
"loginUsingPOST_1": {
"des": "login",
"value": "/inner/remote/login"
},
"forgPasswordUsingPOST": {
"des": "forgPassword",
"value": "/inner/reset/password"
},
"sendSmsUsingPOST": {
"des": "sendSms",
"value": "/inner/send/sms"
},
"queryUserDoByIdUsingPOST": {
"des": "queryUserDoById",
"value": "/inner/user"
},
"fetchReportAcDataVOUsingPOST": {
"des": "fetchReportAcDataVO",
"value": "/inner/user/fetchReportAcDataVO"
},
"queryStateByUserIdUsingPOST": {
"des": "queryStateByUserId",
"value": "/inner/user/sate"
},
"userAuditScopeListByIdUsingPOST": {
"des": "userAuditScopeListById",
"value": "/inner/userAuditScopeListById"
},
"validateSmsUsingPOST": {
"des": "validateSms",
"value": "/inner/validate/sms"
},
"addNewCityForTeamUsingPOST": {
"des": "addNewCityForTeam",
"value": "/org/addNewCityForTeam"
},
"createOrUpdateQualityTeamUsingPOST": {
"des": "createOrUpdateQualityTeam",
"value": "/org/createOrUpdateQualityTeam"
},
"getQualityDetailByIdUsingPOST": {
"des": "getQualityDetailById",
"value": "/org/getQualityDetailById"
},
"getQualityTeamListUsingPOST": {
"des": "getQualityTeamList",
"value": "/org/getQualityTeamList"
},
"getQualityTeamOrgUsingPOST": {
"des": "getQualityTeamOrg",
"value": "/org/getQualityTeamOrg"
},
"getTeamOrgByTeamIdUsingPOST": {
"des": "getTeamOrgByTeamId",
"value": "/org/getTeamOrgByTeamId"
},
"switcherAreaUsingPOST": {
"des": "switcherArea",
"value": "/organization/area/switcher"
},
"queryAllChannelUsingPOST": {
"des": "查询所有的渠道",
"value": "/organization/channel"
},
"organizationListUsingPOST": {
"des": "机构列表",
"value": "/organization/list"
},
"switcherPositioningUsingPOST": {
"des": "switcherPositioning",
"value": "/organization/positioning/switcher"
},
"querySpeechTakeEffectConditionUsingPOST": {
"des": "querySpeechTakeEffectCondition",
"value": "/organization/query"
},
"queryBranchUsingPOST": {
"des": "查询全部分公司",
"value": "/organization/query/branch"
},
"querySubBranchUsingPOST": {
"des": "查询属于某个分公司的全部支公司",
"value": "/organization/query/sub/branch"
},
"switcherRemoteUsingPOST": {
"des": "机构是否支持远程-状态更改",
"value": "/organization/remote/switcher"
},
"switcherSpeechUsingPOST": {
"des": "切换语音播报开关",
"value": "/organization/speech/switcher"
},
"categoryListUsingPOST": {
"des": "categoryList",
"value": "/organization/superior/list"
},
"orderCancelUsingPOST": {
"des": "组织机构树",
"value": "/organization/tree"
},
"queryUserUsingPOST": {
"des": "queryUser",
"value": "/query/user"
},
"sendEmailUsingPOST": {
"des": "发送邮件",
"value": "/send/email"
},
"unbindUsingPOST": {
"des": "unbind",
"value": "/unbind"
},
"updateUserUsingPOST": {
"des": "updateUser",
"value": "/update/user"
},
"editHasScopeUsingPOST": {
"des": "editHasScope",
"value": "/user/edit"
},
"editDetailUsingPOST": {
"des": "editDetail",
"value": "/user/edit/detail"
},
"editRoleUsingPOST": {
"des": "editRole",
"value": "/user/edit/role"
},
"editStateUsingPOST": {
"des": "editState",
"value": "/user/edit/state"
},
"webManageUsingPOST": {
"des": "web账户信息查询",
"value": "/web/account/manage"
},
"forgetPassword2UsingPOST": {
"des": "web端忘记密码",
"value": "/web/forgetPassword"
},
"webLoginUsingPOST": {
"des": "web登录",
"value": "/web/login"
},
"getWebLoginCommandUsingPOST": {
"des": "getWebLoginCommand",
"value": "/web/login/command"
},
"webModifyUsernameUsingPOST": {
"des": "Web端修改密码",
"value": "/web/modify/username"
}
}
}
\ No newline at end of file
File mode changed
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:05
# @Author : 付孟奇
from util.HandleJenkins import config
from util.log import logger
'''
根据项目参数获取对应域名
1、环境
2、项目名称
'''
class VendorHost:
def __init__(self):
self.env = config['env']
self.vendor = config['pro']
# 获取项目域名
def get_api_url(self):
logger.info(str(self.vendor) + '的' + str(self.env) + '环境域名为:' + str(self.vendorHostList[self.vendor][self.env]))
return self.vendorHostList[self.vendor][self.env]
# 项目域名
vendorHostList = {
'中美大都会': {'staging': '1234', 'beta': '1234', 'vdr': 'https://vdr-staging.situdata.com/'},
'瑞泰': {'staging': 'https://staging-oldmutual-life-video.situdata.com/'},
'德华安顾': {'staging': '1234', 'beta': '1234', 'vdr': 'https://vdr-ergolife-staging.situdata.com/'}
}
vendor_host = VendorHost().get_api_url()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/17 下午5:19
# @Author : 付孟奇
# app登陆方式区别,1无统一登陆,2统一登陆
app_login_1 = ['中美大都会', '瑞泰']
app_login_2 = ['德华安顾', 'other']
# web登陆方式区分
web_login_1 = ['中美大都会', '瑞泰', '德华安顾']
# web登陆是否有忘记密码
web_login_forget_pwd = ['中美大都会', '瑞泰', '德华安顾']
# 生成订单,1新契约纸质入件,2保全纸质入件
add_order_type_1 = ['中美大都会', '瑞泰', '德华安顾']
add_order_type_2 = ['德华安顾']
# redis连接方式区分
db_40 = ['中美大都会']
db_45 = ['瑞泰', '德华安顾']
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:06
# @Author : 付孟奇
import os
from util.HandleJenkins import config
'''
记录项目所有文件路径
'''
# 项目根路径
base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# case保存地址
case_path = os.path.join(base_path, 'case')
# 公共参数文件
global_path = os.path.join(base_path, 'config/global_param.json')
# 公共临时文件
temp_path = os.path.join(base_path, 'config/temp.json')
# API接口存储路径
api_path = os.path.join(base_path, 'config/swaggerApi.json')
# case执行顺序说明文件
case_list_path = os.path.join(base_path, 'config/' + config['pro'] + '-config.json')
# 订单生成参数文件
add_order_type_1_path = os.path.join(base_path, 'data/order/add_order_type_1.json')
add_order_type_2_path = os.path.join(base_path, 'data/order/add_order_type_2.json')
order_mp4_path = os.path.join(base_path, 'data/order/' + config['pro'] + '-mp4.json')
order_zip_path = os.path.join(base_path, 'data/order/' + config['pro'] + '.zip')
order_idCard_path = os.path.join(base_path, 'data/order/身份证正面.jpg')
# 文件参数
file_pdf_path = os.path.join(base_path, 'data/file/apitest.pdf')
# 数据源Excel存储路径
excel_path = os.path.join(base_path, 'data/excel')
# 日志路径
# log_path = os.path.join(base_path, 'log/{}.log'.format(time.strftime('%Y-%m-%s')))
log_path = os.path.join(base_path, 'log/api.log')
# 生成报告文件路径
report_path = os.path.join(base_path, 'report/report.html')
{
"WebOrganizationGetTree": "True",
"WebAccountAddWebUser": "True",
"WebAccountManage": "True",
"WebAccountGetUserInfo": "True",
"WebAccountModifyUser": "True",
"WebAccountUserEditState": "True",
"WebAccountModifyPassword": "True",
"WebEmailSend": "True",
"WebEmailValidCode": "True",
"WebForgetPassword": "True",
"WebLogin": "True",
"WebProductTypeList": "True",
"WebChannelList": "True",
"WebProductCreat": "True",
"WebProductList": "True",
"WebProductUpdate": "True",
"WebAdditionalTemplate": "True",
"WebAdditionalList": "True",
"WebAdditionalGet": "True",
"WebAdditionalEdit": "True",
"WebAdditionalDel": "True",
"WebOrganizationQuery": "True",
"WebOrganizationList": "True",
"WebOrganizationQueryBranch": "True",
"WebOrganizationQuerySubBranch": "True",
"WebPopupFileList": "True",
"WebFileProductFuzzy": "True",
"WebFileUpload": "True",
"WebFileList": "True",
"WebFileDetail": "True",
"WebFileUpdate": "True",
"WebFileDelete": "True",
"WebAccountAddAPPUser": "True",
"WebAccountAppManage": "True",
"WebAccountImportAppUser": "True",
"WebSpeechTemplateConditionList": "True",
"WebSpeechTemplateCreatRule": "True",
"WebSpeechTemplateQueryList": "True",
"WebSpeechTemplateVariables": "True",
"WebSpeechTemplateOperators":"True",
"WebSpeechTemplateGetSpeech": "True",
"WebSpeechTemplatePhaseCreat": "True",
"WebSpeechTemplateUpdateStatus": "True",
"WebSpeechTemplateCopySpeech": "True",
"WebQualityAuditProportionConfigRuleAdd": "True",
"WebQualityAuditProportionConfigList": "True",
"WebQualityAuditProportionConfigDetail":"True",
"WebQualityAuditProportionConfigRuleModify": "True",
"SystemSendSms": "True",
"SystemResetPassword": "True",
"AppAuthLogin": "True",
"AppVersionUpdate": "True",
"AppHomeList": "True",
"AppListCount": "True",
"AppProductList": "True",
"AppOrderAdd": "True",
"AppOrderDetail": "True",
"AppFileList": "True",
"AppPhaseV3": "True",
"AppTtsV3": "True",
"AppOrderFace": "True",
"AppAuthSts": "True",
"AppOrderSubmit": "True",
"WebQualityAuditCanList": "True",
"WebQualityAuditDetail":"True",
"WebQualityAuditSubmit": "True",
"WebQualityAuditRecordHistory": "True",
"AppQualityAuditRejectedDetail": "True",
"WebOrderPhaseValidateV3": "False",
"WebOrderReportDown": "True",
"WebQualityAuditProportionConfigRuleDelete": "True",
"WebAllDelete": "False"
}
\ No newline at end of file
{
"WebOrganizationGetTree": "True",
"WebAccountAddWebUser": "True",
"WebAccountManage": "True",
"WebAccountGetUserInfo": "True",
"WebAccountModifyUser": "True",
"WebAccountUserEditState": "True",
"WebAccountModifyPassword": "True",
"WebEmailSend": "True",
"WebEmailValidCode": "True",
"WebForgetPassword": "True",
"WebLogin": "True",
"WebProductTypeList": "True",
"WebChannelList": "True",
"WebProductCreat": "True",
"WebProductList": "True",
"WebProductUpdate": "True",
"WebAdditionalTemplate": "True",
"WebAdditionalList": "True",
"WebAdditionalGet": "True",
"WebAdditionalEdit": "True",
"WebAdditionalDel": "True",
"WebOrganizationQuery": "True",
"WebOrganizationList": "True",
"WebOrganizationQueryBranch": "True",
"WebOrganizationQuerySubBranch": "True",
"WebOrganizationPositingSwitcher": "True",
"WebPopupFileList": "True",
"WebFileProductFuzzy": "False",
"WebFileUpload": "False",
"WebFileList": "False",
"WebFileDetail": "False",
"WebFileUpdate": "False",
"WebFileDelete": "False",
"WebAccountAddAPPUser": "False",
"WebAccountAppManage": "True",
"WebAccountImportAppUser": "True",
"WebSpeechTemplateConditionList": "True",
"WebSpeechTemplateCreatRule": "True",
"WebSpeechTemplateQueryList": "True",
"WebSpeechTemplateVariables": "True",
"WebSpeechTemplateOperators":"True",
"WebSpeechTemplateGetSpeech": "True",
"WebSpeechTemplatePhaseCreat": "True",
"WebSpeechTemplateUpdateStatus": "True",
"WebSpeechTemplateCopySpeech": "True",
"WebQualityAuditProportionConfigRuleAdd": "True",
"WebQualityAuditProportionConfigList": "True",
"WebQualityAuditProportionConfigDetail":"True",
"WebQualityAuditProportionConfigRuleModify": "True",
"SystemSendSms": "False",
"SystemResetPassword": "False",
"AppAuthLogin": "True",
"AppVersionUpdate": "True",
"AppHomeList": "True",
"AppListCount": "True",
"AppOrderQuotaDetail": "True",
"AppProductList": "True",
"AppOrderAdd": "True",
"AppOrderAddQuota": "True",
"AppOrderDetail": "True",
"AppFileList": "True",
"AppPhaseV3": "True",
"AppTtsV3": "True",
"AppOrderFace": "True",
"AppAuthSts": "True",
"AppOrderSubmit": "True",
"WebQualityAuditCanList": "True",
"WebQualityAuditDetail":"True",
"WebQualityAuditSubmit": "True",
"WebQualityAuditRecordHistory": "True",
"AppQualityAuditRejectedDetail": "True",
"WebOrderPhaseValidateV3": "False",
"WebOrderReportDown": "True",
"WebQualityAuditProportionConfigRuleDelete": "True",
"WebAllDelete": "False"
}
\ No newline at end of file
{
"WebOrganizationGetTree": "True",
"WebAccountAddWebUser": "True",
"WebAccountManage": "True",
"WebAccountGetUserInfo": "True",
"WebAccountModifyUser": "True",
"WebAccountUserEditState": "True",
"WebAccountModifyPassword": "True",
"WebEmailSend": "True",
"WebEmailValidCode": "True",
"WebForgetPassword": "True",
"WebLogin": "True",
"WebProductTypeList": "True",
"WebChannelList": "True",
"WebProductCreat": "True",
"WebProductList": "True",
"WebProductUpdate": "True",
"WebAdditionalTemplate": "True",
"WebAdditionalList": "True",
"WebAdditionalGet": "True",
"WebAdditionalEdit": "True",
"WebAdditionalDel": "True",
"WebOrganizationQuery": "True",
"WebOrganizationList": "True",
"WebOrganizationQueryBranch": "True",
"WebOrganizationQuerySubBranch": "True",
"WebPopupFileList": "True",
"WebFileProductFuzzy": "True",
"WebFileUpload": "True",
"WebFileList": "True",
"WebFileDetail": "True",
"WebFileUpdate": "True",
"WebFileDelete": "True",
"WebAccountAddAPPUser": "True",
"WebAccountAppManage": "True",
"WebAccountImportAppUser": "True",
"WebSpeechTemplateConditionList": "True",
"WebSpeechTemplateCreatRule": "True",
"WebSpeechTemplateQueryList": "True",
"WebSpeechTemplateVariables": "True",
"WebSpeechTemplateOperators":"True",
"WebSpeechTemplateGetSpeech": "True",
"WebSpeechTemplatePhaseCreat": "True",
"WebSpeechTemplateUpdateStatus": "True",
"WebSpeechTemplateCopySpeech": "True",
"WebQualityAuditProportionConfigRuleAdd": "True",
"WebQualityAuditProportionConfigList": "True",
"WebQualityAuditProportionConfigDetail":"True",
"WebQualityAuditProportionConfigRuleModify": "True",
"SystemSendSms": "True",
"SystemResetPassword": "True",
"AppAuthLogin": "True",
"AppVersionUpdate": "True",
"AppHomeList": "True",
"AppListCount": "True",
"AppProductList": "True",
"AppOrderAdd": "True",
"AppOrderDetail": "True",
"AppFileList": "True",
"AppPhaseV3": "True",
"AppTtsV3": "True",
"AppOrderFace": "True",
"AppAuthSts": "True",
"AppOrderSubmit": "True",
"WebQualityAuditCanList": "True",
"WebQualityAuditDetail":"True",
"WebQualityAuditSubmit": "True",
"WebQualityAuditRecordHistory": "True",
"AppQualityAuditRejectedDetail": "True",
"WebOrderPhaseValidateV3": "False",
"WebOrderReportDown": "True",
"WebQualityAuditProportionConfigRuleDelete": "True",
"WebAllDelete": "True"
}
\ No newline at end of file
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
{
"订单基本信息": {
"销售渠道": "顾销渠道",
"双录创建日期": "2021-08-18",
"保单类型": "非自保件",
"机构名称": "北京",
"投保单号": "apitest"
},
"主险信息": [{
"首期缴费金额": "12343",
"产品种类": "主险",
"缴费期限": "1年",
"产品类型": "分红险",
"产品名称": "都会传家 非吸烟体(2018)终身寿险(分红型)",
"缴费方式": "月缴",
"产品代码": "PWL04AQ",
"保险期限": "1年",
"被保人": [
"自动化测试"]
}],
"被保人信息": [{
"姓名": "自动化测试",
"证件类型": "护照",
"证件号码": "123456",
"职业": "内勤人员",
"居住地址": "地球",
"性别": "男",
"出生日期": "2000-01-01",
"被保人是投保人的": "本人",
"手机号码": "12345678901"
}],
"投保人信息": {
"姓名": "自动化测试",
"证件类型": "护照",
"证件号码": "123456",
"职业": "内勤人员",
"居住地址": "地球",
"性别": "男",
"出生日期": "2000-01-01",
"手机号码": "12345678901"
},
"附加险信息": [{
"首期缴费金额": "12345",
"产品种类": "附加险",
"缴费期限": "1年",
"产品类型": "人寿保险",
"产品名称": "附加都会卫士(2019)定期寿险",
"缴费方式": "月缴",
"产品代码": "FIR04AA",
"保险期限": "1年",
"被保人": [
"自动化测试"]
}]
}
\ No newline at end of file
{
"订单基本信息": {
"保单号": "202106002448538",
"保单类型": "非自保件"
},
"投保人信息": {
"姓名": "韩超",
"证件号码": "110101199003077694",
"出生日期": "1990-03-07",
"证件类型": "身份证",
"性别": "男",
"投保人是被保人的": "父亲"
},
"被保人信息": [
{
"姓名": "哦哦",
"监护人姓名": "",
"证件号码": "110101200803071616",
"出生日期": "2008-03-07",
"证件类型": "身份证",
"性别": "男"
}
],
"保险信息": [
{
"保险期限": "1年",
"被保人": [
"哦哦"
],
"附加险": [],
"产品名称": "德华安顾奥特保重大疾病保险(2021版)",
"每期缴费金额": 3.4,
"缴费期限": "1年",
"缴费方式": "年缴"
}
],
"taskId": "a1956529bc9d4f60bf0af257a9076444"
}
\ No newline at end of file
{
"code": 0,
"msg": "OK",
"success": true,
"result": {
"recordBeginTime": "",
"needTts": 1,
"orderRecordId": 11546,
"recordingTime": 0,
"bigPhaseList": [
{
"bigPhaseBeginTime": 0,
"bigPhaseEndTime": 0,
"osbpId": 184588,
"bigPhaseNum": 1,
"bigPhaseName": "大环节",
"littlePhaseList": [
{
"oslpId": 368539,
"osbpId": 184588,
"littlePhaseMp3Name": "368539",
"littlePhaseNum": 1,
"littlePhaseType": 2,
"littlePhaseFileType": 0,
"littlePhaseIdCardType": 0,
"littlePhaseIdCardOcrSwitch": 0,
"littlePhaseTitle": "陈述环节标题",
"littlePhaseTtsContent": "陈述",
"littlePhaseAnswer": "",
"littlePhaseImageNameArray": "",
"littlePhaseResultCode": 0,
"littlePhaseResultMsg": "",
"littlePhaseBeginTime": 0,
"littlePhaseEndTime": 0,
"productCode": "PWL04AQ",
"insureSelf": 0,
"littlePhaseTTsFinishTime": 0,
"passedByMachine": 0,
"pdfFileName": "",
"docPrdCode": "",
"filePopup": 0,
"userRole": 0,
"littlePhaseFileInfo": null,
"name": "",
"idCard": "",
"idCardType": "",
"ipno": "",
"remoteSignatureMethod": 0,
"offlineSignatureMethod": 0,
"remoteSignatureType": 0,
"remoteSignaturePrompt": "",
"remoteSignatureObject": 0,
"remoteSignatureRiskPrompt": "",
"offlineSignatureType": 0,
"offlineSignaturePrompt": "",
"offlineSignatureObject": 0,
"offlineSignatureRiskPrompt": "",
"remoteVerificationMethod": 0,
"offlineVerificationMethod": 0
},
{
"oslpId": 368540,
"osbpId": 184588,
"littlePhaseMp3Name": "368540",
"littlePhaseNum": 2,
"littlePhaseType": 3,
"littlePhaseFileType": 3,
"littlePhaseIdCardType": 0,
"littlePhaseIdCardOcrSwitch": 0,
"littlePhaseTitle": "文件出示",
"littlePhaseTtsContent": "文件出示",
"littlePhaseAnswer": "",
"littlePhaseImageNameArray": "",
"littlePhaseResultCode": 0,
"littlePhaseResultMsg": "",
"littlePhaseBeginTime": 0,
"littlePhaseEndTime": 0,
"productCode": "PWL04AQ",
"insureSelf": 0,
"littlePhaseTTsFinishTime": 0,
"passedByMachine": 0,
"pdfFileName": "基于深度学习的图像服务系统接口文档基础版(1).pdf",
"docPrdCode": "PWL04AQ",
"filePopup": 1,
"userRole": 0,
"littlePhaseFileInfo": null,
"name": "",
"idCard": "",
"idCardType": "",
"ipno": "",
"remoteSignatureMethod": 0,
"offlineSignatureMethod": 0,
"remoteSignatureType": 0,
"remoteSignaturePrompt": "",
"remoteSignatureObject": 0,
"remoteSignatureRiskPrompt": "",
"offlineSignatureType": 0,
"offlineSignaturePrompt": "",
"offlineSignatureObject": 0,
"offlineSignatureRiskPrompt": "",
"remoteVerificationMethod": 0,
"offlineVerificationMethod": 0
},
{
"oslpId": 368541,
"osbpId": 184588,
"littlePhaseMp3Name": "368541",
"littlePhaseNum": 3,
"littlePhaseType": 4,
"littlePhaseFileType": 0,
"littlePhaseIdCardType": 1,
"littlePhaseIdCardOcrSwitch": 2,
"littlePhaseTitle": "证件出示",
"littlePhaseTtsContent": "证件出示",
"littlePhaseAnswer": "",
"littlePhaseImageNameArray": "",
"littlePhaseResultCode": 0,
"littlePhaseResultMsg": "",
"littlePhaseBeginTime": 0,
"littlePhaseEndTime": 0,
"productCode": "PWL04AQ",
"insureSelf": 0,
"littlePhaseTTsFinishTime": 0,
"passedByMachine": 0,
"pdfFileName": "",
"docPrdCode": "",
"filePopup": 0,
"userRole": 0,
"littlePhaseFileInfo": null,
"name": "",
"idCard": "",
"idCardType": "",
"ipno": "",
"remoteSignatureMethod": 0,
"offlineSignatureMethod": 0,
"remoteSignatureType": 0,
"remoteSignaturePrompt": "",
"remoteSignatureObject": 0,
"remoteSignatureRiskPrompt": "",
"offlineSignatureType": 0,
"offlineSignaturePrompt": "",
"offlineSignatureObject": 0,
"offlineSignatureRiskPrompt": "",
"remoteVerificationMethod": 0,
"offlineVerificationMethod": 0
},
{
"oslpId": 368542,
"osbpId": 184588,
"littlePhaseMp3Name": "368542",
"littlePhaseNum": 4,
"littlePhaseType": 8,
"littlePhaseFileType": 0,
"littlePhaseIdCardType": 0,
"littlePhaseIdCardOcrSwitch": 0,
"littlePhaseTitle": "签字环节",
"littlePhaseTtsContent": "签字环节",
"littlePhaseAnswer": "",
"littlePhaseImageNameArray": "",
"littlePhaseResultCode": 0,
"littlePhaseResultMsg": "",
"littlePhaseBeginTime": 0,
"littlePhaseEndTime": 0,
"productCode": "PWL04AQ",
"insureSelf": 0,
"littlePhaseTTsFinishTime": 0,
"passedByMachine": 0,
"pdfFileName": "",
"docPrdCode": "",
"filePopup": 0,
"userRole": 0,
"littlePhaseFileInfo": null,
"name": "",
"idCard": "",
"idCardType": "",
"ipno": "",
"remoteSignatureMethod": 0,
"offlineSignatureMethod": 0,
"remoteSignatureType": 0,
"remoteSignaturePrompt": "",
"remoteSignatureObject": 0,
"remoteSignatureRiskPrompt": "",
"offlineSignatureType": 0,
"offlineSignaturePrompt": "",
"offlineSignatureObject": 0,
"offlineSignatureRiskPrompt": "",
"remoteVerificationMethod": 0,
"offlineVerificationMethod": 0
},
{
"oslpId": 368543,
"osbpId": 184588,
"littlePhaseMp3Name": "368543",
"littlePhaseNum": 5,
"littlePhaseType": 6,
"littlePhaseFileType": 0,
"littlePhaseIdCardType": 0,
"littlePhaseIdCardOcrSwitch": 0,
"littlePhaseTitle": "人脸识别环节",
"littlePhaseTtsContent": "人脸识别环节",
"littlePhaseAnswer": "",
"littlePhaseImageNameArray": "",
"littlePhaseResultCode": 0,
"littlePhaseResultMsg": "",
"littlePhaseBeginTime": 0,
"littlePhaseEndTime": 0,
"productCode": "PWL04AQ",
"insureSelf": 0,
"littlePhaseTTsFinishTime": 0,
"passedByMachine": 0,
"pdfFileName": "",
"docPrdCode": "",
"filePopup": 0,
"userRole": 0,
"littlePhaseFileInfo": null,
"name": "",
"idCard": "",
"idCardType": "",
"ipno": "",
"remoteSignatureMethod": 0,
"offlineSignatureMethod": 0,
"remoteSignatureType": 0,
"remoteSignaturePrompt": "",
"remoteSignatureObject": 0,
"remoteSignatureRiskPrompt": "",
"offlineSignatureType": 0,
"offlineSignaturePrompt": "",
"offlineSignatureObject": 0,
"offlineSignatureRiskPrompt": "",
"remoteVerificationMethod": 0,
"offlineVerificationMethod": 0
}
]
}
],
"twoPersonDetectList": [],
"insureSelf": 2
}
}
\ No newline at end of file
No preview for this file type
{
"code": 0,
"msg": "OK",
"success": true,
"result": {
"recordBeginTime": "",
"needTts": 1,
"orderRecordId": 11546,
"recordingTime": 0,
"bigPhaseList": [
{
"bigPhaseBeginTime": 0,
"bigPhaseEndTime": 0,
"osbpId": 184588,
"bigPhaseNum": 1,
"bigPhaseName": "大环节",
"littlePhaseList": [
{
"oslpId": 368539,
"osbpId": 184588,
"littlePhaseMp3Name": "368539",
"littlePhaseNum": 1,
"littlePhaseType": 2,
"littlePhaseFileType": 0,
"littlePhaseIdCardType": 0,
"littlePhaseIdCardOcrSwitch": 0,
"littlePhaseTitle": "陈述环节标题",
"littlePhaseTtsContent": "陈述",
"littlePhaseAnswer": "",
"littlePhaseImageNameArray": "",
"littlePhaseResultCode": 0,
"littlePhaseResultMsg": "",
"littlePhaseBeginTime": 0,
"littlePhaseEndTime": 0,
"productCode": "PWL04AQ",
"insureSelf": 0,
"littlePhaseTTsFinishTime": 0,
"passedByMachine": 0,
"pdfFileName": "",
"docPrdCode": "",
"filePopup": 0,
"userRole": 0,
"littlePhaseFileInfo": null,
"name": "",
"idCard": "",
"idCardType": "",
"ipno": "",
"remoteSignatureMethod": 0,
"offlineSignatureMethod": 0,
"remoteSignatureType": 0,
"remoteSignaturePrompt": "",
"remoteSignatureObject": 0,
"remoteSignatureRiskPrompt": "",
"offlineSignatureType": 0,
"offlineSignaturePrompt": "",
"offlineSignatureObject": 0,
"offlineSignatureRiskPrompt": "",
"remoteVerificationMethod": 0,
"offlineVerificationMethod": 0
},
{
"oslpId": 368540,
"osbpId": 184588,
"littlePhaseMp3Name": "368540",
"littlePhaseNum": 2,
"littlePhaseType": 3,
"littlePhaseFileType": 3,
"littlePhaseIdCardType": 0,
"littlePhaseIdCardOcrSwitch": 0,
"littlePhaseTitle": "文件出示",
"littlePhaseTtsContent": "文件出示",
"littlePhaseAnswer": "",
"littlePhaseImageNameArray": "",
"littlePhaseResultCode": 0,
"littlePhaseResultMsg": "",
"littlePhaseBeginTime": 0,
"littlePhaseEndTime": 0,
"productCode": "PWL04AQ",
"insureSelf": 0,
"littlePhaseTTsFinishTime": 0,
"passedByMachine": 0,
"pdfFileName": "基于深度学习的图像服务系统接口文档基础版(1).pdf",
"docPrdCode": "PWL04AQ",
"filePopup": 1,
"userRole": 0,
"littlePhaseFileInfo": null,
"name": "",
"idCard": "",
"idCardType": "",
"ipno": "",
"remoteSignatureMethod": 0,
"offlineSignatureMethod": 0,
"remoteSignatureType": 0,
"remoteSignaturePrompt": "",
"remoteSignatureObject": 0,
"remoteSignatureRiskPrompt": "",
"offlineSignatureType": 0,
"offlineSignaturePrompt": "",
"offlineSignatureObject": 0,
"offlineSignatureRiskPrompt": "",
"remoteVerificationMethod": 0,
"offlineVerificationMethod": 0
},
{
"oslpId": 368541,
"osbpId": 184588,
"littlePhaseMp3Name": "368541",
"littlePhaseNum": 3,
"littlePhaseType": 4,
"littlePhaseFileType": 0,
"littlePhaseIdCardType": 1,
"littlePhaseIdCardOcrSwitch": 2,
"littlePhaseTitle": "证件出示",
"littlePhaseTtsContent": "证件出示",
"littlePhaseAnswer": "",
"littlePhaseImageNameArray": "",
"littlePhaseResultCode": 0,
"littlePhaseResultMsg": "",
"littlePhaseBeginTime": 0,
"littlePhaseEndTime": 0,
"productCode": "PWL04AQ",
"insureSelf": 0,
"littlePhaseTTsFinishTime": 0,
"passedByMachine": 0,
"pdfFileName": "",
"docPrdCode": "",
"filePopup": 0,
"userRole": 0,
"littlePhaseFileInfo": null,
"name": "",
"idCard": "",
"idCardType": "",
"ipno": "",
"remoteSignatureMethod": 0,
"offlineSignatureMethod": 0,
"remoteSignatureType": 0,
"remoteSignaturePrompt": "",
"remoteSignatureObject": 0,
"remoteSignatureRiskPrompt": "",
"offlineSignatureType": 0,
"offlineSignaturePrompt": "",
"offlineSignatureObject": 0,
"offlineSignatureRiskPrompt": "",
"remoteVerificationMethod": 0,
"offlineVerificationMethod": 0
},
{
"oslpId": 368542,
"osbpId": 184588,
"littlePhaseMp3Name": "368542",
"littlePhaseNum": 4,
"littlePhaseType": 8,
"littlePhaseFileType": 0,
"littlePhaseIdCardType": 0,
"littlePhaseIdCardOcrSwitch": 0,
"littlePhaseTitle": "签字环节",
"littlePhaseTtsContent": "签字环节",
"littlePhaseAnswer": "",
"littlePhaseImageNameArray": "",
"littlePhaseResultCode": 0,
"littlePhaseResultMsg": "",
"littlePhaseBeginTime": 0,
"littlePhaseEndTime": 0,
"productCode": "PWL04AQ",
"insureSelf": 0,
"littlePhaseTTsFinishTime": 0,
"passedByMachine": 0,
"pdfFileName": "",
"docPrdCode": "",
"filePopup": 0,
"userRole": 0,
"littlePhaseFileInfo": null,
"name": "",
"idCard": "",
"idCardType": "",
"ipno": "",
"remoteSignatureMethod": 0,
"offlineSignatureMethod": 0,
"remoteSignatureType": 0,
"remoteSignaturePrompt": "",
"remoteSignatureObject": 0,
"remoteSignatureRiskPrompt": "",
"offlineSignatureType": 0,
"offlineSignaturePrompt": "",
"offlineSignatureObject": 0,
"offlineSignatureRiskPrompt": "",
"remoteVerificationMethod": 0,
"offlineVerificationMethod": 0
},
{
"oslpId": 368543,
"osbpId": 184588,
"littlePhaseMp3Name": "368543",
"littlePhaseNum": 5,
"littlePhaseType": 6,
"littlePhaseFileType": 0,
"littlePhaseIdCardType": 0,
"littlePhaseIdCardOcrSwitch": 0,
"littlePhaseTitle": "人脸识别环节",
"littlePhaseTtsContent": "人脸识别环节",
"littlePhaseAnswer": "",
"littlePhaseImageNameArray": "",
"littlePhaseResultCode": 0,
"littlePhaseResultMsg": "",
"littlePhaseBeginTime": 0,
"littlePhaseEndTime": 0,
"productCode": "PWL04AQ",
"insureSelf": 0,
"littlePhaseTTsFinishTime": 0,
"passedByMachine": 0,
"pdfFileName": "",
"docPrdCode": "",
"filePopup": 0,
"userRole": 0,
"littlePhaseFileInfo": null,
"name": "",
"idCard": "",
"idCardType": "",
"ipno": "",
"remoteSignatureMethod": 0,
"offlineSignatureMethod": 0,
"remoteSignatureType": 0,
"remoteSignaturePrompt": "",
"remoteSignatureObject": 0,
"remoteSignatureRiskPrompt": "",
"offlineSignatureType": 0,
"offlineSignaturePrompt": "",
"offlineSignatureObject": 0,
"offlineSignatureRiskPrompt": "",
"remoteVerificationMethod": 0,
"offlineVerificationMethod": 0
}
]
}
],
"twoPersonDetectList": [],
"insureSelf": 2
}
}
\ No newline at end of file
No preview for this file type
This diff could not be displayed because it is too large.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/19 上午10:18
# @Author : 付孟奇
# 记录所有的数据库信息
'''所有线上数据信息以线上实际为准,本地只维护一个key'''
def dataBaseList(dbName):
databaseList = {
'中德安联-vdr': {"host": "rm-2zen60zh797n662w4lo.mysql.rds.aliyuncs.com",
"port": 3306,
"user": "vdr_allianz",
"password": "is611Z14$coBWPUyKR12_0d",
"db": "vdr_staging_allianz"
},
'中美大都会-vdr': {"host": "rm-2zen60zh797n662w4lo.mysql.rds.aliyuncs.com",
"port": 3306,
"user": "vdr_staging",
"password": "5HGKEm!15$_%yYod8wtPC",
"db": "vdr_staging"
},
'瑞泰-staging': {"host": "rm-2zen60zh797n662w4lo.mysql.rds.aliyuncs.com",
"port": 3306,
"user": "oldmutuallife_st",
"password": "EkKL#qX7j4M110!c17%15Qn",
"db": "oldmutuallife_staging"
},
'德华安顾-vdr': {"host": "rm-2zen60zh797n662w4lo.mysql.rds.aliyuncs.com",
"port": 3306,
"user": "vdr_ergolife",
"password": "MO19vuPr!15$_%yYe16ohpd12kUJQ518",
"db": "vdr-ergolife"
},
}
# 判断dbName是否存在该环境
if databaseList.get(dbName, 0) != 0:
data_base = databaseList[dbName]
return data_base
else:
return None
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:38
# @Author : 付孟奇
import xlrd
'''
Created on 2017-4-26
读取excel文件,将excle文件里面对应的sheet of addbook数据转换为python 列表对象,其中列表中每一个元素为一个字典
'''
def excel_to_list(file, tag):
"""将excel表中数据转换成python对象"""
data_list = []
"""打开excel文件"""
book = xlrd.open_workbook(file)
"""选择读取sheet工作表"""
tag = book.sheet_by_name(tag)
"""获取行数"""
row_num = tag.nrows
header = tag.row_values(0)
for i in range(1, row_num):
"""读取行"""
row_data = tag.row_values(i)
"""读取行中的每一列的值"""
d = dict(zip(header, row_data))
data_list.append(d)
return data_list
"""获取测试数据,判断传入的test_name 是否存在,存在则返回一个列表中对应的字典数据"""
# 无效方法
def get_test_data(test_name, test_list):
for test_dict in test_list:
if test_name == test_dict['test_name']:
return test_dict
if __name__ == '__main__':
excel_to_list(1, 1)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午4:58
# @Author : 付孟奇
import sys
def get_config():
config_info = {}
# Jenkins参数
if len(sys.argv) > 1:
config_info['pro'] = sys.argv[1]
config_info['env'] = sys.argv[2]
config_info['email'] = sys.argv[3]
config_info['title'] = sys.argv[4]
else:
# 本地兼容
config_info['pro'] = '德华安顾'
config_info['env'] = 'vdr'
config_info['email'] = 'fumengqi@situdata.com'
config_info['title'] = '本地调试'
config_info['phone'] = '15737319294'
return config_info
config = get_config()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/19 下午5:26
# @Author : 付孟奇
import json
import base64
from config.vendorPath import api_path, global_path
# 格式化存储文件
def file_write(path, data):
with open(path, 'w') as f:
ev_data = eval(str(data))
json.dump(ev_data, f, indent=4, ensure_ascii=False)
# 读文件内容
# params:文件路径
def file_read(path):
with open(path, 'rb') as f:
file_data = json.load(f)
return file_data
# 从swaggerAPI文件获取接口
# params:接口所属模块,接口描述
def file_readAPI(type, api_id):
with open(api_path, 'r') as f:
api_data = json.load(f)
return api_data[type][api_id]['value']
# 更新公共参数文件信息
# params:更新字段1[更新字段2],更新值
def file_updata_global(args1, args2, args3):
with open(global_path, 'r+') as f:
file_data = json.load(f)
file_data[args1][args2] = args3
f.seek(0)
f.truncate()
json.dump(file_data, f, indent=4, ensure_ascii=False)
def file_updata(args1, args2):
with open(global_path, 'r+') as f:
file_data = json.load(f)
file_data[args1] = args2
f.seek(0)
f.truncate()
json.dump(file_data, f, indent=4, ensure_ascii=False)
# 读取公共参数文件指定内容
# params:文件路径,字段
def file_read_global(args1, args2):
with open(global_path, 'r') as f:
file_data = json.load(f)
datas = file_data[args1][args2]
return datas
# 图片转换64
def file_base_64(path):
with open(path, 'rb') as f:
base64_data = base64.b64encode(f.read())
data = base64_data.decode()
return data
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/20 下午5:43
# @Author : 付孟奇
import redis
import json
from util.log import logger
from util.HandleJenkins import config
from config.vendorList import db_40, db_45
class HandleRedis:
def __init__(self):
if config['pro'] in db_40:
self.db = 40
elif config['pro'] in db_45:
self.db = 45
try:
self.r = redis.Redis(host='r-2ze79mcysjugilpdskpd.redis.rds.aliyuncs.com', port=6379, db=self.db,
password='$ecur1ty', decode_responses=True)
except:
logger.info('redis连接失败!')
# 存储为字符串
def set_string(self, k, v):
self.r.set(k, json.dumps(v, ensure_ascii=False), ex=8640000)
def get_string_value(self, k):
redis_v = self.r.get(k)
return redis_v
def get_value(self, k):
redis_v = json.loads(self.r.get(k))
return redis_v
handle_redis = HandleRedis()
if __name__ == '__main__':
HandleRedis
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/19 上午10:23
# @Author : 付孟奇
from util.HandleJenkins import config
from util.HandleDB import dataBaseList
from util.log import logger
import pymysql
class DBSql:
def data_base(self, sqls, fe):
env = config['env']
pro = config['pro']
da_list = dataBaseList(pro + '-' + env)
try:
conn = pymysql.connect(host=da_list['host'],
port=da_list['port'],
user=da_list['user'],
passwd=da_list['password'],
db=da_list['db'],
cursorclass=pymysql.cursors.DictCursor)
with conn.cursor() as cur:
logger.info(sqls)
cur.execute(sqls)
if fe == 'SELECT':
result = cur.fetchall()
return result
elif fe == 'DELETE' or fe == 'UPDATE':
conn.commit()
cur.close()
conn.close()
except pymysql.MySQLError as e:
logger.error(str(e))
# 查询产品ID
def select_product(self, args):
fe = 'SELECT'
sql = '''SELECT * FROM product_library where product_code='%s';''' % (args)
result = self.data_base(sql, fe)
logger.info(result)
if result == ():
return None
else:
productId = result[0]['id']
return productId
# 删除产品
def delete_product(self, args):
fe = 'DELETE'
sql = '''DELETE from product_library where product_code='%s';''' % (args)
self.data_base(sql, fe)
# 查询产品附加属性Id
def select_attributes(self, args):
fe = 'SELECT'
sql = '''SELECT * FROM product_additional_attributes_key where keyword='%s';''' % (args)
result = self.data_base(sql, fe)
logger.info(result)
if result == ():
return None
else:
attributes_id = result[0]['id']
return attributes_id
# 删除产品附加属性
def delete_attributes(self, args):
fe = 'DELETE'
sql = '''DELETE from product_additional_attributes_key where keyword='%s';''' % (args)
self.data_base(sql, fe)
# 查询上传文件Id
def select_file(self, args):
fe = 'SELECT'
sql = '''select * from order_product_code_file where deleted=0 and file_name='%s';''' % (args)
result = self.data_base(sql, fe)
logger.info(result)
if result == ():
return None
else:
file_id = result[0]['id']
return file_id
# 查询年龄值
def select_age_value(self, args):
fe = 'SELECT'
sql = '''select * from quanlity_audit_proportion_conf where id=%s;''' % (args)
result = self.data_base(sql, fe)
logger.info(result)
if result == ():
return None
else:
file_id = result[0]['option_value']
return file_id
# 查询账号ID
def select_user_id(self, args):
fe = 'SELECT'
sql = '''select * from citic_user where username='%s';''' % (args)
result = self.data_base(sql, fe)
logger.info(result)
if result == ():
return None
else:
file_id = result[0]['id']
return file_id
# 查询账号绑定角色ID
def select_user_role_id(self, args):
fe = 'SELECT'
sql = '''select * from citic_user_role where user_id=%s;''' % (args)
result = self.data_base(sql, fe)
logger.info(result)
if result == ():
return None
else:
file_id = result[0]['id']
return file_id
# 删除账号
def delete_user(self, args):
fe = 'DELETE'
account_id = self.select_user_id(args)
user_sql = '''DELETE from citic_user where id=%s;''' % (account_id)
user_role_sql = '''DELETE from citic_user_role where user_id=%s;''' % (account_id)
self.data_base(user_sql, fe)
self.data_base(user_role_sql, fe)
# 查询话术ID
def select_pahse(self, args):
fe = 'SELECT'
sql = '''SELECT * FROM speech_template_library WHERE speech_name='%s';''' % (args)
result = self.data_base(sql, fe)
logger.info(result)
if result == ():
return None
else:
file_id = result[0]['id']
return file_id
# 删除话术内容
def delete_phase(self, args):
fe = 'DELETE'
sql_1 = '''DELETE FROM speech_template_library where id=%s;''' % (args)
sql_2 = '''DELETE FROM speech_big_phase where stl_id=%s;''' % (args)
sql_3 = '''DELETE FROM speech_little_phase where stl_id=%s;''' % (args)
sql_4 = '''DELETE FROM speech_take_effect_rule where stl_id=%s;''' % (args)
sql_5 = '''DELETE FROM speech_take_effect_age_condition where stl_id=%s;''' % (args)
sql_6 = '''DELETE FROM speech_take_effect_channel_condition where stl_id=%s;''' % (args)
sql_7 = '''DELETE FROM speech_take_effect_organization_condition where stl_id=%s;''' % (args)
self.data_base(sql_1, fe)
self.data_base(sql_2, fe)
self.data_base(sql_3, fe)
self.data_base(sql_4, fe)
self.data_base(sql_5, fe)
self.data_base(sql_6, fe)
self.data_base(sql_7, fe)
# 更新订单锁状态
def update_order_status(self, args):
fe = 'UPDATE'
sql = '''update order_base_info set lock_order=2 where id='%s';''' % (args)
self.data_base(sql, fe)
# 查询订单入件信息
def select_extra_info(self, args):
fe = 'SELECT'
sql = '''SELECT * FROM order_base_info WHERE id=%s;''' % (args)
result = self.data_base(sql, fe)
if result == ():
return None
else:
res = result[0]['extra_info']
return res
db_sql = DBSql()
if __name__ == '__main__':
# db_sql.delete_user('apiappuser')
# db_sql.delete_user('apiwebuser')
# db_sql.delete_phase(1030)
# db_sql.select_user_id('apiwebuser')
db_sql.delete_product('apitest')
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/18 上午10:59
# @Author : 付孟奇
import time
import uuid
from datetime import datetime
class HandleTime:
# 时间戳
def timeStamp_10(self):
timeArray = int(time.time())
return str(timeArray)
def timeStamp_13(self):
timeArray = int(time.time() * 1000)
return str(timeArray)
def timeTime(self):
dt = datetime.now()
times = dt.strftime("%Y-%m-%d %H:%M:%S")
return times
def timeTimeYMD(self):
dt = datetime.now()
times = dt.strftime("%Y-%m-%d")
return times
def taskId(self):
uid = str(uuid.uuid4())
suid = ''.join(uid.split('-'))
return suid
handle_time = HandleTime()
if __name__ == '__main__':
a = handle_time.taskId()
print(a)
print(type(a))
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/12 下午4:59
# @Author : 付孟奇
'''一些小公共方法的集合'''
from util.HandleJenkins import config
def login_type_choose():
typq_1 = ['德华安顾']
typq_2 = ['瑞泰']
typq_3 = ['中美大都会']
if config['pro'] in typq_1:
login_type = 1
elif config['pro'] in typq_2:
login_type = 2
else:
login_type = 3
return login_type
if __name__ == '__main__':
print(login_type_choose())
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/8/20 下午2:38
# @Author : 付孟奇
from config.vendorHost import vendor_host
from config import vendorList
from util.HandleJson import file_readAPI, file_updata_global
from util.HandleJenkins import config
from util.log import logger
import requests
def FirstLogin():
api_type = 'sys'
headers = {
'Content-Type': 'application/json'
}
if config['pro'] in vendorList.web_login_1:
payload = {"username": 'cs01', "password": 'situ1234'}
url = vendor_host + api_type + file_readAPI(api_type, 'webLoginUsingPOST')
response = requests.request('POST', url, headers=headers, json=payload)
if response.status_code is 200:
res = response.json()
logger.info(str(res))
login_token = res['result']['token']
file_updata_global('web_login', 'token', login_token)
else:
login_token = None
logger.error(str(response.text))
return login_token
if __name__ == '__main__':
FirstLogin()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午5:37
# @Author : 付孟奇
import os
from util import HandleExcel
from config.vendorPath import excel_path
# 类的实例、被测试的接口名称、测试数据文件名、测试数据表单名称
def generateTestCases(instanse, inerfaceName, tesDataName, sheetName):
# 合成Excel文件路径
file_path = os.path.join(excel_path, tesDataName)
# 读取Excel指定接口的执行case
data_list = HandleExcel.excel_to_list(file_path, sheetName)
for i in range(len(data_list)):
setattr(instanse, 'test_' + inerfaceName + '_%s' % (str(data_list[i]["tc_num"])),
instanse.getTestFunc(data_list[i]))
func_name = 'test_' + inerfaceName + '_%s' % (str(data_list[i]["tc_num"]))
func_attr = getattr(instanse, func_name)
func_attr.__doc__ = str(data_list[i]["tc_name"])
def getTestCase(tesDataName, sheetName):
# 合成Excel文件路径
file_path = os.path.join(excel_path, tesDataName)
# 读取Excel指定接口的执行case
data_list = HandleExcel.excel_to_list(file_path, sheetName)
return data_list
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/26 下午7:05
# @Author : 付孟奇
'''自动导入类,暂时放弃'''
from util.HandleJson import file_read
from util.log import logger
from config.vendorPath import case_list_path
import unittest, os
def find_class():
# 1、获取项目可执行case
result = file_read(case_list_path)
caseTrue_list = []
case_list = []
for k, v in result.items():
if v == 'True':
caseTrue_list.append(k + '.py')
logger.info('所有可执行的case文件名为:' + str(caseTrue_list))
# 2、动态导入所有case
for case in caseTrue_list:
testScript = os.path.join('./SITUAPIAutomation/case/', case)
srcript_dir = os.path.dirname(testScript)
srcrpit_path = ".".join(srcript_dir.split("/")[2:])
path = "from " + srcrpit_path + " import "
exec_str = path + case[:-3]
exec(exec_str, globals())
case = "%s.%s('%s')" % (case[:-3], case[:-3], "testFunc")
case_list.append(case)
return case_list
def get_suit():
cases = find_class()
suite = unittest.TestSuite()
for case in cases:
suite.addTest(eval(case))
return suite
if __name__ == '__main__':
find_class()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/16 下午4:38
# @Author : 付孟奇
import logging
from config.vendorPath import log_path
class Log:
def __printconsole(self, level, message):
# 创建一个logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# 创建一个handler,用于写入日志文件
fh = logging.FileHandler(log_path, 'a', encoding='utf-8')
fh.setLevel(logging.DEBUG)
# 再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# 定义handler的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 给logger添加handler
logger.addHandler(fh)
logger.addHandler(ch)
# 记录一条日志
if level == 'info':
logger.info(message)
elif level == 'debug':
logger.debug(message)
elif level == 'warning':
logger.warning(message)
elif level == 'error':
logger.error(message)
logger.removeHandler(ch)
logger.removeHandler(fh)
# 关闭打开的文件
fh.close()
def debug(self, message):
self.__printconsole('debug', message)
def info(self, message):
self.__printconsole('info', message)
def warning(self, message):
self.__printconsole('warning', message)
def error(self, message):
self.__printconsole('error', message)
logger = Log()
if __name__ == '__main__':
logger.info('11111')
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/19 下午2:45
# @Author : 付孟奇
import os
import requests
from util.HandleJson import file_write
from config.vendorPath import api_path
from config.vendorHost import vendor_host
class SwaggerApi:
def __init__(self):
self.host = vendor_host
self.api_type = {}
url_type = ['re', 'cl', 'qa', 'sys']
for i in url_type:
self.api_msg = {}
swagger_url = os.path.join(os.path.join(self.host, i), 'v2/api-docs')
res_api = requests.get(swagger_url).json()
data_paths = res_api['paths'] # 获取swagger中所有接口的信息
self.api_type[i] = self.api_msg
for k, v in data_paths.items():
self.api_msg_v = {}
for _k, _v in v.items():
self.api_msg_v['des'] = _v['summary']
self.api_msg_v['value'] = str(k)
self.api_msg[_v['operationId']] = self.api_msg_v
file_write(api_path, self.api_type)
swaggerApi = SwaggerApi()
if __name__ == '__main__':
swaggerApi
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!