暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Pytest-html报告以及Python打印日志

程序员杨叔 2022-02-24
1159

大家好,我是杨叔。每天进步一点点,关注我的微信公众号【程序员杨叔】,获取更多测试开发技术知识!



一、Pytest-html生成独立的报告




背景:

使用pytest运行case后,需要生成一个HTML报告,方便查看和分享测试结果。因此需要用到pytest-html。

安装:

    pip install pytest-html

    生成报告:

      pytest xxxx.py --html=report.htm

      将报告生成到指定的文件夹目录下:

      比如放到testoutput文件夹下,参考命令:

        pytest xxxx.py --html=../testoutput/report.html

        报告独立显示:

        上面方法生成的报告,css是独立的,分享报告的时候样式会丢失,为了更好的分享发邮件展示报告,可以把css样式合并到html里

          pytest xxxx.py --html=../testoutput/report.html --self-contained-html



          二、Python打印日志






          1、使用logging


          踩坑日记要先配置哦,不配置的话,直接import logging, 然后logging.info是不会打印log日志的

          正确操作
          第一步:pytest.ini文件中添加如下log的配置

            [pytest]
            log_cli = true
            log_cli_level = INFO
            log_cli_format = %(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s
            log_cli_date_format=%Y-%m-%d %H:%M:%S
            log_format = %(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)4s: %(message)s
            log_date_format=%Y-%m-%d %H:%M:%S

            第二步:直接使用

              import logging
              logging.info("测试开始啦~~~~~~~")

              控制台就会看见日志打印:


              pytest html报告中也能看到:




              2、使用loguru


              使用logging是一个较为可行的配置方案了,但是会感觉到有些配置配起来麻烦,尤其是新建一个项目的很多时候懒得去写一些配置,感觉并不是一个优雅的实现方式。有没有log的配置和使用更加简单和方便的第三方库呢?当然有的,就是loguru。

              安装
              Python3下使用命令:

                pip3 install loguru

                基本使用

                  from loguru import 
                  loggerlogger.info("测试开始啦~~~~")

                  不需要配置,直接引入logger,然后调用其info方法即可。

                    2022-02-19 22:46:12.367 | INFO    | __main__:<module>:4 - 测试开始啦~~~~

                    可以看到其默认的输出格式是上面的内容,有时间、级别、模块名、行号以及日志信息。

                    如果需要将日志输出到一个log文件里,只需要使用一行代码声明即可。例如将结果输出到一个 logtest.log 文件里面,可以这么写:

                      from loguru import logger
                      logger.add('logtest.log')
                      logger.info('this is a test')


                      END



                      以上就是本篇文章的全部内容,如果对你有帮助,
                      欢迎点赞+关注+分享,一起交流成长!

                      文章转载自程序员杨叔,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                      评论