首页 技术 正文
技术 2022年11月16日
0 收藏 493 点赞 3,492 浏览 5467 个字

简介

俗话说“人靠衣服马靠鞍”一个项目做的在好,没有一分的漂亮的测试报告有时候也是很难在客户那边验收的,今天宏哥就带你们解决这一难题。

前边一篇文章是分享如何搭建pytest+Allure的环境,从而生成一份精美的、让人耳目一新的测试报告,但是有的小伙伴或者童鞋们可能会问,我能不能按照自己的想法为我的项目测试结果量身打造一份属于我自己的测试报告了,当然可以了。

Allure常用注解

Allure提供了以下常用注解(未列出部分请访问官网了解),具体用法如下。

Feature: 标注主要功能模块
Story: 标注Features功能模块下的分支功能
Severity: 标注测试用例的重要级别
Step: 标注测试用例的重要步骤
Issue和TestCase: 标注Issue、Case,可加入URL

1、Features定制详解

(1)代码实现

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

(2)参考代码

# coding=utf-
# .先设置编码,utf-8可支持中英文,如上,一般放在第一行# .注释:包括记录创建时间,创建人,项目名称。
'''
Created on --
@author: 北京-宏哥 QQ交流群:
Project:手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告
'''
# .导入模块
import allure
import pytest@allure.feature('test_module_01')
def test_case_01():
"""
用例描述:Test case
"""
assert @allure.feature('test_module_02')
def test_case_02():
"""
用例描述:Test case
"""
assert == if __name__ == '__main__':
pytest.main(['-s', '-q', '--alluredir', './report'])

(3)添加feature,Report展示见下图。

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

2、Story定制详解

(1)代码实现

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

(2)参考代码

# coding=utf-
# .先设置编码,utf-8可支持中英文,如上,一般放在第一行# .注释:包括记录创建时间,创建人,项目名称。
'''
Created on --
@author: 北京-宏哥 QQ交流群:
Project:手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告
'''
# .导入模块
import allure
import pytest@allure.feature('test_module_01')
@allure.story('test_story_01')
def test_case_01():
"""
用例描述:Test case
"""
assert @allure.feature('test_module_02')
@allure.story('test_story_02')
def test_case_02():
"""
用例描述:Test case
"""
assert == if __name__ == '__main__':
pytest.main(['-s', '-q', '--alluredir', './report'])

(3)添加story,Report展示见下图。

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

3、用例标题和用例描述定制详解

(1)代码实现

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

(2)参考代码

# coding=utf-
# .先设置编码,utf-8可支持中英文,如上,一般放在第一行# .注释:包括记录创建时间,创建人,项目名称。
'''
Created on --
@author: 北京-宏哥 QQ交流群:
Project:手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告
'''
# .导入模块
import allure
import pytest@allure.feature('test_module_01')
@allure.story('test_story_01')
#test_case_01为用例title
def test_case_01():
"""
用例描述:这是用例描述,Test case ,描述本人
"""
#注释为用例描述
assert if __name__ == '__main__':
pytest.main(['-s', '-q', '--alluredir', './report'])

(3)添加用例标题和用例描述,Report展示见下图。

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

4 、Severity定制详解

Allure中对严重级别的定义:
1、 Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
2、 Critical级别:临界缺陷( 功能点缺失)
3、 Normal级别:普通缺陷(数值计算错误)
4、 Minor级别:次要缺陷(界面错误与UI需求不符)
5、 Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)

(1)代码实现

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

(2)参考代码

# coding=utf-
# .先设置编码,utf-8可支持中英文,如上,一般放在第一行# .注释:包括记录创建时间,创建人,项目名称。
'''
Created on --
@author: 北京-宏哥 QQ交流群:
Project:手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告
'''
# .导入模块
import allure
import pytest@allure.feature('test_module_01')
@allure.story('test_story_01')
@allure.severity('blocker')
def test_case_01():
"""
用例描述:Test case
"""
assert @allure.feature('test_module_01')
@allure.story('test_story_01')
@allure.severity('critical')
def test_case_02():
"""
用例描述:Test case
"""
assert == @allure.feature('test_module_01')
@allure.story('test_story_02')
@allure.severity('normal')
def test_case_03():
"""
用例描述:Test case
"""
assert @allure.feature('test_module_01')
@allure.story('test_story_02')
@allure.severity('minor')
def test_case_04():
"""
用例描述:Test case
"""
assert == if __name__ == '__main__':
pytest.main(['-s', '-q', '--alluredir', './report'])

(3)添加Severity,Report展示见下图。

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

5、Step定制详解

(1)代码实现

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

(2)参考代码

# coding=utf-
# .先设置编码,utf-8可支持中英文,如上,一般放在第一行# .注释:包括记录创建时间,创建人,项目名称。
'''
Created on --
@author: 北京-宏哥 QQ交流群:
Project:手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告
'''
# .导入模块
import allure
import pytest@allure.step("字符串相加:{0},{1}")
# 测试步骤,可通过format机制自动获取函数参数
def str_add(str1, str2):
if not isinstance(str1, str):
return "%s is not a string" % str1
if not isinstance(str2, str):
return "%s is not a string" % str2
return str1 + str2@allure.feature('test_module_01')
@allure.story('test_story_01')
@allure.severity('blocker')
def test_case():
str1 = 'hello'
str2 = '宏哥'
assert str_add(str1, str2) == 'hello宏哥'if __name__ == '__main__':
pytest.main(['-s', '-q', '--alluredir', './report'])

(3)添加Step,Report展示见下图。

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

6、Issue和TestCase定制详解

(1)代码实现

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

(2)参考代码

# coding=utf-
# .先设置编码,utf-8可支持中英文,如上,一般放在第一行# .注释:包括记录创建时间,创建人,项目名称。
'''
Created on --
@author: 北京-宏哥 QQ交流群:
Project:手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告
'''
# .导入模块
import allure
import pytest@allure.step("字符串相加:{0},{1}") # 测试步骤,可通过format机制自动获取函数参数
def str_add(str1, str2):
print('hello')
if not isinstance(str1, str):
return "%s is not a string" % str1
if not isinstance(str2, str):
return "%s is not a string" % str2
return str1 + str2@allure.feature('test_module_01')
@allure.story('test_story_01')
@allure.severity('blocker')
@allure.issue("http://www.baidu.com")
@allure.testcase("http://www.testlink.com")
def test_case():
str1 = 'hello'
str2 = '宏哥'
assert str_add(str1, str2) == 'hello宏哥'if __name__ == '__main__':
pytest.main(['-s', '-q', '--alluredir', './report'])

(3)添加Issue和TestCase,Report展示见下图。

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

7、attach定制详解

(1)代码实现

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

(2)参考代码

# coding=utf-
# .先设置编码,utf-8可支持中英文,如上,一般放在第一行# .注释:包括记录创建时间,创建人,项目名称。
'''
Created on --
@author: 北京-宏哥 QQ交流群:
Project:手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告
'''
# .导入模块
import allure
import pytest# file = open('C:\\Users\\DELL\\Desktop\\duhong\\test.png', 'rb').read()
# allure.attach('test_img', file, allure.attachment_type.PNG)PNG
@pytest.fixture
def attach_file_in_module_scope_fixture_with_finalizer(request):
allure.attach('A text attacment in module scope fixture', 'blah blah blah', allure.attachment_type.TEXT)
def finalizer_module_scope_fixture():
allure.attach('A text attacment in module scope finalizer', 'blah blah blah blah',
allure.attachment_type.TEXT)
request.addfinalizer(finalizer_module_scope_fixture)def test_with_attacments_in_fixture_and_finalizer(attach_file_in_module_scope_finalizer):
passdef test_multiple_attachments():
allure.attach.file('C:\\Users\\DELL\\Desktop\\duhong\\test.png', attachment_type=allure.attachment_type.PNG)
allure.attach('<head></head><body> a page </body>', 'Attach with HTML type', allure.attachment_type.HTML)

(3)添加attach参数,Report展示见下图。

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

小结

此外,Allure还支持Jenkins Plugin,后面我会专门写一篇博文给小伙伴们继续介绍和分享,感兴趣的话请关注我的博客。

其实上面说的大家都可以到官网来学习allure的用法和使用。

好了,明天就是国庆节了,宏哥这里提前祝大家国庆节快乐,吃好玩好喝好。

您的肯定就是我进步的动力。如果你感觉还不错,就请鼓励一下吧!记得点波 推荐 哦!!!(点击右边的小球即可!(^__^) 嘻嘻……)

手把手教你Pytest+Allure2.X定制报告详细教程,给自己的项目量身打造一套测试报告-02(非常详细,非常实用)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,104
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,580
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,428
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,835
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,918