mirror of https://gitee.com/a529548204/apitest.git
优化异常提示 优化日志
This commit is contained in:
parent
c3d197c994
commit
ccb1c71c50
|
@ -98,8 +98,10 @@ class apiSend(object):
|
|||
return response.json(), response.elapsed.total_seconds()
|
||||
except Exception as e:
|
||||
logging.error(e)
|
||||
logging.error(response.text)
|
||||
raise
|
||||
|
||||
|
||||
def get(self, address, rel, header, data, timeout=8, host="host"):
|
||||
"""
|
||||
get请求
|
||||
|
@ -136,6 +138,7 @@ class apiSend(object):
|
|||
return response.json(), response.elapsed.total_seconds()
|
||||
except Exception as e:
|
||||
logging.error(e)
|
||||
logging.error(response.text)
|
||||
raise
|
||||
|
||||
def put(self, address, rel, header, timeout=8, data=None, files=None, host="host"):
|
||||
|
@ -176,8 +179,10 @@ class apiSend(object):
|
|||
return response.json(), response.elapsed.total_seconds()
|
||||
except Exception as e:
|
||||
logging.error(e)
|
||||
logging.error(response.text)
|
||||
raise
|
||||
|
||||
|
||||
def delete(self, address, rel, header, data, timeout=8, host="host"):
|
||||
"""
|
||||
get请求
|
||||
|
@ -210,8 +215,10 @@ class apiSend(object):
|
|||
return response.json(), response.elapsed.total_seconds()
|
||||
except Exception as e:
|
||||
logging.error(e)
|
||||
logging.error(response.text)
|
||||
raise
|
||||
|
||||
|
||||
def __call__(self, rel, address, method, headers, data, **kwargs):
|
||||
try:
|
||||
if method == "post" or method == 'POST':
|
||||
|
|
|
@ -129,6 +129,9 @@ def assert_sql(hope_res, real_res):
|
|||
else:
|
||||
db.close()
|
||||
raise ValueError("获取json值失败,请检查jsonpath")
|
||||
else:
|
||||
raise ValueError("请检查sqlassert格式,如不需要断言,此字段应为空.")
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -16,11 +16,12 @@ def pytest_collection_modifyitems(items):
|
|||
|
||||
def pytest_terminal_summary(terminalreporter):
|
||||
"""收集测试结果"""
|
||||
TOTAL = terminalreporter.numcollected
|
||||
|
||||
PASSED = len(terminalreporter.stats.get('passed', []))
|
||||
FAILED = len(terminalreporter.stats.get('failed', []))
|
||||
ERROR = len(terminalreporter.stats.get('error', []))
|
||||
SKIPPED = len(terminalreporter.stats.get('skipped', []))
|
||||
TOTAL = PASSED + FAILED + ERROR + SKIPPED
|
||||
logging.info("--"*40)
|
||||
logging.info(f"执行总用例数:{TOTAL}")
|
||||
logging.info(f"执行通过数:{PASSED}")
|
||||
|
|
|
@ -13,23 +13,27 @@ class Log(object):
|
|||
"""
|
||||
日志配置
|
||||
"""
|
||||
log_path = root_path + dir_manage(directory='${log_dir}$') + "/"
|
||||
now = time.strftime('%Y-%m-%d')
|
||||
log_path = root_path + dir_manage(directory='${log_dir}$') + "/"+now + "/"
|
||||
mk_dir(log_path)
|
||||
logfile = log_path + "{}".format(now) + ".log"
|
||||
# logfile_err = log_path + "{}-".format(now) + 'error.log'
|
||||
logfile_debug = log_path + "{}".format(now) + "debug.log"
|
||||
logfile_err = log_path + "{}-".format(now) + 'error.log'
|
||||
logfile_info = log_path + "{}".format(now) + "info.log"
|
||||
self.logger = logging.getLogger()
|
||||
self.logger.setLevel(logging.DEBUG)
|
||||
self.logger.handlers = []
|
||||
fh = logging.FileHandler(logfile, mode='a+', encoding='utf-8')
|
||||
fh.setLevel(logging.DEBUG)
|
||||
# fh_err = logging.FileHandler(logfile_err, mode='a+',encoding='utf-8')
|
||||
# fh_err.setLevel(logging.ERROR)
|
||||
fh_inf = logging.FileHandler(logfile_info, mode='a+', encoding='utf-8')
|
||||
fh_inf.setLevel(logging.INFO)
|
||||
fh_deb = logging.FileHandler(logfile_debug, mode='a+', encoding='utf-8')
|
||||
fh_deb.setLevel(logging.DEBUG)
|
||||
fh_err = logging.FileHandler(logfile_err, mode='a+',encoding='utf-8')
|
||||
fh_err.setLevel(logging.ERROR)
|
||||
formatter = logging.Formatter("%(levelname)-8s%(asctime)s %(name)s:%(filename)s:%(lineno)d %(message)s")
|
||||
fh.setFormatter(formatter)
|
||||
# fh_err.setFormatter(formatter)
|
||||
self.logger.addHandler(fh)
|
||||
# self.logger.addHandler(fh_err)
|
||||
fh_inf.setFormatter(formatter)
|
||||
fh_err.setFormatter(formatter)
|
||||
self.logger.addHandler(fh_inf)
|
||||
self.logger.addHandler(fh_err)
|
||||
self.logger.addHandler(fh_deb)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -89,7 +89,8 @@ class Relevance(object):
|
|||
def body_cache(self, data, param):
|
||||
if isinstance(param, dict):
|
||||
values = jsonpath.jsonpath(param, data['path'])
|
||||
|
||||
if not values:
|
||||
raise ValueError("path错误")
|
||||
self.caches.set(key=data["name"], value=values[0])
|
||||
else:
|
||||
values = jsonpath.jsonpath(valueHandle(param), data['path'])
|
||||
|
@ -111,7 +112,7 @@ class Relevance(object):
|
|||
if __name__ == '__main__':
|
||||
s = {'name': '固件新增', 'token': 'Authorization', 'order': 1, 'case': [
|
||||
{'info': '固件新增', 'host': 'host', 'address': '/v1/device/firmware/', 'method': 'post',
|
||||
'relevance': [{'cachefrom': 'response', 'path': '$.data.id', 'name': 'firmwareId'}],
|
||||
'relevance': [{'cachefrom': 'body', 'path': '$.data.id1', 'name': 'firmwareId'}],
|
||||
'headers': {'Content-Type': 'application/json'}, 'data': {
|
||||
'param': {'desc': '测试', 'name': '测试固件$RandomString($RandomPosInt(2,8)$)$', 'size': '20',
|
||||
'url': 'V1.0.$RandomPosInt(6,8)$.rbl', 'category': 'F001'}, 'urlparam': None}, 'assert': {
|
||||
|
@ -121,11 +122,12 @@ if __name__ == '__main__':
|
|||
ress = {'code': 0, 'msg': 'Success.',
|
||||
'data': {'id': 64, 'create_time': '2022-01-12T09:37:32.276085', 'update_time': '2022-01-12T09:37:32.276104',
|
||||
'name': '测试固件dE8', 'size': 20.0, 'category': 'F001', 'desc': '测试', 'url': 'V1.0.6.rbl'}}
|
||||
bo = "code=200&msg=success"
|
||||
from scripts.readYamlFile import ini_yaml
|
||||
|
||||
s1 = ini_yaml("firmware.yml", r"D:\apitest\test_suite\datas\saasWeb\firmware")
|
||||
# bo = "code=200&msg=success"
|
||||
bo ={"a":1}
|
||||
# from scripts.readYamlFile import ini_yaml
|
||||
#
|
||||
# s1 = ini_yaml("firmware.yml", r"D:\apitest\test_suite\datas\saasWeb\firmware")
|
||||
rels = Relevance()
|
||||
|
||||
# rels.relevance(s["case"][0]["relevance"], bodys=bo, res=ress)
|
||||
rels.caches.clear_cache("firmwareId")
|
||||
rels.relevance(s["case"][0]["relevance"], bodys=bo, res=ress)
|
||||
# rels.caches.clear_cache("firmwareId")
|
|
@ -26,7 +26,7 @@ class Counter:
|
|||
|
||||
def response(self, flow: HTTPFlow):
|
||||
mk_dir(self.path + dir_manage("${test_suite}$") + dir_manage("${recording_dir}$"))
|
||||
if flow.request.host == host_manage("${host}$"):
|
||||
if flow.request.host == host_manage("${host}$").split(":")[1]:
|
||||
if flow.response.headers["Content-Type"] == "application/json":
|
||||
self.re = {}
|
||||
self.num = self.num + 1
|
||||
|
|
Loading…
Reference in New Issue