栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python-配置文件和log

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python-配置文件和log

1、配置文件

配置文件是用于配置计算机程序的参数和初始化设置的文件。如果没有这些配置文件,程序将无法运行。比如现在要开发一款APP,部署这款APP时,需要配置它的host地址、数据库地址、数据库名称,这些都可以作为配置项写入配置文件。当项目上线时,只需要修改配置文件,不需要去代码中到处查找。

配置文件通常是key/value的形式存在,任何支持解析key/value形式的文件都可以作为配置文件。

现在主流的配置文件格式:Linux中的.bashrc、YAML、TOML、JSON、XML、INI

2、yaml

文件格式.yaml/.yml

yaml文件中的内容表示方式:键 : 值 (注意:冒号前后必须加空格)   字符串可以加引号,也可以不加引号,建议加引号,可以减少bug

 读取yaml文件

安装pyyaml,安装方法同unittestreport

新建py文件,读取yaml文件

import yaml

# 读取yaml文件
with open('demo.yaml',encoding='utf-8') as f:
    # 安全加载
    data = yaml.safe_load(f)
    # data是一个字典
print(data)

输出:{'username': 'xiaohuochai', 'password': 123456, 'hobby': [1, 2, 3], 'hobby1': [1, 2, 3], 'info': {'hobby': '123', 'an': 'how'}, 'info1': {'hobby': '123', 'an': 'how'}}

在自动化测试中可以使用yaml文件保存设置选项,也可以使用yaml保存测试用例数据。

3、ini配置格式

 4、log日志

程序运行过程中产生的信息。程序如何运行。

日志的作用:方笔定位、记录。

日志包含的信息:日期、等级、信息

等级:

1、NOSET 0 等于没写,无用的信息

2、debug,10,调试,一些额外信息、备注,往往和主体功能无关。日报里面的备注。

3、info,20 主体的功能信息,相当于日报,做了些啥。

4、warning,30,警告,下次可能要出错。

5、error,40,犯错、违法

6、critical,50,极其严重的错误

loguru

记录程序运行的日志:

1、logger.info()  记录步骤

2、logger.error()  记录异常

首先要安装,安装方法同unittestreport

注意输出日志不同等级的颜色

具体在用例中的用法
import unittest
from loguru import logger

def login(username = None,password = None):
    if username is None or password is None:
        return {"code":"400","msg":"用户名或密码为空"}
    elif username == "yuze" and password == "123":
        return {"code":"200","msg":"登录成功"}
    else:
        return {"code":"300","msg":"用户名或密码错误"}

class TestLogin(unittest.TestCase):

    def test_login_1(self):
        username = "xiaodouhao"
        password = "1234"
        expected = {"code":"400","msg":"用户名或密码错误"}
        logger.info("正在执行测试用例1")
        actual = login(username,password)
        self.assertEqual(expected,actual)
        logger.info("测试用例1执行完毕")

可以在程序的任意一行增加info

当代码预计会发生错误是可以添加error,断言时可能会抛出异常,使用try  except 捕获异常。注意一定要加raise,抛出异常。

def test_login_1(self):
    username = "xiaodouhao"
    password = "1234"
    expected = {"code":"400","msg":"用户名或密码错误"}
    logger.info("正在执行测试用例1")
    actual = login(username,password)
    try:
        self.assertEqual(expected,actual)
    except AssertionError as e:
        logger.error("测试用例1断言失败")
        raise e
    logger.info("测试用例1执行完毕")
将日志保存在文件中

需要在程序的开头增加:

logger.add(sink="demo.log",encoding="utf-8",retention="100 MB")

会自动生成demo.log文件。

参数说明:

retention="100 MB" 表示当日志文件大于100MB时会新建另一个日志文件。可以省略。

retention="12:00" 表示每天12点后会生成日志文件。

retention="1 week" 表示每周会生成日志文件。

retention="10 day"  表示每10天会生成日志文件。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/321565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号