Pytest测试框架(五):pytest + allure生成测试报告

Allure 是一款轻量级、支持多语言的开源自动化测试报告生成框架,由Java语言开发,可以集成到 Jenkins。 pytest 测试框架支持Allure 报告生成。

pytest也可以生成junit格式的xml报告和HTML报告,命令如下:

pytest test_demo.py --junitxml=report.xml pytest test_demo.py --html=report.html #需要安装插件:pip install pytest-html

Allure 报告更加灵活美观,本文介绍如何使用pytest 生成 allure测试报告

环境安装 安装allure

allure包下载:https://github.com/allure-framework/allure2/releases

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

把bin目录加入PATH环境变量

Pytest测试框架(五):pytest + allure生成测试报告

allure官网 :

allure文档 :

安装 allure-pytest插件 pip install allure-pytest 生成Allure报告 运行 pytest [测试文件] -s -q --alluredir=./result #--alluredir用于指定存储测试结果的路径) 查看测试报告

方式一:直接打开默认浏览器展示报告

allure serve ./result/

方式二:从结果生成报告

生成报告

allure generate ./result/ -o ./report/ --clean (覆盖路径加--clean)

打开报告

allure open -h 127.0.0.1 -p 8883 ./report/

实例代码:

test_allure.py:

import pytest def test_success(): """this test succeeds""" assert True def test_failure(): """this test fails""" assert False def test_skip(): """this test is skipped""" pytest.skip('for a reason!') def test_broken(): raise Exception('oops') 方法1

执行测试用例:

pytest test_allure.py --alluredir=./result/1

Pytest测试框架(五):pytest + allure生成测试报告

打开报告:

> allure serve ./result/1 Generating report to temp directory... Report successfully generated to C:\Users\10287\AppData\Local\Temp\6968593833275403330\allure-report Starting web server... 2020-10-25 20:59:42.368:INFO::main: Logging initialized @4873ms to org.eclipse.jetty.util.log.StdErrLog Server started at <:60084/>. Press <Ctrl+C> to exit

Pytest测试框架(五):pytest + allure生成测试报告

方法2 allure generate ./result/1 -o ./report/1/ --clean allure open -h 127.0.0.1 -p 8883 ./report/1

浏览器访问地址 :8883/ ,会显示跟上图一样的报告。

allure特性—feature, storry, step

可以在报告中添加用例描述信息,比如测试功能,子功能或场景,测试步骤以及测试附加信息:

@allure.feature(‘功能名称’):相当于 testsuite

@allure.story(’子功能名称‘):对应这个功能或者模块下的不同场景,相当于 testcase

@allure.step('步骤'):测试过程中的每个步骤,放在具体逻辑方法中

allure.step('步骤') 只能以装饰器的形式放在类或者方法上面

with allure.step:可以放在测试用例方法里面

@allure.attach('具体文本信息')

附加信息:数据,文本,图片,视频,网页

测试用例 test_feature_story_step.py:

import pytest import allure @allure.feature("登录") class TestLogin(): @allure.story("登录成功") def test_login_success(self): print("登录成功") pass @allure.story("密码错误") def test_login_failure(self): with allure.step("输入用户名"): print("输入用户名") with allure.step("输入密码"): print("输入密码") print("点击登录") with allure.step("登录失败"): assert '1' == 1 print("登录失败") pass @allure.story("用户名密码错误") def test_login_failure_a(self): print("用户名或者密码错误,登录失败") pass @allure.feature("注册") class TestRegister(): @allure.story("注册成功") def test_register_success(self): print("测试用例:注册成功") pass @allure.story("注册失败") def test_register_failure(self): with allure.step("输入用户名"): print("输入用户名") with allure.step("输入密码"): print("输入密码") with allure.step("再次输入密码"): print("再次输入密码") print("点击注册") with allure.step("注册失败"): assert 1 + 1 == 2 print("注册失败") pass

用例执行、生成报告

pytest test_feature_story.py --alluredir=./result/2 allure generate ./result/2 -o ./report/2/ --clean allure open -h 127.0.0.1 -p 8883 ./report/2

报告:

Pytest测试框架(五):pytest + allure生成测试报告

allure特性—link, issue, testcase

可以在测试报告中添加链接、bug地址、测试用例地址。

关联bug需要在用例执行时添加参数:

--allure-link-pattern=issue:[bug地址]{}

例如:--allure-link-pattern=issue:{}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspyss.html