Alluer01-介绍

时间:2023-01-07 08:00:08

什么是allure

  • allure是一款轻量级并且非常灵活的开源测试报告框架
  • 支持绝大多数测试框架,例如TestNG、Pytest、JUint等
  • 简单易用,易于集成
  • 在python中使用allure,需要安装allure-pytest
  • allure-pytest是Pytest的一个插件,通过它我们可以生成Allure所需要的用于生成测试报告的数据

allure环境配置

  • 必须安装jdk并配置环境变量
  • JAVA_HOME、path
  • 拷贝allure-2.17.3并配置环境变量
  • 拷贝allure-2.17.3到某个位置,将此路径(含bin目录)添加到环境变量中
  • pip install allure-pytest
  • 必须重启pycharm

生成allure测试报告

  • 运行测试,生成allure测试报告
import os
pytest.main(['--alluredir=./allure-results', '--clean-alluredir', '被测模块名.py'])
allure生成的是json测试数据,这里把数据存到/allure-results目录下
--clean-alluredir用于清理allure-results中之前的报告数据,否则allure会合并以前的报告数据,并将新数据写入报告中
os.system('allure.bat generate ./allure-results -o ./report --clean')
生成报告到report目录,--clean用于清除report下的文件(必须)

生成allure测试报告

  • 案例:编写被测程序
    -calc.py
def add(a, b):
return a+b
def sub(a, b):
#预留缺陷
return a+b
def div(a, b):
#预留缺陷
if b!=0:
return a/b
else:
return b/a

编写测试代码文件ceshi_calc_as01.py,测试add函数和sub函数,生成allure测试报告

import pytest
from calc import add, sub
add_cases=[[1,2,3], [2,0,2], [-1,-2,-3], [-2,0,-2]]
@pytest.mark.parametrize('a, b, expect', add_cases)
def test_add(a,b,expect):
actual=add(a, b)
assert actual==expect, f'预期:{a}+({b})={expect},实际:{a}+({b})={actual}'
sub_cases=[[1,2,-1], [2,0,2], [-1,-2,1], [-2,0,-2]]
@pytest.mark.parametrize('a, b, expect', sub_cases)
def test_sub(a,b,expect):
actual=sub(a, b)
assert actual==expect, f'预期:{a}-({b})={expect},实际:{a}-({b})={actual}'
if __name__=='__main__':
import os
pytest.main(['--alluredir=./allure-results', '--clean-alluredir', 'ceshi_calc_as01.py'])
os.system('allure.bat generate ./allure-results -o ./report --clean')

测试报告Overview部分

Alluer01-介绍

测试报告Categories部分

Alluer01-介绍

测试报告Suites部分

Alluer01-介绍

测试报告Graphs部分

Alluer01-介绍

测试报告Timeline部分

  • 列出了执行时间较长的几个用例

测试报告Behavior部分

Alluer01-介绍

测试报告Packages部分

Alluer01-介绍

编写测试代码文件ceshi_calc_div01.py,测试div函数,生成allure测试报告,不清除之前的测试结果
import pytest
from calc import div
div_cases=[[1,2,0.5], [2,0,'除数不能为零'], [-1,-2,0.5], [0,2,0]]
@pytest.mark.parametrize('a, b, expect', div_cases)
def test_div(a, b, expect):
actual=div(a, b)
assert actual==expect, f'预期:{a}-({b})={expect},实际:{a}-({b})={actual}'
if __name__=='__main__':
import os
pytest.main(['--alluredir', './allure-results', 'ceshi_calc_div01.py'])
os.system('allure.bat generate ./allure-results -o ./report --clean')
测试报告Overview部分

Alluer01-介绍

测试报告Suites部分

Alluer01-介绍

测试报告Packages部分

Alluer01-介绍

小结
  • allure报告可以结合pytest、testng、junit
  • 需要先安装jdk并配置环境变量
  • 需要安装allure并配置环境变量
  • pytest.main(['--alluredir', '测试结果数据目录', '--clean-alluredir', '测试代码模块名'])
  • os.system('allure.bat generate 测试结果数据目录 -o 测试报告目录 --clean')



作者:暄总-tester