• 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博客

  • 相关阅读:
    nginx 反向代理 ElasticSearch es
    【Leetcode】1824. Minimum Sideway Jumps
    电子邮件漏洞以及 S/MIME 如何提供帮助
    【进程、线程和进程间通信】(三)进程间通信
    C内存管理
    Android Kotlin 协程详解
    营销妙招:如何让产品与消费者发生关系?链动2+1模式分享
    【LeetCode刷题(数据结构与算法)】:数据结构中的常用排序实现数组的升序排列
    RabbitMQ队列持久化的重要性与意义
    什么是Bean的循环依赖?解决方案是什么?
  • 原文地址:https://blog.csdn.net/qq_26086231/article/details/131743765