
Pytest
在上篇文章,我们介绍了pytest-html,那么本篇文章带来allure测试报告框架的使用教程,这个allure报告目前发现是市面上最精美的测试报告之一了,功能非常的多吗,也非常的好看,值得一试!
01
介绍
allure官网 :
http://allure.qatools.ru/

安装包下载地址:
https://github.com/allure-framework/allure2/releases
allure
allure是一个轻量级、灵活的、支持多语言的测试报告工具,基于java语言开发,支持java,python,javascript,ruby,php等多种语言,同时拥有jenkins的相关插件支持,可以很好的运用到持续集成中。
02
allure工具环境配置
在使用allure之前,我们必须先要安装java jdk环境(本篇文章不介绍,请自行百度)和 allure环境。
01
allure下载
下载地址:
https://github.com/allure-framework/allure2/releases
我们直接下载allure.zip即可:

下载好之后进行解压 ,我们需要给其配置环境变量(Mac版本,Windows类似),解压之后如下:

我们注意这个bin目录,需要把这个路径配置到环境变量中,也就是我们的bash_profile文件,首先我们打开bash_profile:
vim ~/.bash_profile
接着使用vim的输入模式,加上一行代码:

接着使用:wq保存一下文件,并且使用下面的命令使其生效:
source ~/.bash_profile
那么现在我们可以确认一下allure环境是否配置好了,输入allure看看:

如果出现和上面一样的提示,那么恭喜,此时allure环境已经配置完毕了。
03
allure-pytest生成测试结果
allure-pytest是pytest的第三方插件,为了支持allure实现的一个插件,他可以帮助我们保存用例的执行结果,供allure使用。
安装:
pip install allure-pytest
安装完成了之后,我们使用pytest -h命令查看一下,会多出一些命令选项:

在使用pytest执行测试用例的时候,使用命令:
pytest --alluredir=./allure-results
当然在此之前,我们还要有测试用例:
import pytestdef test_001():print('test_001')def test_002():print('test_002')def test_003():print('test_003')def test_004():print('test_004')
运行命令后,可以发现当前目录下多了一个 allure-results文件夹:

这里面大概存的就是一些测试的结果数据,有了数据后,我们就可以利用allure来生成测试报告。
04
allure生成静态测试报告
在有了上面的测试数据后,很简单,我们只需要一条命令就可以生成测试报告了:
allure generate ./allure-results/ -o ./allure-report/ --clean
generate后面跟测试结果数据的目录,-o跟输出测试报告的目录,--clean代表每次清空报告数据重新生成。
运行完后 ,发现目录下又多了一个文件夹:

可以看到,和pytest-html一样 ,它也拥有很多的这个样式文件,同时,他还有其他的一些比如说存储数据的文件夹data,存储历史记录的history等等,功能非常的多,并且东西也非常的多。我们尝试打开一些index.html试试看:

可以看到现在测试报告已经完美生成了,我们可以查看一下具体的执行记录:

05
allure在线报告
如果你不想生成大量的静态测试报告资源,或者想在局域网上把测试报告共享给其他人看,那么allure也提供了在线的测试报告,我们需要使用如下命令:
allure serve ./allure-results
allure serve可以指定需要生成报告的测试结果数据,然后生成一份在线的测试报告,可以直接浏览器访问:
(venv) zhangyingkai@kaikaideMacBook-Pro f_pytest % allure serve ./allure-resultsGenerating report to temp directory...Report successfully generated to var/folders/jg/jbnxsfzx3gv_5vbyfmc1lq5w0000gn/T/6115195889032489317/allure-reportStarting web server...2021-08-12 15:14:58.083:INFO::main: Logging initialized @2859ms to org.eclipse.jetty.util.log.StdErrLogServer started at <http://127.0.0.1:58622/>. Press <Ctrl+C> to exit
命令行启动后,会自动打开浏览器:

可以看到,在我本地的localhost的58622端口已经运行了一份测试报告。
完美end.
06
结尾
allure的功能还有很多很多,比如它支持一些截图,支持一些装饰器的使用,可以对我们用例的步骤进行拆分,还可以给用例打标记之类的功能,我们就不放在本篇介绍了,就留给大家自行学习,小提莫在这里抛砖引玉一下了。
see you later.




