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

简介: [本文出自天外归云的博客园] 本次对框架进行完善,增加了日志收集功能和修饰运行功能,完善后的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日志并进行多维度分析。
相关文章
|
2天前
|
Java 测试技术 Python
《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 上篇(详解教程)
【6月更文挑战第18天】TestNG是一个Java测试框架,它允许在测试方法间定义执行顺序和依赖关系。当不指定依赖时,TestNG默认按方法名首字母排序执行。`@Test`注解的`dependsOnMethods`属性用于指定方法依赖,如`test1`依赖`test4`,则实际执行顺序为`test4`、`test2`、`test3`、`test1`。如果依赖的方法失败,后续依赖的方法将被跳过。此外,`dependsOnGroups`属性通过组名指定依赖,方便管理多个相关测试方法。通过`groups`定义方法所属组,然后在其他方法中用`dependsOnGroups`引用这些组。
19 5
|
1天前
|
数据可视化 前端开发 Java
自动化测试框架的选择与实践: Selenium vs. TestComplete
【6月更文挑战第18天】在软件开发的海洋中,自动化测试是一艘能够确保产品质量和效率的坚固船只。本文将深入探讨两种流行的自动化测试框架——Selenium和TestComplete,从它们的优势、局限性到适用场景进行对比分析。我们将通过实际案例来揭示如何根据项目需求选择最合适的测试工具,并提供一些实用的实施建议。文章旨在为读者提供清晰的指导,帮助他们在自动化测试的旅程中做出明智的决定。
7 3
|
4天前
|
XML 测试技术 数据格式
《手把手教你》系列基础篇(七十五)-java+ selenium自动化测试-框架设计基础-TestNG实现DDT - 中篇(详解教程)
【6月更文挑战第16天】本文介绍了TestNG中`@DataProvider`的两种使用方法。本文通过实例展示了TestNG如何利用`@DataProvider`结合方法名和`ITestContext`来灵活地为测试方法传递参数。
11 1
|
1天前
|
开发框架 安全 Java
信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等
信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等
|
1天前
|
JSON 中间件 数据格式
Gin框架学习笔记(六)——gin中的日志使用
Gin框架学习笔记(六)——gin中的日志使用
|
2天前
|
Java 编译器
Java自定义测试框架测试对象中相应的成员方法
Java自定义测试框架测试对象中相应的成员方法
10 0
|
3天前
|
存储 测试技术 数据安全/隐私保护
《手把手教你》系列基础篇(七十六)-java+ selenium自动化测试-框架设计基础-TestNG实现DDT - 下篇(详解教程)
【6月更文挑战第17天】本文是一篇关于使用Selenium和TestNG进行数据驱动测试的教程。作者宏哥通过实例展示了如何处理多个用户登录场景。
37 0
|
28天前
|
Python
办公自动化-Python如何提取Word标题并保存到Excel中?
办公自动化-Python如何提取Word标题并保存到Excel中?
40 2
|
4天前
|
运维 监控 API
自动化运维实践指南:Python脚本优化服务器管理任务
本文探讨了Python在自动化运维中的应用,介绍了使用Python脚本优化服务器管理的四个关键步骤:1) 安装必备库如paramiko、psutil和requests;2) 使用paramiko进行远程命令执行;3) 利用psutil监控系统资源;4) 结合requests自动化软件部署。这些示例展示了Python如何提升运维效率和系统稳定性。
25 8
|
6天前
|
数据采集 人工智能 数据挖掘
让工作自动化起来!无所不能的Python
让工作自动化起来!无所不能的Python