大家好,我是杨叔。每天进步一点点,关注我的微信公众号【程序员杨叔】,获取更多测试开发技术知识!
使用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
踩坑日记:要先配置哦,不配置的话,直接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报告中也能看到:
使用logging是一个较为可行的配置方案了,但是会感觉到有些配置配起来麻烦,尤其是新建一个项目的很多时候懒得去写一些配置,感觉并不是一个优雅的实现方式。有没有log的配置和使用更加简单和方便的第三方库呢?当然有的,就是loguru。
安装
Python3下使用命令:
pip3 install loguru
基本使用
from loguru import logger logger.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')
=========================================================
以上,如果对你有帮助,
欢迎搜索关注我的微信公众号【程序员杨叔】,免费了解获取更多测试相关干货内容资料,一起交流学习~