栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python pytest allure测试报告

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python pytest allure测试报告

  • allure介绍
  • allure安装
  • pytest-allure插件
  • Allure 报告的生成
  • allure特性分析
  • 按feature,story运行
  • allure+pytest+selenium实战演示
allure介绍
  • allure是一个轻量级,灵活的,支持多语言的测试报告工具;
  • 多平台的,奢侈的report框架;
  • 可以为dev/qa提供详尽的测试报告,测试步骤,log;
  • 提供high level统计报告
  • java语言开发的,支持pytest,javascript,PHP,ruby等
  • 可以集成jenkins

实例地址:https://demo.qameta.io/al lure/#

allure安装

windows通用安装方法

http://github.com/allure-framework/allure2/releases 下载allue2.7.zip包

解压->进入bin目录->运行allure.bat,

把bin目录加入PATH环境变量

官方:http://allure.qatools.ru/

文档:https://docs.qameta.io/allure/#

安装allure-pytest库
pip install allure-pytest
 下载压缩包
https://github.com/allure-framework/allure2/releases/tag/2.15.0
 下载的压缩包,解压之后放到非中文目录下,然后将文件夹中的bin目录配置到环境变量path中

 

 查看allure版本
allure --version

执行case收集pytest执行的数据
import pytest

@pytest.mark.parametrize("test_input,expected",[("3+5",8),("2+5",7),("7+5",30)])
def test_eval(test_input,expected):
    assert eval(test_input) == expected

@pytest.mark.xfail(reason="这条用例执行会失败")
def test_case01():
    a=0
    assert a != "0"
    raise NameError()

@pytest.mark.skip(reason="这条用例不执行")
def test_case02():
    a=0
    assert a != "0"

def test_case03():
    a=0
    assert a == 0
    

if __name__ == '__main__':
    pytest.main(["-n 3","-s","-v","--alluredir=./result/data"])
 生成的json数据

 打开测试报告命令
allure serve ./result/data
 默认的浏览器打开测试报告

allure命令 查看帮助文档
allure -h
1,测试完成查看实际报告,打开默认浏览器查看测试报告
# 执行 pytest,指定 allure 结果目录
pytest -sq --alluredir=./allure
 
# 打开 allure 报告
allure serve ./allure
 2,从结果生成测试报告,启动服务,生成报告,打开报告
# 执行 pytest,指定 allure 结果目录
pytest -sq --alluredir=./allure
 
# 生成 allure 的 html 报告
allure generate -c -o ./allure-report ./allure  #(覆盖路径加--clean)

# 打开 allure 报告
allure open ./allure-report

# 指定ip地址及端口,打开 allure 报告 
allure open -h 127.0.0.1 -p 8883 ./allure-report
allure 的美化定制 1,@feature 模块名称
import pytest
import allure

@allure.feature("参数化") # 标注用例
class Testdemo():
    @pytest.mark.parametrize("test_input,expected",[("3+5",8),("2+5",7),("7+5",30)])
    def test_eval(self,test_input,expected):
        assert eval(test_input) == expected

    @pytest.mark.xfail(reason="这条用例执行会失败")
    def test_case01(self):
        a=0
        assert a != "0"
        raise NameError(self)

    @pytest.mark.skip(reason="这条用例不执行")
    def test_case02(self):
        a=0
        assert a != "0"

    def test_case03(self):
        a=0
        assert a == 0
        

if __name__ == '__main__':
    pytest.main(["-s","-v","--alluredir=./result/data"])

2,@story 用户故事
import pytest
import allure

@allure.feature("参数化") # 标注用例
class Testdemo():
    @pytest.mark.parametrize("test_input,expected",[("3+5",8),("2+5",7),("7+5",30)])
    def test_eval(self,test_input,expected):
        assert eval(test_input) == expected

    @allure.story("失败") # 标注失败用例
    @pytest.mark.xfail(reason="这条用例执行会失败")
    def test_case01(self):
        a=0
        assert a != "0"
        raise NameError(self)

    @pytest.mark.skip(reason="这条用例不执行")
    def test_case02(self):
        a=0
        assert a != "0"

    def test_case03(self):
        a=0
        assert a == 0
        

if __name__ == '__main__':
    pytest.main(["-s","-v","--alluredir=./result/data"])

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/313663.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号