同样的,在使用pytest进行自动化测试时,需要将实时日志打印出来,而不是跑完后才在报告中出结果。

不过,好在pytest在3.3版本开始,就支持这一功能了,而不用再像nose一样,再去装第三方插件。

网上也有相关实时的日志输入说明,但我尝试后,不是我想要的,比如:pytest输出Log

看看我们下面这样一段代码,以unittest模式写的:

#coding:utf-8

'''Created on 2017年8月31日

@author: huzq'''

from __future__ importprint_functionimportpytestfrom unittest importTestCasefrom selenium importwebdriverimportlogging,syslog= logging.getLogger(__name__)classTestClass(TestCase):

@classmethoddefsetUpClass(cls):

log.info('setup_class()')

cls.driver=webdriver.Firefox()

cls.driver.get("http://www.baidu.com")

log.info("xxxxxxxxxxxxxxx")

@classmethoddefteardown_class(cls):

log.info('teardown_class()')defsetUp(self):

log.info('\nsetup_method()')

self.addCleanup(self.screen_shot)defscreen_shot(self):

log.info("yyyyyyyyyyyyyy")

log.info("sereen_shot")defqqq(self):

log.info("xxxxxxxxxxxqqqq")assert 4==5

#def teardown_method(self, method):

deftearDown(self):

log.info("ffjiafuiodafdfj___teardown")

@pytest.mark.slowdeftest_7(self):importtime

time.sleep(10)

log.info('- test_7()')

@pytest.mark.qqdeftest_4(self):importpdb;pdb.set_trace()

self.result=self.addCleanup(self.qqq)

log.info('- test_4()')deftest_5(self):

log.info('- test_4()')assert 4==5

如果没有加日志实时输出会是怎么样的,如下:

可以看出,日志在过程中没有实时输出,在实际跑项目录,这个有点不太好看。

解决:

看看pytest是怎么解决的呢。

首先pytest是从pytest.ini中读取log_cli配置的,默认是关闭的。如上图中显示,我们的pytest.ini文件是空的

再看看pytest -h文件:

关于log的help有以下:

--no-print-logs disable printing caught logs on failed tests.--log-level=LOG_LEVEL

logging level used by the logging module--log-format=LOG_FORMAT

log format as used by the logging module.--log-date-format=LOG_DATE_FORMAT

log date format as used by the logging module.--log-cli-level=LOG_CLI_LEVEL

cli logging level.--log-cli-format=LOG_CLI_FORMAT

log format as used by the logging module.--log-cli-date-format=LOG_CLI_DATE_FORMAT

log date format as used by the logging module.--log-file=LOG_FILE path to a file when logging will be written to.--log-file-level=LOG_FILE_LEVEL

log file logging level.--log-file-format=LOG_FILE_FORMAT

log format as used by the logging module.--log-file-date-format=LOG_FILE_DATE_FORMAT

log date format as used by the logging module.

View Code

然后你还会发现一行:

[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found:

所以,有两种方法解决

1) 在当前文件夹下写pytest.ini或tox.ini或setup.cfg文件,然后将日志相关写在里面,如下:

[pytest]

log_cli= 1log_cli_level=INFO

log_cli_format= %(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)

log_cli_date_format=%Y-%m-%d %H:%M:%S

这时就可以正常打印日志出来。

2)直接用pytest -o方式重写,这个功能在pytest 3.4之后才实现,如下

pytest pytest_lean2.py -o log_cli=true -o log_cli_level=INFO

结果如下:

update更新下:

实际在项目过程中,实时日志需要时间及文件名还有行号,可在后面加这样的参数:

-vv -o log_cli=true -o log_cli_level=INFO --log-date-format="%Y-%m-%d %H:%M:%S" --log-format="%(filename)s:%(lineno)s %(asctime)s %(levelname)s %(message)s"

结果就会像下面这样

python 日志框架_python pytest测试框架介绍五---日志实时输出相关推荐

  1. python api测试框架_python api 测试框架

    python常用框架 Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是 ...

  2. python做性能测试框架_python api 测试框架

    python常用框架 Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是 ...

  3. Python编程必不可少的pytest测试框架

    进行编程测试重要的是为了更高效的完成功能的实现. pytest是基于unittest实现的第三方测试框架,比 unittest 更加的简洁.高效,并且可以完美兼容 unittest 的测试代码,无需对 ...

  4. python 渗透框架_Python渗透测试框架:PytheM

    PytheM是一个Python渗透测试框架.它只能在osnGNU/Linux OS系统上运行. 安装$sudo apt-get update $sudo apt-get install libasou ...

  5. python实时读取日志并打印关键字怎么实现_python pytest测试框架介绍五---日志实时输出...

    同样的,在使用pytest进行自动化测试时,需要将实时日志打印出来,而不是跑完后才在报告中出结果. 不过,好在pytest在3.3版本开始,就支持这一功能了,而不用再像nose一样,再去装第三方插件. ...

  6. python数据驱动库_python webdriver测试框架--数据驱动DB驱动

    简介: 数据驱动数据库驱动方式,就是数据配置在数据库里面,主程序调用的时候每次用从数据库里取出的数据作为参数,进行操作, 需要掌握的地方是对数据库的操作,要灵活的找到目标数据 测试数据: 创建数据库. ...

  7. Pytest 测试框架——数据驱动

    引言 前面已经和大家介绍过 Unittest 测试框架的数据驱动框架 DDT,以及其实现原理.今天和大家分享的是 Pytest 测试框架的数据驱动,Pytest 测试框架的数据驱动是由 pytest ...

  8. Pytest测试框架(五):pytest + allure生成测试报告

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

  9. Pytest测试框架(二):pytest 的setup/teardown方法

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

最新文章

  1. 所有各数据库或文件的连接串定义CHM文件.
  2. SSA(static single assignment)(静态单赋值)
  3. Eratosthenes筛选求质数
  4. PHP获取MySQL执行sql语句的查询时间
  5. 10分钟学会js处理json常用方法
  6. SharePoint 2013常用开发工具分享
  7. 华北理工大学815c语言程序设计,2017年华北理工大学信息工程学院815C程序设计考研冲刺密押题...
  8. 如何在outlook的日历Calendar里实现按照多时区显示日程安排
  9. 在虚机上安装WIN2003
  10. linux eclipse svn插件安装,Linux上Eclipse安装SVN插件和安装JavaHL
  11. C语言 strlen 函数 - C语言零基础入门教程
  12. Node操作Mysql的简单例子
  13. C#使用SQLite数据库的代码示例
  14. Bootstrap 支持的设备类型
  15. 快速删除从CSDN复制的代码行前的数字的方法
  16. Python控制Word文件中段落格式与文本格式
  17. 单麦克纳姆轮受力分析
  18. shiro ajax请求拦截器,shiro 拦截器实现session过期拦截ajax请求的处理
  19. 使用虚拟环境 virtualenv
  20. 计算机主板启动显示器黑屏,电脑开机显示器黑屏怎么回事_开机显示器黑屏怎么解决...

热门文章

  1. 是时候贴上校园漫游的成品了【记录】
  2. 编写一个VSCode插件
  3. Codeforces Round #702 (Div. 3)A-G题解
  4. JAVA——多线程【线程终止、中断、插队】
  5. db2分组后上下合并不一样的列
  6. uni-app写小程序音乐播放器
  7. 【Framework】透视Android中的Handler
  8. 进制转换及如何求校验码(海明校验码及循环冗余校验CRC码)
  9. 关于javaweb项目不能删除jir包解决
  10. 如何下载原生纯净的Windows系统?(MSDN)