前面我们介绍过通过pytest-html插件来生成测试报告,pytest-html生成的测试报告不够美观,逼格也不够高,通过allure生成的测试报告是比较美观的,花里胡哨的,能够提升一个level。
allure官网:https://docs.qameta.io/allure/
allure命令行工具安装:
按照官方文档上的提示来进行allure命令行工具的安装:
- 首先下载allure-commandline最新的zip文件包:https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/
- 然后将zip包解压到目录中
- 进入到bin目录
- window下使用allure.bat 或 Linux下使用allure
- 注意需要将allure添加到环境变量中
- 命令行下输入:allure --version,出现以下提示表示allure安装成功
按照上面的步骤安装好allure-commandline工具。注意下载zip包的链接在官网中是http协议的,点击会报错,我们将协议改成http改成https访问链接就可以了。
allure添加到环境变量中:
- 进入到当前用户目录下,执行:open .bash_profile,打开一个记事本
- 编辑记事本,在文件最后输入:
PATH="/usr/local/allure-2.9.0/bin:$PATH" export PATH
- command+s保存
- 然后命令行中输入:source .bash_profile,使配置立即生效;
- 任意目录下,命令行中输入allure,出现以下提示表示环境变量配置成功;
注意:执行allure命令时,需要jdk的支持,因此使用allure的前提是系统中安装了jdk并且配置了环境变量,jdk的安装以及环境变量配置在此不再赘述了。
下载安装allure-pytest插件:
命令行下输入命令进行安装:
pip install allure-pytest
上面的命令执行后会安装allure-pytest 和 allure-python-commons 包,这两个包用来生成allure所需要的测试报告数据。
allure应用举个栗子:
# file_name: test_allure.py import pytest import allure @pytest.fixture(scope="function") def login(): print("执行登录逻辑") yield print("执行退出登录逻辑") @allure.feature("加入购物车") def test_01(login): """ 先登录,再进行其他操作 :param login: :return: """ print("测试用例01正在执行") @allure.feature("加入购物车") def test_02(): """ 不需要登录,直接操作 :return: """ print("测试用例02正在执行") if __name__ == '__main__': pytest.main(['-s', 'test_allure.py'])
运行用例,进入到test_allure.py所在目录,执行命令:
pytest --alluredir=./report/result # --alluredir表示指定测试报告数据的生成路径
执行完成上述命令后,会在当前目录下,report目录下生成一个result目录文件,result下只是一些测试报告的原始数据,还不能作为html报告打开。
在线查看测试报告还需要执行下面的命令:
allure serve ./report/result
上面的命令会启动一个allure服务并自动分配端口,然后使用默认浏览器自动打开index.html,查看测试报告:
查看测试报告:
至此,我们就可以使用pytest结合allure生成更加美观的测试报告了。