优化异常提示 优化日志

This commit is contained in:
jing song 2022-03-15 16:39:38 +08:00
parent c3d197c994
commit ccb1c71c50
6 changed files with 38 additions and 21 deletions

View File

@ -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':

View File

@ -129,6 +129,9 @@ def assert_sql(hope_res, real_res):
else:
db.close()
raise ValueError("获取json值失败,请检查jsonpath")
else:
raise ValueError("请检查sqlassert格式,如不需要断言,此字段应为空.")

View File

@ -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}")

View File

@ -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__':

View File

@ -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")

View File

@ -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