• pytest 结合logging输出日志保存至文件


     API_log.py

    1. import logging
    2. class loger():
    3. def logering(self):
    4. # 创建logger对象
    5. logger = logging.getLogger('test_logger')
    6. # 设置日志等级
    7. logger.setLevel(logging.DEBUG)
    8. # 追加写入文件a ,设置utf-8编码防止中文写入乱码
    9. test_log = logging.FileHandler('test.log', 'a', encoding='utf-8')
    10. # 向文件输出的日志级别
    11. test_log.setLevel(logging.DEBUG)
    12. # 向文件输出的日志信息格式
    13. formatter = logging.Formatter('%(asctime)s | %(filename)s | %(funcName)s | line:%(lineno)d | %(levelname)s | %(message)s ')
    14. test_log.setFormatter(formatter)
    15. # 加载文件到logger对象中
    16. logger.addHandler(test_log)
    17. return logger
    18. if __name__ == "__main__":
    19. pass
    20. # test = loger().logering()
    21. log_test = loger().logering()

     代码定义了一个名为loger(应该为logger以与日志记录模块保持一致)的类。这个类有一个名为logering()的方法,它创建一个日志记录器对象,并将其配置为将日志消息追加到名为"test.log"的文件中。

    以下是代码的详细解析:

    1. 导入了logging模块。
    2. 定义了loger类。
    3. loger类内定义了logering()方法。
    4. logering()方法中进行了日志记录器的配置,将日志消息写入追加模式的名为"test.log"的文件中。

     执行测试case

    1. import pytest
    2. import requests
    3. import API_log
    4. # 实例化日志方法
    5. logger = API_log.log_test
    6. session = requests.Session()
    7. # 请求登陆接口,获取session状态
    8. def test_001():
    9. url = 'http://127.0.0.1:5000/login'
    10. data = {
    11. 'username': 'admin',
    12. 'password': 'admin123'
    13. }
    14. logger.info(f"请求路径:{url} , 请求参数 {data}")
    15. res = session.request(url=url, method='post', data=data)
    16. logger.info(f"响应内容:{res.text}")
    17. assert res.text == 'Login successful'
    18. return session
    19. # 请求查看金额接口,通过session = requests.Session() ,保存登陆状态
    20. def test_002():
    21. url2 = 'http://127.0.0.1:5000/query_balance'
    22. logger.info(f"请求路径:{url2}")
    23. res1 = requests.get(url=url2)
    24. logger.info(f"响应内容:{res1.text}")
    25. assert res1.text == 'Please login first'
    26. if __name__ == '__main__':
    27. pytest.main(["-v", "testcase.py"])

    这段代码使用了pytestrequests库进行接口测试,并引入了之前提到的API_log模块中的日志记录器对象logger

    代码的主要部分包括两个测试函数:test_001()test_002()

    test_001()函数发送一个POST请求到http://127.0.0.1:5000/login接口,传递用户名和密码作为请求参数。在发送请求前,使用日志记录器记录了请求路径和参数。发送请求后,记录了响应内容,并使用断言验证了响应文本是否为'Login successful'。

    test_002()函数发送一个GET请求到http://127.0.0.1:5000/query_balance接口。同样地,在发送请求前,使用日志记录器记录了请求路径。发送请求后,记录了响应内容,并使用断言验证了响应文本是否为'Please login first'。

    最后,通过pytest.main(["-v", "testcase.py"])运行了测试脚本。

    这段代码的目的是使用pytest库进行接口测试,并使用日志记录器记录请求和响应的相关信息,以便后续查看和分析。

    (35条消息) python 把txt文本的log日志倒序处理_U盘失踪了的博客-CSDN博客

  • 相关阅读:
    51单片机实训项目之产品数量计数器
    SpringBoot(一、快速入门)
    时间是主观的,每个人对时间的感受都不同#Exploration of Time - 时间的探索
    Postgresql中ParamListInfoData的作用
    Hive查询操作详解
    开源框架简介
    编写一款2D CAD/CAM软件(十五)封装交互操作类
    excel高级绘图技巧100讲(二十二)-如何对不规则数据进行分列
    Vue - 每个页面单独设置 body 背景色(独立修改单个页面的背景色,不同页面设置不同的背景颜色)
    假离婚变成真离婚,财产怎么办
  • 原文地址:https://blog.csdn.net/qq_26086231/article/details/131743765