流媒体网站建设,网站变灰兼容代码,网站设计公司竞争优势,汽车低价网站建设pytest日志分为两类#xff1a;
一、终端#xff08;控制台#xff09;打印的日志
1、指定-s#xff0c;脚本中print打印出的信息会显示在终端#xff1b;
2、pytest打印的summary信息#xff0c;这部分是pytest 的默认输出#xff08;例如测试结果PASSED, FAILED, S…pytest日志分为两类
一、终端控制台打印的日志
1、指定-s脚本中print打印出的信息会显示在终端
2、pytest打印的summary信息这部分是pytest 的默认输出例如测试结果PASSED, FAILED, SKIPPED, warnings等的通常是直接打印到终端而不是通过 logging 记录。
二、使用logging模块打印的信息
例如指定的--log-file只捕获 logging 模块的日志在代码中要在关键处或想记录日志的地方或者是在你写print的地方使用logging.getLogger()记录
import logginglogger logging.getLogger(__name__)def test_login():try:rsp requests.post(url, headersHEADERS, datadata, timeout(10, 10), verifyFalse)rsp.raise_for_status()g1_sid rsp.json().get(data, {}).get(sid)g1_uid rsp.json().get(data, {}).get(uid)decode_body unquote(rsp.request.body.decode(utf-8) if isinstance(rsp.request.body, bytes) else rsp.request.body)logger.info( HTTP Request )logger.info(fURL: {url})logger.info(fMethod: POST)logger.info(fHeaders: {rsp.request.headers})logger.info(fBody: {decode_body})logger.info( HTTP Response )logger.info(fStatus Code: {rsp.status_code})logger.info(fBody: {rsp.text})return g1_sid, g1_uidexcept requests.RequestException as e:print(fRequest failed: {e})logger.error(fRequest failed: {e})return None, None
通过logging模块记录日志可以在pytest.ini中进行配置例如
[pytest]
log_cli false
log_cli_level INFOlog_format %(asctime)s %(levelname)s %(name)s %(funcName)s %(lineno)d %(message)slog_date_format %Y-%m-%d %H:%M:%Slog_file pytest_project_log.txt
log_file_level INFO
log_cli打印在终端即记录在文件里的日志也会原样的打印在终端上
log_cli_level日志级别
%(asctime)s当前时间
%(levelname)s日志级别
%(name)sLogger的名称通常是模块名或者类名
%(funcName)s当前执行的方法名
%(lineno)d日志输出所在行号
%(message)s日志信息内容
%(module)s模块名称
%(pathname)s文件的完整路径
%(threadName)s当前线程名称
log_date_format时间格式
log_file日志文件名称
log_file_level日志级别
具体内容是这样 如果在pytest.ini中进行了配置那么在pytest命令行中就不用指定--log-file 和 --log-level了这样命令行就简化一些了例如
pytest -q -s -ra --count3 test_open_stream.py --alluredir./report/CXL/resource
注如果在代码中没有引入logging模块或者引入了logging模块没有使用logging.getLogger()记录日志仅在命令行中指定--log-file和--log-level在日志文件中是不能记录日志的。
注如果配置文件和命令行中同时指定了日志级别以命令行指定的级别优先
日志的级别从低到高依次是debug、info、warning、error、critical
【总结】
pytest的summary日志是输出在控制台的需要单独保存保存方法可以用之前提到的tee和重定向脚本的运行日志需要引入logger模块并在关键地方使用logger.getLogger()记录保存在日志文件中这两部分日志是分开处理的。