
python篇-pytest+allure测试报告(图文详解)
d ./result/ -o ./report/ --clean (覆盖路径加–clean)allure安装路径: C:\D\soft\allure-2.26.0\bin path中。allure报错:‘allure‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。cmd中输入allure,allure --version,查看环境变量是否配置成功。2、安装allure后,检查是否配置al
1、安装allure
下载地址:Releases · allure-framework/allure2 · GitHub
解压后,运行 allure.bat,会弹出一个黑框一闪而过(闪的太快,没有截到图~~)
2、配置环境变量
allure安装路径: C:\D\soft\allure-2.26.0\bin path中
cmd中输入allure,allure --version,查看环境变量是否配置成功
3、下载allure-pytest插件
下载 pip install allure-pytest
查看 pip show allure-pytest
4、执行自动化用例,生成allure报告所需文件
执行用例,并指定生成allure报告路径,命令如下:
pytest Test_demo02.py -s -q --alluredir=./result
- alluredir 指定
存放allure报告的路径
如图,生成两个文件夹:pytest_cache/result
result文件夹中三个json文件,对应用例中的三条case。
5、查看报告方式两种
方式一:可以通过allure解析json文件,使用命令查看报告
allure serve ./result (指定result文件夹路径)
会自动打开浏览器,展示allure报告
方式二:通过结果生成报告
d ./result/ -o ./report/ --clean (覆盖路径加–clean)
allure generate ./allure -o ./allure-report --clean
./allure: pytest执行测试报告生成的数据文件路径
-o :输出参数
./allure-report: 生成报告到此路径
--clean:--clean
参数的作用是在生成新报告之前清理目标目录(也就是报告输出目录)。这意味着如果目标目录 ( ./allure-report) 中已经存在旧的报告文件,使用 --clean
参数会先删除这些旧文件,然后再生成新的报告。
打开报告
allure open -h 127.0.0.1 -p 8883 ./report/
6、allure serve ./result/报错的解决思路
pycharm的终端输入:allure serve ./result/
allure报错:‘allure‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
解决思路:
- 没有下载allure,只是安装了allure-pytest插件
- 安装allure后,检查是否配置allure的环境变量到path
- 配置环境变量后,需要重启pycharm,可能是环境变量没有同步过来导致。
- 关闭防火墙开关。
7、allure常用注解
实例如下
import allure
import pytest
from allure_commons.types import LinkType, Severity
@allure.parent_suite('我是parent_suite')
@allure.suite('我是suite')
@allure.sub_suite('我是sub_suite')
@allure.epic('我是epic')
@allure.feature('我是feature')
@allure.story('我是story')
class TestAllureDemo:
@allure.step('我是断言')
def assert_one(self, a, b):
assert a == b
@allure.id('我是id')
@allure.title('我是title')
@allure.link('https://www.baidu.com/', LinkType.ISSUE, '我是link_ISSUE')
@allure.label('我是label')
@allure.issue('https://www.baidu.com/', '我是issue')
@allure.description('我是description')
@allure.severity(Severity.BLOCKER)
@allure.tag('我是tag')
@allure.testcase('https://www.baidu.com/', 'testcase')
def test_01(self):
self.assert_one(1, 1)
@allure.id('我是id')
@allure.title('我是title')
@allure.link('https://www.baidu.com/', LinkType.LINK, '我是link')
@allure.label('我是label')
@allure.issue('https://www.baidu.com/', '我是issue')
@allure.description('我是description')
@allure.severity('我是severity')
@allure.tag('我是tag')
@allure.testcase('https://www.baidu.com/', '我是testcase')
def test_02(self):
allure.dynamic.mro()
allure.dynamic.title('我是修改后的title')
allure.dynamic.link('https://www.baidu.com/', LinkType.LINK, '我是修改后的link')
allure.dynamic.label('我是修改后的label')
allure.dynamic.issue('https://www.baidu.com/', '我是修改后的issue')
allure.dynamic.description('我是修改后的description')
allure.dynamic.severity('我是修改后的severity')
allure.dynamic.tag('我是修改后的tag')
allure.dynamic.testcase('https://www.baidu.com/', '我是修改后的testcase')
assert 1 > 1
生成的报告如下
case1: test_01
case2: test_02
更多推荐
所有评论(0)