Auty自动化测试框架第三篇——添加异常处理与日志收集

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: [本文出自天外归云的博客园] 本次对框架进行完善,增加了日志收集功能和修饰运行功能,完善后的lib目录如下: 在Auty的log文件夹中会存放一些脚本运行时生成的日志。在运行脚本时,对脚本的异常要有捕捉,并把捕捉到的信息打到日志中去。

[本文出自天外归云的博客园]

本次对框架进行完善,增加了日志收集功能和修饰运行功能,完善后的lib目录如下:

在Auty的log文件夹中会存放一些脚本运行时生成的日志。在运行脚本时,对脚本的异常要有捕捉,并把捕捉到的信息打到日志中去。在lib文件夹中添加write_log.py文件,内容如下:

# -*- coding: utf-8 -*-
import os
import time
 
def write_log(log):
    filePath = os.path.abspath(os.path.dirname(__file__))
    logFilePath = os.path.join(os.path.dirname(filePath),'log','log.txt')
    print logFilePath
    execTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    open(logFilePath,'a').write(execTime+' '+log+'\n')

对于执行的脚本中的方法,添加异常处理与日志收集功能。这里用到装饰器,在lib文件夹中添加exe_deco.py文件:

# -*- coding: utf-8 -*-
import traceback
from .write_log import write_log

def exe_deco(func):
    def _deco(*args, **kwargs):
        try:
            ret = func(*args, **kwargs)
        except Exception, e:
            log = 'Exception in '+func.__name__+' method: '+str(e)
            write_log(log)
        else:
            write_log('No exception in %s method.' % func.__name__)
        finally:
            return ret
    return _deco

对应的要修改之前写的execute_selection.py文件,以便对执行的脚本应用新添加的功能(异常处理与日志收集):

# -*- coding: utf-8 -*-
from .read_selection import read_selection
import os
from .exe_deco import exe_deco
from .write_log import write_log

def execute_selection():
    selection = read_selection()
    for scriptPath in selection:
        execute_script(scriptPath)

@exe_deco
def execute_script(scriptPath):
    write_log('execute_script: '+scriptPath)
    os.system('python '+scriptPath)

至此,Auty框架的异常处理与日志收集功能也已经初具模型。运行框架根目录下的start.py文件就可以看到log文件夹中生成了日志,记录了对应脚本运行时的状态。在Auty的logs文件中可以查看生产的日志文件,内容格式如下:

 

 
 
 
 
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
23天前
|
数据可视化 数据管理 测试技术
聊聊自动化测试框架
关于自动化测试框架的一些理解和思考总结,就是上面这些内容,提到的一些框架组件可能存在不合理的地方,仅供参考,如有更好的建议,请指出,不胜感激
25 4
聊聊自动化测试框架
|
3天前
|
Web App开发 敏捷开发 数据管理
自动化测试框架的设计与实现
【9月更文挑战第32天】在软件开发的海洋中,自动化测试如同一艘精确导航的船只,确保我们的应用程序能够在波涛汹涌的技术潮流中稳健航行。本文将带你领略自动化测试框架的设计之美,从搭建基础到功能扩展,再到维护实践,我们将一起探索如何打造一个既高效又灵活的自动化测试体系。
|
19天前
|
敏捷开发 IDE 测试技术
自动化测试框架的选择与应用
【9月更文挑战第16天】在软件开发周期中,测试环节扮演着至关重要的角色。随着敏捷开发和持续集成的流行,自动化测试成为提升软件质量和效率的关键手段。本文将探讨如何根据项目需求选择合适的自动化测试框架,并通过实际案例分析展示其在软件开发过程中的应用。我们将从单元测试、集成测试到端到端测试等多个层面,讨论自动化测试的最佳实践和常见问题解决策略。
|
9天前
|
敏捷开发 Java 测试技术
自动化测试框架的选择与应用
【9月更文挑战第26天】在软件开发的海洋里,自动化测试是那一盏指路明灯。它不仅加快了开发周期,还提升了软件质量。本文将带你探索自动化测试框架的世界,了解它们的核心特性、适用场景及如何根据项目需求做出明智选择。让我们一起启航,找到那把打开高效、稳定软件生产大门的钥匙。
|
9天前
|
敏捷开发 数据管理 测试技术
自动化测试框架的设计与实现
【9月更文挑战第25天】 本文将引导读者深入理解自动化测试框架的核心概念,并展示如何从零开始构建一个简单且有效的自动化测试框架。通过通俗易懂的语言和实际代码示例,我们将探讨测试框架设计的关键步骤、实现方法以及常见问题的解决方案。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
11天前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
|
7天前
使用装饰器实现自动化日志系统
使用装饰器实现自动化日志系统
11 0
|
9天前
|
设计模式 测试技术 持续交付
自动化测试框架的设计与实现
【9月更文挑战第25天】本文旨在探讨如何设计并实现一个高效、可扩展的自动化测试框架,以提升软件测试的效率和质量。通过分析当前流行的测试框架特点,结合最佳实践,提出一套完整的解决方案。文章不仅涵盖框架设计的理论依据,还包括具体实现步骤和示例,帮助读者深入理解自动化测试框架的搭建过程。
|
14天前
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
14天前
|
Web App开发 测试技术 持续交付
自动化测试的利器:Selenium与Python的完美结合
【9月更文挑战第21天】在软件开发的世界里,测试是确保产品质量的关键步骤。随着敏捷开发和持续集成的流行,自动化测试工具变得尤为重要。本文将介绍如何使用Selenium和Python进行高效的自动化测试,不仅提供代码示例,还深入探讨如何设计测试用例、选择正确的测试框架、以及如何整合到CI/CD流程中。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。
25 3
下一篇
无影云桌面