pytest测试完成后,可以通过三方库生成好看的测试报告。今天就来学习一款allure测试报告。

一、安装allure-pytest

1、下载,解压,配置path路径。
https://github.com/allure-framework/allure2/releases

将安装文件的bin目录安装到环境变量path里

D:\Program Files (x86)\allure-2.13.2\bin

验证是否安装成功:

allure --version

pytest测试夹具conftest和fixture pytest_generate_tests_python

pytest测试夹具conftest和fixture pytest_generate_tests_pycharm_02

如果pycharm验证失败,重启pycharm即可。

2、配置里添加生成测试报告的地址

[pytest]
addopts = -vs --alluredir ./temp
testpaths = ./testcase
python_files = test_04.py
python_classes = Test*
python_functions = test
markers =
    smoke:冒烟用例
    usermanage:用户管理模块
    www:测试

3、修改main函数

import os
import pytest
if __name__ == '__main__':
    pytest.main()
    os.system('allure generate ./temp -o ./report --clean')

4、直接执行main函数,生成报告

pytest测试夹具conftest和fixture pytest_generate_tests_python_03

pytest测试夹具conftest和fixture pytest_generate_tests_软件测试_04

5、每次生成报告不替换之前的,修改main函数

import os
import time
import pytest
if __name__ == '__main__':
    pytest.main()
    # 添加时间
    times = time.strftime("%Y_%m_%d_%H_%M_%S",time.localtime())
    os.system('allure generate ./temp -o ./report/report_'+times+' --clean')

pytest测试夹具conftest和fixture pytest_generate_tests_自动化测试_05

正在上传…重新上传取消

二、定制allure报告

修改allure配置。首先打开安装目录,我是安装在

D:\Program Files (x86)\allure-2.13.2

pytest测试夹具conftest和fixture pytest_generate_tests_自动化测试_06

里面有4个目录:

bin:执行文件

config:配置文件

lib:jar包

plugins:插件

1、logo定制

a修改config/allure.yaml,加入自定义logo

- custom-logo-plugin

pytest测试夹具conftest和fixture pytest_generate_tests_软件测试_07

b修改的图片和样式

D:\Program Files (x86)\allure-2.13.2\plugins\custom-logo-plugin\static
/*
.side-nav__brand {
  background: url('custom-logo.svg') no-repeat left center !important;
  margin-left: 10px;
}
*/
.side-nav__brand {
  background: url('qq.png') no-repeat left center !important;
  margin-left: 10px;
  height: 90px;
}

2、功能定制

在类上面添加项目名、模块名、标题

import allure
@allure.epic("项目1")
@allure.feature("模块1")
class Test04:
    @allure.story("用例1")
    @allure.title("成功的用例")
    def test_01(self,wufantest):
        print('测试百里守约'+wufantest)
    @allure.story("用例1")
    @allure.title("失败的用例")
    def test_02(self):
        print('测试娜可露露')
    @allure.story("用例2")
    @allure.title("失败的用例")
    def test_03(self):
        print('测试蔡文姬')

pytest测试夹具conftest和fixture pytest_generate_tests_pycharm_08

3、我们还可以通过以下标签来自定义用例的优先级

  • BLOCKER:致命bug
  • CRITICAL:严重bug
  • NORMAL:一般
  • MINOR:提示
  • TRIVIAL:轻微bug
@allure.severity(allure.severity_level.BLOCKER)
    def test_01(self,wufantest):
        print('测试百里守约'+wufantest)

优先级展示如下图所示:

pytest测试夹具conftest和fixture pytest_generate_tests_pycharm_09