一、安装
brew install allure
安装allure-pytest插件
pip3 install allure-pytest
官网:http://allure.qatools.ru
查找allure相关命令行 pytest --help|grep allure
–allure-severities=SEVERITIES_SET
–allure-epics=EPICS_SET
–allure-features=FEATURES_SET
–allure-stories=STORIES_SET
–allure-ids=IDS_SET Comma-separated list of IDs. Run tests that have at
–allure-link-pattern=LINK_TYPE:LINK_PATTERN
–alluredir=DIR Generate Allure report in the specified directory (may
–clean-alluredir Clean alluredir folder if it exists
–allure-no-capture Do not attach pytest captured logging/stdout/stderr to
运行
在测试执行期间收集结果
pytest [测试文件] -s -p --alluredir=./result(–alluredir用于指定存储测试结果的路径)
查看测试报告
方法一:测试完成后查看实际报告,在线看报告,会直接打开默认浏览器展示当前报告
allure serve ./result/
方法二:
生成报告
allure generate ./result/ -o ./report/ --clean (覆盖路径加clean)
打开报告
allure open -h xxx.x.x.x -p xxxx ./report/
allure常用特性
@feature,@story,@step,@attach
功能加@allure.feature(‘功能名称’)
子功能加@allure.story(‘子功能名称’)
步骤上加@allure.step(‘子功能步骤’)
@allure.attach(‘具体文本信息’),需要附加的信息可以是数据,文本,图片,视频,网页
执行指定测试用例
pytest test_feature_story.py --allure-features=“测试模块” -vs
pytest 测试文件名.py --alluredir ./result
allure serve ./result/
import allure
import pytest
@allure.feature(“登录模块”)
class TestLogin:
@allure.story(“登录成功”)
def test_login_sucess(self):
with allure.step(“步骤一打开页面”):
print(“打开页面”)
with allure.step(“进去登录页面”):
print(“成功进入登录页面”)
print(“登录页面流程成功”)
@allure.story(“登录失败”)
def test_login_fail(self):
print(“登录失败”)
@allure.feature(“搜索模块”)
class TestSearch:
@allure.story(“测试搜索模块”)
def test_search_sucess(self):
with allure.step(“步骤一打开页面”):
print(“打开页面”)
if name == ‘main’:
pytest.main()
执行功能模块
pytest test_feature_story.py --allure-features=“登录模块” -vs
执行子功能模块
pytest test_feature_story.py --allure-stories=“测试搜索模块” -vs
执行的功能模块结果存储到result1文件中
pytest test_feature_story.py --allure-features=“登录模块” -vs --alluredir=./result1
查看测试报告
allure serve ./result1
关联测试用例(直接给测试用例地址链接)
TEST_CASE_LINK=“https://www.baidu.com”
@allure.testcase(TEST_CASE_LINK,‘Test case title’)
def test_testcase_link():
pass
按重要性级别进行测试
通过pytest.mark标记
通过allure.feature,allure.story
也可以通过allure.severity来附加标记
Trivial:不重要,Minor不太重要,Normal正常问题,Critical严重,Blocker阻塞
在方法,函数和类上面加
@allure.severity(allure.severity_level.TRIVIAL)
执行时
pytest -s -v 文件名 --allure-severities normal,critical
举例
import allure
import pytest
def test_no_severity():
pass
@allure.severity(allure.severity_level.CRITICAL)
def test_with_severity_critical():
pass
def test_with_severity_normal():
pass
def test_with_severity_block():
pass
def test_with_severity_minor():
pass
class TestClassWithCriticalSeverity:
def test_without_severity_normal(self):
pass
@allure.severity(allure.severity_level.NORMAL)
def test_inside_normal_severity(self):
pass
if name ==’__main()’:
pytest.main()
执行相应级别测试用例pytest test_severnity.py --allure-severities critical,normal -vs
或者pytest test_severnity.py --allure-severities=“normal” -vs
attach
@allure.attach(‘具体文本信息’),需要附加的信息可以是数据,文本,图片,视频,网页
import allure
import pytest
def test_attach_text():
allure.attach(“这是一个文本”,attachment_type=allure.attachment_type.TEXT)
def test_attach_picture():
allure.attach.file(“图片存放的地址”,name=“这是一张图片”,attachment_type=allure.attachment_type.JPG)
if name==‘main’:
pytest.main()