Web自动化测试项目(七)日志

一、日志作用

  • 调试程序
  • 了解系统程序运行的情况,是否正常
  • 系统程序运行故障分析与问题定位
  • 用来做用户行为分析和数据统计

二、为项目添加日志

└── utils
    ├── log_utils.py
    └── se_utils.py

log_utils.py

import logging.handlers
import time

class GetLogger():
    logger = None

    @classmethod
    def get_logger(cls):
        if cls.logger == None:
            # 日志器实例
            cls.logger = logging.getLogger()

            # 设置日志级别
            cls.logger .setLevel(level=logging.INFO)

            # 控制台处理器实例
            ch = logging.StreamHandler()

            # 以时间切分日志文件处理器
            filename = '../logs' + '/' + time.strftime('%Y%m%d') + 'WebUiTestLog.log'
            th = logging.handlers.TimedRotatingFileHandler(filename=filename, when='midnight', interval=1,
                                                           backupCount=30, encoding='utf-8')

            # 设置日志格式
            fmt = "%(asctime)s %(levelname)s [%(name)s] [filename: %(filename)s - moudle: %(module)s - func: %(funcName)s  %(lineno)d line] - %(message)s"
            fm = logging.Formatter(fmt)

            # 将日志格式添加到处理器
            ch.setFormatter(fm)
            th.setFormatter(fm)

            # 将处理器添加到日志器
            cls.logger .addHandler(ch)
            cls.logger .addHandler(th)
        return cls.logger

se_utils.py 添加浏览器启动和关闭的日志

from selenium import webdriver

from utils.log_utils import GetLogger

logger = GetLogger.get_logger()

class Driver():
    _driver = None

    @classmethod
    def get_driver(cls, browser_name='Chrome'):
        if cls._driver == None:
            logger.info('正在打开浏览器.....')
            if browser_name == 'Chrome':
                cls._driver = webdriver.Chrome()
            elif browser_name == 'Firefox':
                cls._driver = webdriver.Firefox()
            elif browser_name == 'Safari':
                cls._driver == webdriver.Safari()
            elif browser_name == 'Opera':
                cls._driver == webdriver.Opera()
            elif browser_name == 'edge':
                cls._driver == webdriver.Edge()
            elif browser_name == 'Ie':
                cls._driver == webdriver.Ie()
            else:
                raise NameError(
                    "Not found %s browser,You can enter 'Chrome', 'Firefox', 'Ie', 'Edge', 'Safari',Opera" % browser_name)
            logger.info('打开{}浏览器'.format(cls._driver.name))

        return cls._driver

    @classmethod
    def quit_driver(cls):
        if cls._driver:
            logger.info('正在关闭{}浏览器'.format(cls._driver.name))
            cls._driver.quit()
            logger.info('已关闭{}浏览器'.format(cls._driver.name))

        cls._driver = None

base_page.py 添加定位信息的日志

    def find_element(self, locator):
        try:
            WebDriverWait(driver=self.driver, timeout=TIMEOUT, poll_frequency=POLL_FREQUENCY).until(
                EC.visibility_of_element_located(locator))
            return self.driver.find_element(*locator)
        except Exception as e:
            msg = "元素定位超时 {}: {}".format(locator[0], locator[-1])
            logger.error(msg)
            raise TimeoutException(msg)

更多日志信息请根据例子麻烦自行添加

原文地址:https://www.cnblogs.com/snailrunning/p/12237190.html

时间: 2024-10-09 16:56:43

Web自动化测试项目(七)日志的相关文章

Web自动化测试项目(四)测试报告

测试报告生成 使用HTMLTestRunner 生成测试报告 本文使用的 HTMLTestRunner 来源于github: https://github.com/githublitao/HTMLTestRunner_Chart 参考链接: http://tungwaiyip.info/software/HTMLTestRunner.html https://github.com/GoverSky/HTMLTestRunner_cn 把下载下来的HTMLTestRunner_Chart.py存放

Web自动化测试项目搭建(一) 需求与设计

一.项目需求 测试/生产环境更新后,自动化回归测试 项目易于维护和运行 支持多种测试策略 支持可视化测试报告 运行结果,支持多种方式通知相关人员 可定时/触发的方式运行自动化测试用例 二.设计 2.1 需要的技能 Python基础(面向对象) 熟悉Python引包机制 了解Html,Css,异步请求 熟练使用Selenium API(最好有读过源码) 熟练使用Python Uittest/Pytest 测试框架 了解PO设计模式 2.2 项目目录划分 ├── config │?? └── __i

Sahi ---实现 Web 自动化测试

Sahi 是 Tyto Software 旗下的一个基于业务的开源 Web 应用自动化测试工具.Sahi 运行为一个代理服务器,并通过注入 JavaScript 来访问 Web 页面中的元素.Sahi 支持 HTTPS 并且独立于 Web 站点,简单小巧却功能强大.它相对于 Selenium 等自动化测试工具,在动态 ID 元素查找和隐式页面等待处理等方面具有一定的优势.选择 Sahi 工具来实现具体 Web 项目的自动化测试是一个很不错的选择. Web 测试背景 随着 Web 技术和互联网的发

使用 Sahi 实现 Web 自动化测试

Sahi 是 Tyto Software 旗下的一个基于业务的开源 Web 应用自动化测试工具.Sahi 运行为一个代理服务器,并通过注入 JavaScript 来访问 Web 页面中的元素.Sahi 支持 HTTPS 并且独立于 Web 站点,简单小巧却功能强大.它相对于 Selenium 等自动化测试工具,在动态 ID 元素查找和隐式页面等待处理等方面具有一定的优势.选择 Sahi 工具来实现具体 Web 项目的自动化测试是一个很不错的选择. Web 测试背景 随着 Web 技术和互联网的发

在ASP.NET Web API项目中使用Hangfire实现后台任务处理

当前项目中有这样一个需求:由前端用户的一个操作,需要触发到不同设备的消息推送.由于推送这个具体功能,我们采用了第三方的服务.而这个服务调用有时候可能会有延时,为此,我们希望将消息推送与用户前端操作实现异步执行,就是希望在后台自动执行,不阻塞前端用户的操作,而且最好能实现失败重试等功能. 经过一些研究比较,我们发现使用Hangfire这个组件可以较好地实现这个需求.为了给大家做一个演示,我这里简化了代码,做一个范例程序. 我在这里不准备详细介绍Hangfire的基本用法,有兴趣的同学们可以参考官方

项目log4j日志管理详解

项目log4j日志管理详解 log4j日志系统在项目中重要性在这里就不再累述,我们在平时使用时如果没有特定要求,只需在log4j.properties文件中顶入输出级别就行了.如果要自定义输出文件,对于初次使用者可能会遇到一点的小麻烦.最近在项目中刚做了一个统计用户登录的日志文件,要求将用户登录到某个模块的信息输出到login.log中,每天生成一个已日期命名的该类文件,现share出来. 1.Log4j下载 在apache网站:jakarta.apache.org/log4j 可以免费下载到L

Web 自动化测试与智能爬虫利器:PhantomJS 简介与实战

估计部分同学没听过这个工具,那先简单介绍下它的背景与作用. 1.PhantomJS 是什么? PhantomJS是一个基于WebKit的服务器端JavaScript API,它无需浏览器的支持即可实现对Web的支持,且原生支持各种Web标准,如DOM 处理.JavaScript.CSS选择器.JSON.Canvas和可缩放矢量图形SVG.PhantomJS主要是通过JavaScript和CoffeeScript控制WebKit的CSS选择器.可缩放矢量图形SVG和HTTP网络等各个模块.Phan

web自动化测试---概述

最早的时候是做功能测试,web都是自己手工点击看看有没问题,没有系统的进行测试,更别说自动化测试了,那是一段不堪回首的往事,就是因为这,很多问题都流出去了,这是作为测试人员的一大失职,痛定思痛,开始学些自动化测试的一些东西,感觉很是实用,所以现在回首一下,把一些知识点总结下,以便后续使用. 其他web自动化测试很早就有,测试工具也是层出不穷,如何选择适合自己和项目的测试工具非常重要,首先要能普及.易学习.易维护,能被大多数人所接受.比如之前有个项目组使用集成在firefox流量器上的seleni

Python Flask 快速构建高性能大型web网站项目实战

Python Flask 快速构建高性能大型web网站项目实战视频[下载地址:https://pan.baidu.com/s/1cUggNbUvptYz5vvwBhsdrg ] 作为最最流行的Python Web开发的微框架,Flask独树一帜.它不会强迫开发者遵循预置的开发规范,为开发者提供了自由度和创意空间.突然发现这个对自动化运维开发非常有用,发上来,给大家! Python Flask 快速构建高性能大型web网站项目实战视频 project.zip 第1章 课程介绍1.1-1.2课程导学