【Selenium06篇】python+selenium實現Web自動化:日誌處理

一、前言

最近問我自動化的人確實有點多,個人突發奇想:想從0開始講解python+selenium實現Web自動化測試,請關注博客持續更新!

這是python+selenium實現Web自動化第六篇博文

二、Selenium成套博文地址,總有你需要的:

【Selenium篇01】python+selenium實現Web自動化:搭建環境,Selenium原理,定位元素以及瀏覽器常規操作!

https://blog.csdn.net/pengjiangchun/article/details/105532670

【Selenium02篇】python+selenium實現Web自動化:鼠標操作和鍵盤操作!

https://blog.csdn.net/pengjiangchun/article/details/105532867

【Selenium03篇】python+selenium實現Web自動化:元素三類等待,多窗口切換,警告框處理,下拉框選擇

https://blog.csdn.net/pengjiangchun/article/details/105533107

【Selenium04篇】python+selenium實現Web自動化:文件上傳,Cookie操作,調用 JavaScript,窗口截圖

https://blog.csdn.net/pengjiangchun/article/details/105534081

【Selenium05篇】python+selenium實現Web自動化:讀取ini配置文件,元素封裝,代碼封裝,異常處理,兼容多瀏覽器執行

https://blog.csdn.net/pengjiangchun/article/details/105573687

【Selenium06篇】python+selenium實現Web自動化:日誌處理

https://blog.csdn.net/pengjiangchun/article/details/105574193

【Selenium07篇】python+selenium實現Web自動化:PO模型,PageObject模式!

https://blog.csdn.net/pengjiangchun/article/details/105574676

【Selenium08篇】python+selenium實現Web自動化:數據驅動框架,ddt,關鍵字驅動框架

https://blog.csdn.net/pengjiangchun/article/details/105574954

 

三、Selenium之-日誌處理

到這裏已經搞了好多,但是在排查問題的時候,不是很方便,我們需要對程序的執行中錯誤的地方進行記錄。

1.在 console 輸出log

可以將日誌信息輸出的console中,但是這種方式不常用。日常更多使用的是2的方法,將日誌信息輸出到log文件中。

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@Time    :   2020/4/17
@Author  :   公衆號:軟測之家  更多技術乾貨,軟測視頻,面試資料請關注!
@Contact :   軟件測試技術羣:695458161
@License :   (C)Copyright 2017-2019, Micro-Circle
@Desc    :   None
"""

import logging

class RecordLog(object):
    def __init__(self):
        self.logger = logging.getLogger()
        self.logger.setLevel(logging.DEBUG)

        # 1. 在 console 中輸出日誌文件
        # 能夠將日誌信息輸出到sys.stdout, sys.stderr 或者類文件對象
        # 日誌信息會輸出到指定的stream中,如果stream爲空則默認輸出到sys.stderr。
        console = logging.StreamHandler(stream=None)
        # 將sys.stderr中的信息添加到logger中
        self.logger.addHandler(console)
        # 輸出調試信息
        self.logger.debug("這是一條在控制檯線上的log")
        # 關閉流
        console.close()
        # 移除
        self.logger.removeHandler(console)


if __name__ == "__main__":
    rl = RecordLog()

2.輸出日誌到log文件

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@Time    :   2020/4/17
@Author  :   公衆號:軟測之家  更多技術乾貨,軟測視頻,面試資料請關注!
@Contact :   軟件測試技術羣:695458161
@License :   (C)Copyright 2017-2019, Micro-Circle
@Desc    :   None
"""

import logging
import os
from datetime import datetime


class RecordLog(object):
    def __init__(self):
        self.logger = logging.getLogger()
        self.logger.setLevel(logging.DEBUG)

        # 2.將log信息輸出到log文件中
        # 2.1 先定位看將log文件輸出到哪裏去
        current_dir = os.path.dirname(os.path.abspath(__file__))
        print(current_dir)  # D:\MySpace\Python\WebTesting\util
        log_dir = os.path.join('../logs')
        # 日誌名稱構建
        log_file_name = datetime.now().strftime("%Y-%m-%d") + '.log'
        log_file_path = log_dir + '/' + log_file_name
        print(log_file_path)

        # 2.2 好的,將日誌寫進log文件中
        self.file_handle = logging.FileHandler(log_file_path, 'a', encoding='utf-8')
        formatter = logging.Formatter(
            '%(asctime)s %(filename)s %(funcName)s %(levelno)s: [%(levelname)s] ---> %(message)s')
        self.file_handle.setFormatter(formatter)
        self.logger.addHandler(self.file_handle)

    def get_log(self):
        return self.logger

    def close_handle(self):
        self.logger.removeHandler(self.file_handle)
        self.file_handle.close()


if __name__ == "__main__":
    rl = RecordLog()
    log_info = rl.get_log()
    log_info.debug('輸出到文件中去')
    rl.close_handle()

四、持續更新中請關注

如果你覺得此文對你有幫助,如果你對軟件測試、接口測試、自動化測試、面試經驗交流感興趣歡迎加入:

軟件試技術羣:695458161,羣裏發放的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。

作者:諸葛
出處:https://blog.csdn.net/pengjiangchun
原創不易,歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章