Serie de pruebas automatizadas de Python [v1.0.0] [Registro]

En el proceso de depuración de código de prueba automatizado real, a menudo necesitamos registrar algunos registros. Por un lado, está impreso en la consola para que podamos depurar el código. Si se trata de un entorno desatendido de integración continua, también es un proceso de grabación del proceso de ejecución de prueba.

Método de encapsulación

Cree un nuevo archivo Python y asígnele el nombre ConstantConfig, luego escriba el siguiente código en el archivo.

# 用于定义整个框架中所需要的全局常量值
# encoding = utf-8
import os
# 获取当前文件所在目录的父目录的绝对路径
parent_directory_path = os.path.abspath('..')
print(parent_directory_path)
# encoding = utf-8
import time
import logging
from Configuration.ConstantConfig import parent_directory_path
class Logger(object):
    def __init__(self, logger):
        """
        指定保存日志的文件路径,日志级别,以及调用文件
            将日志存入到指定的文件中
        :param logger:
        """
        # 创建一个logger
        self.logger = logging.getLogger(logger)
        self.logger.setLevel(logging.DEBUG)
        # 创建一个handler,用于写入日志文件
        rq = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))
        log_path = parent_directory_path + '/TestResult/TestLog/'
        log_name = log_path + rq + '.log'
        filehandler = logging.FileHandler(log_name)
        filehandler.setLevel(logging.INFO)
        # 再创建一个handler,用于输出到控制台
        consolehandler = logging.StreamHandler()
        consolehandler.setLevel(logging.INFO)
        # 定义handler的输出格式
        formatter = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')
        filehandler.setFormatter(formatter)
        consolehandler.setFormatter(formatter)
        # 给logger添加handler
        self.logger.addHandler(filehandler)
        self.logger.addHandler(consolehandler)
    def getlog(self):
        return self.logger

Cree una nueva carpeta llamada TestLog para almacenar el archivo de registro generado
Inserte la descripción de la imagen aquí

Llamada al método

testlogger = GetLog.Logger('Test_Advanced_Application').getlog()
class Test_Advanced_Application(unittest.TestCase): 
	def test_get_log(self):
    	testlogger.info("打开浏览器")
    	driver = webdriver.Chrome()
    	driver.maximize_window()
    	testlogger.info("最大化浏览器窗口。")
    	driver.implicitly_wait(10)
    	testlogger.info("打开百度首页。")
    	driver.get("https://www.baidu.com")
    	testlogger.info("暂停3秒。")
    	time.sleep(3)
    	testlogger.info("关闭并退出浏览器")
    	driver.quit()
    	with self.assertLogs(testlogger, level=20) as log:
        	testlogger.error("打开浏览器")
        	testlogger.info('关闭并退出浏览器')
        	self.assertEqual(log.output,
            	             ['ERROR:Test_Advanced_Application:打开浏览器',
                	          'INFO:Test_Advanced_Application:关闭并退出浏览器']
                    	     )

Resultado de ejecución

Inserte la descripción de la imagen aquí
Puede ver el proceso de imprimir nuestros registros en la consola uno por uno durante el proceso de ejecución
Inserte la descripción de la imagen aquí
y luego ir a la carpeta TestLog que creamos para ver los archivos de registro. Si encuentra caracteres ilegibles, como se muestra en la Figura 11.13, no se preocupe porque la codificación no coincide Como resultado, haga clic en Volver a cargar en 'GBK' para convertir el formato de codificación a GBK y se mostrará normalmente
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
. La razón del código confuso es que Codificaciones de archivos en la configuración del proyecto, Codificación global es UTF-8
Inserte la descripción de la imagen aquí

231 artículos originales publicados · 188 elogiados · 120,000 visitas

Supongo que te gusta

Origin blog.csdn.net/dawei_yang000000/article/details/105648317
Recomendado
Clasificación