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

 API_log.py

import logging

class loger():
    def logering(self):
        # 创建logger对象
        logger = logging.getLogger('test_logger')

        # 设置日志等级
        logger.setLevel(logging.DEBUG)

        # 追加写入文件a ,设置utf-8编码防止中文写入乱码
        test_log = logging.FileHandler('test.log', 'a', encoding='utf-8')

        # 向文件输出的日志级别
        test_log.setLevel(logging.DEBUG)

        # 向文件输出的日志信息格式
        formatter = logging.Formatter('%(asctime)s | %(filename)s | %(funcName)s | line:%(lineno)d | %(levelname)s | %(message)s ')

        test_log.setFormatter(formatter)

        # 加载文件到logger对象中
        logger.addHandler(test_log)

        return logger

if __name__ == "__main__":
    pass
# test = loger().logering()
log_test = loger().logering()

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

以下是代码的详细解析:

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

 执行测试case

import pytest
import requests
import API_log
# 实例化日志方法
logger = API_log.log_test


session = requests.Session()


# 请求登陆接口,获取session状态
def test_001():
    url = 'http://127.0.0.1:5000/login'

    data = {
        'username': 'admin',
        'password': 'admin123'
    }
    logger.info(f"请求路径:{url} , 请求参数 {data}")
    res = session.request(url=url, method='post', data=data)
    logger.info(f"响应内容:{res.text}")
    assert res.text == 'Login successful'
    return session


# 请求查看金额接口,通过session = requests.Session() ,保存登陆状态
def test_002():
    url2 = 'http://127.0.0.1:5000/query_balance'
    logger.info(f"请求路径:{url2}")
    res1 = requests.get(url=url2)
    logger.info(f"响应内容:{res1.text}")
    assert res1.text == 'Please login first'


if __name__ == '__main__':
   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库进行接口测试,并使用日志记录器记录请求和响应的相关信息,以便后续查看和分析。

pytest 结合logging输出日志保存至文件_第1张图片

pytest 结合logging输出日志保存至文件_第2张图片

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

你可能感兴趣的:(#,pytest测试框架,#,python,pytest)