Allure 是一款轻量级的开源自动化测试报告生成框架。它支持绝大部分测试框架,比如 TestNG、Junit 、pytest、unittest 等。本文主要介绍 pytest 框架结合 Allure 生成 格式统一、美观的测试报告。
Allure下载:
https://github.com/allure-framework/allure2/releases
1.path配置:E:\allure-2.7.0\bin
2.pycharm中项目安装allure-pytest
编写一段使用 pytest 框架的测试代码
# -*- coding: utf-8 -*-
"""
@PRO :python-Api
@Time :2020/12/24 16:05
@Auth :Simon
@File :test_demo.py
"""
import os
import allure
import pytest
def step_2_1_1():
print("测试用例1")
assert 1
def step_2_1_2():
print("测试用例1")
assert 1
def step_2_1_3():
print("测试用例1")
assert 1
def step_2_1_4():
print("测试用例1")
assert 1
def step_2_1_5():
print("测试用例1")
assert 1
def step_2_1_6():
print("测试用例1")
assert 1
class TestDemo2():
def test_1_1(self):
'''测试成功用例'''
print("测试用例1")
assert 1
def test_1_2(self):
'''测试成功用例'''
print("测试用例1")
assert 1
def test_1_3(self):
'''测试成功用例'''
print("测试用例1")
assert 1
#--------------------------------------
class TestDemoAllure():
'''case description:
1.点文章分类导航标签 -跳转编辑页面
2.编辑页面输入,分类名称
3.点保存按钮保存成功
'''
def test_case_1(self):
step_2_1_1()
step_2_1_2()
step_2_1_3()
def test_case_2(self):
step_2_1_4()
step_2_1_5()
step_2_1_6()
class Testreport():
def test_2_2(self):
'''测试成功用例'''
print("测试用例1")
assert 1
def main():
# 执行pytest单元测试,生成 Allure 报告需要的数据存在 report\test 目录
os.system(r'del /s /q ..\uitest\Report\*.*')
pytest.main(['--alluredir', './Report/test'])
# pytest.main(['1test_batchlogin.py', '-n=auto'])
os.system('allure generate ./Report/test -o ./Report/html --clean')
os.system('allure serve Report/test')
if __name__ == "__main__":
print(u"start execute testcase")
main()# -*- coding: utf-8 -*-"""@PRO :python-Api @Time :2020/12/24 16:05@Auth :Simon@File :test_demo.py"""import osimport allureimport pytest@allure.step("1.输入车牌号")def step_2_1_1(): print("测试用例1") assert 1@allure.step("2.点击搜索按钮")def step_2_1_2(): print("测试用例1") assert 1@allure.step("3.点击搜索到的车辆")def step_2_1_3(): print("测试用例1") assert 1@allure.step("1.双击车辆")def step_2_1_4(): print("测试用例1") assert 1@allure.step("2.双击车辆")def step_2_1_5(): print("测试用例1") assert 1@allure.step("3.点击车辆详情")def step_2_1_6(): print("测试用例1") assert 1@allure.feature("车辆监控")class TestDemo2(): @allure.story("实时监控") def test_1_1(self): '''测试成功用例''' print("测试用例1") assert 1 @allure.feature("车辆监控") @allure.story("排版检测") def test_1_2(self): '''测试成功用例''' print("测试用例1") assert 1 @allure.feature("车辆监控") @allure.story("历史轨迹") def test_1_3(self): '''测试成功用例''' print("测试用例1") assert 1#--------------------------------------@allure.feature("视频监控")@allure.story("实时视频")class TestDemoAllure(): '''case description: 1.点文章分类导航标签 -跳转编辑页面 2.编辑页面输入,分类名称 3.点保存按钮保存成功 ''' @allure.title("搜索车辆用例") @allure.description("这里显示用例的描述") @allure.testcase("http://49.235.x.x:8080/zentao/testcase-view-6-1.html") @allure.issue("http://49.235.x.x:8080/zentao/bug-view-1.html") @allure.link(url="http://www.tibetjccar.com/#/videoMonitor/realPlay", name="car1") def test_case_1(self): step_2_1_1() step_2_1_2() step_2_1_3() @allure.title("对车辆进行操作") @allure.description("显示对车辆的各种操作按钮") def test_case_2(self): step_2_1_4() step_2_1_5() step_2_1_6() @allure.story("统计报表") class Testreport(): @allure.title("终端报警明细") def test_2_2(self): '''测试成功用例''' print("测试用例1") assert 1def main(): # 执行pytest单元测试,生成 Allure 报告需要的数据存在 report\test 目录 os.system(r'del /s /q ..\uitest\Report\*.*') pytest.main(['--alluredir', './Report/test']) # pytest.main(['1test_batchlogin.py', '-n=auto']) os.system('allure generate ./Report/test -o ./Report/html --clean') os.system('allure serve Report/test')if __name__ == "__main__": print(u"start execute testcase") main()
可把steps单独封装起来,见上一章pytest
@allure 装饰器中的一些功能点:
@allure.feature :用于定义被测试的功能,被测产品的需求点
@allure.story :用于定义被测功能的用户场景,即子功能点
@allure.step :用于将一个测试用例,分成几个步骤在报告中输出
allure.attach :用于向测试报告中输入一些附加的信息,通常是一些测试数据信息
点个赞,证明你还爱我
本文分享自微信公众号 - 字节在线(byteol)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4640373/blog/4867902