Python3+Pytest接口自动化测试全方案设计与开发-No.2接口自动化框架编写...

Python3+Pytest接口自动化测试全方案设计与开发-No.2接口自动化框架编写...

2023年7月3日发(作者:)

Python3+Pytest接⼝⾃动化测试全⽅案设计与开发-No.2接⼝⾃动化框架编写-4。。。1、logging模块简介及快速使⽤ lopgging模块是python内置的标准模块,主要⽤于输出运⾏⽇志,可以设置输出的等级、⽇志保存路径、⽇志⽂件回滚登;优点: 通过设置不同的⽇志等级。,在release版本中只输出重要信息,⽽不必显⽰⼤量的调试信息;尤其是代码运⾏在服务器上,当出现问题时可以通过查看⽇志进⾏分析logging快速使⽤打印⽇志到标准输出中默认的⽇志级别

# 1、导⼊包;loggingimport logging# 2、设置配置哦信息onfig(level=,format='%(asctime)s-%(name)s-%(levelname)s-%(message)s')# 3、定义⽇志名称getLoggerlogger = ger('log_demo')# 4、info、('info')('debug')g('warning') 2、logging模块基本使⽤

⽇志输出控制台或⽂件设置logger名称 设置log级别 DEBUG创建handler,⽤于输出控制台或写⼊⽇志⽂件 DEBUG WARNING设置⽇志级别定义handler的输出格式添加handler# -*- coding: utf-8 -*-

# @Time : 2021/12/9 5:04

# @Author : jeffky# @File : log_file_rt logging#输出控制台# 设置logger名称logger = ger("log_file_demo")# 设置log级别el()# 创建handler,⽤于输出控制台或写⼊⽇志⽂件fh_steanm = Handler()#写⼊⽂件fh_file = ndler('./')# 设置⽇志级别fh_el()fh_el(G)# 定义handler的输出格式formatter = ter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')fh_matter(formatter)fh_matter(formatter)# 添加dler(fh_steanm)dler(fh_file)# 运⾏输出('info')('debug')g('warning')Format格式说明%(levelno)s: 打印⽇志级别的数值%(levelname)s: 打印⽇志级别名称%(pathname)s: 打印当前执⾏程序的路径,其实就是[0]%(filename)s: 打印当前执⾏程序名%(funcName)s: 打印⽇志的当前函数%(lineno)d: 打印⽇志的当前⾏号%(asctime)s: 打印⽇志的时间%(thread)d: 打印线程ID%(threadName)s: 打印线程名称%(process)d: 打印进程ID%(message)s: 打印⽇志信息封装⼯具类1、封装log⼯具类# -*- coding: utf-8 -*-

# @Time : 2021/12/9 5:26

# @Author : jeffky# @File : # 封装log⼯具类import logging#定义⽇志级别的映射log_l = { "info": , "debug": , "warning": G}# 1、创建类class Loggeer:# 2、定义参数 def __init__(self,log_file,log_name,log_level): _file = log_file _name = log_name _level = log_level# 3、编写输出控制台或⽂件 formatter = ter('%(asctime)s-%(name)s-%(levelname)s-%(message)s') # 设置logger名称 = ger(_name) # 设置log级别 el( log_l[_level]) # 判断handlers是否存在 if not rs: # 输出控制台或写⼊⽇志⽂件 fh_steanm = Handler() # 设置⽇志级别 fh_el( log_l[_level]) # 定义handler的输出格式 fh_matter(formatter) ############################################################## # 写⼊⽇志⽂件 fh_file = ndler(_file,encoding='utf-8') # 设置⽇志级别 fh_el( log_l[_level]) # 定义handler的输出格式 fh_matter(formatter) # 添加handler dler(fh_steanm) dler(fh_file)2、重构配置⽂件BASE: #log等级 log_level: "debug" #扩展名 log_extension: ".log" test: url: "211.103.136.242:8064" case_file: "" case_sheet: "美多商城接⼝测试"# -*- coding: utf-8 -*-

# @Time : 2021/12/8 16:19

# @Author : jeffky# @File : rt osfrom il import YamlReader# 1、获取项⽬基本信息#获取当前项⽬的绝对路径current = h(__file__)BASE_DIR = e(e(current))#定义config⽬录的路径_config_path = BASE_DIR++"config"#定义⽂件的路径_config_file = _config_path++""#定义logs⽬录的路径_log_path = BASE_DIR++"logs"def get_config_path(): return _config_pathdef get_config_file(): return _config_filedef get_log_path(): return _log_path#2、读取配置⽂件#创建类class ConfigYaml:# 初始化yaml读取配置⽂件 def __init__(self): = YamlReader(get_config_file()).data()# 定义⽅法获取需要信息 def get_conf_url(self): return ['BASE']['test']['url'] def get_conf_log_level(self): ''' 获取⽇志级别 :return: ''' return ['BASE']['log_level'] def get_conf_log_extension(self): ''' 获取⽇志扩展名 :return: ''' return ['BASE']['log_extension']if __name__ == '__main__': conf_read = ConfigYaml() # print(conf__conf_url()) print(conf__conf_log_level()) print(conf__conf_log_extension())3、⽇志⼯具类应⽤# -*- coding: utf-8 -*-

# @Time : 2021/12/9 5:26

# @Author : jeffky# @File : # 封装log⼯具类import logging#定义⽇志级别的映射import osfrom datetime import datetimefrom import get_log_path, ConfigYamllog_l = { "info": , "debug": , "warning": G}# 1、创建类class Loggeer:# 2、定义参数 def __init__(self,log_file,log_name,log_level): _file = log_file _name = log_name _level = log_level# 3、编写输出控制台或⽂件 formatter = ter('%(asctime)s-%(name)s-%(levelname)s-%(message)s') # 设置logger名称 = ger(_name) # 设置log级别 el( log_l[_level]) # 判断handlers是否存在 if not rs: # 输出控制台或写⼊⽇志⽂件 fh_steanm = Handler() # 设置⽇志级别 fh_el( log_l[_level]) # 定义handler的输出格式 fh_matter(formatter) ############################################################## # 写⼊⽇志⽂件 fh_file = ndler(_file, encoding='utf-8') # 设置⽇志级别 fh_el( log_l[_level]) # 定义handler的输出格式 fh_matter(formatter) # 添加handler dler(fh_steanm) dler(fh_file)# 1、初始化参数数据# ⽇志⽂件名称,⽇志⽂件级别# ⽇志⽂件名称 = logs⽬录+当前时间+扩展名#log⽬录log_path = get_log_path()#当前时间current_time = ().strftime("%Y-%m-%d")log_extension = ConfigYaml().get_conf_log_extension()log_file = (log_path,current_time+log_extension)# print(log_file)#⽇志⽂件级别log_level = ConfigYaml().get_conf_log_level()# print(log_level)# 2、对外⽅法,初始化log⼯具类,提供其他类使⽤def my_log(log_name=__file__): return Loggeer(log_file=log_file,log_name=log_name,log_level=log_level).loggerif __name__ == '__main__': my_log().debug('this is a debug')# -*- coding: utf-8 -*-

# @Time : 2021/12/7 16:13

# @Author : jeffky# @File : # @File : rt requestsfrom l import my_log# 1、创建封装get⽅法def requests_get(url,headers=None,json= None):# 2、发送requests get 请求 r = (url,headers = headers,json= json)# 3、获取结果响应内容 code = _code try: body = () except Exception as e: body = # 4、内容存到字典 res = dict() res['code'] = code res['body'] = body# 5、字典返回 return res#post⽅法的封装# 1、创建封装post⽅法def requests_post(url,headers=None,json= None):# 2、发送requests post 请求 r = (url,headers = headers,json= json)# 3、获取结果响应内容 code = _code try: body = () except Exception as e: body = # 4、内容存到字典 res = dict() res['code'] = code res['body'] = body# 5、字典返回 return res# 重构# 1、创建类class Request:# 2、定义公共⽅法 def __init__(self): = my_log("Requests") def requests_api(self,url, headers=None, json=None,method='get'): # 1.增加⽅法的参数,根据参数来验证⽅法get/post,⽅法请求 if method == 'get': #get请求 ('发送get请求') r = (url, headers=headers, json=json) elif method == 'post': #post请求 ('发送post请求') r = (url, headers=headers, json=json)# 2.重复的内容,复制进去 code = _code try: body = () except Exception as e: body = res = dict() res['code'] = code res['body'] = body res['body'] = body return res# 3、重构get/post⽅法 #get # 1、定义⽅法 def get(self,url,**kwargs): # 2、定义参数 #url,json,headers,cookies,method # 3、调⽤公共⽅法 return ts_api(url,method='get',**kwargs) # post # 1、定义⽅法 def post(self, url, **kwargs): # 2、定义参数 # url,json,headers,cookies,method # 3、调⽤公共⽅法 return ts_api(url, method='post', **kwargs)

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688384661a130030.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信