python_request 接口测试线性框架,模块化思想,增加日志打印
一、大框架
如下为一个简单的线性框架,同时编写common_api 模块,把一个个接口进行封装,案例编写时候只需要直接调用输入参数即可。
二、 test_cases 模块具体写法
2.1 common_api 写法:
2.2 要测试的接口中的写法:
优化:
增加日志功能:
common下增加日志模块log_utils:
import os
import logging
import time
from common.config_utils import config
current_path = os.path.dirname(__file__)
log_output_path = os.path.join( current_path,'..', config.LOG_PATH )
class LogUtils():
def __init__(self,log_path=log_output_path):
self.log_name = os.path.join( log_output_path ,'ApiTest_%s.log'%time.strftime('%Y_%m_%d') )
self.logger = logging.getLogger("ApiTestLog")
self.logger.setLevel( config.LOG_LEVEL )
console_handler = logging.StreamHandler() # 控制台输出
file_handler = logging.FileHandler(self.log_name,'a',encoding='utf-8') # 文件输出
formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
self.logger.addHandler( console_handler )
self.logger.addHandler( file_handler )
console_handler.close() # 防止打印日志重复
file_handler.close() # 防止打印日志重复
def get_logger(self):
return self.logger
logger = LogUtils().get_logger() # 防止打印日志重复
if __name__ == '__main__':
logger.info('hello')