200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Python—Pytest+Allure定制报告

Python—Pytest+Allure定制报告

时间:2020-06-30 00:42:46

相关推荐

Python—Pytest+Allure定制报告

参考资料:

/ziliao/253128

/xiaoxi-3-/p/9492534.html

Allure Test Report

一款测试报告框架,不仅报告美观,而且方便CI集成。

一、环境配置

安装Python依赖库:

pip3 install pytest

pip3 install pytest-allure-adaptor

安装 Command Tool:

brew tap qatools/formulas

brew install allure-commandline

官方参考文档:/project/pytest-allure-adaptor/

二、生成html报告命令

1、pytest命令基础上加–alluredir,生成xml报告。

pytest -s -q --alluredir [xml_report_path]//[xml_report_path]根据自己需要定义文件夹,作者定义为:/report/xml

用例执行完成之后会在[xml_report_path]目录下生成了一堆xml的report文件,当然这不是我们最终想要的美观报告。

2、需要使用 Command Tool 来生成我们需要的美观报告。

allure generate [xml_report_path] -o [html_report_path]//[html_report_path]根据自己需要定义文件夹,作者定义为:/report/html

打开 index.html,之前写的 case 报告就会呈现在你面前,如下:

注:直接用chrome浏览器打开报告,报告可能会是空白页面。

解决办法:

1、在pycharm中右击index.html选择打开方式Open in Browser就可以了。

2、使用Firefox直接打开index.html。

三、定制报告

Feature: 标注主要功能模块

Story: 标注Features功能模块下的分支功能

Severity: 标注测试用例的重要级别

Step: 标注测试用例的重要步骤

Issue和TestCase: 标注Issue、Case,可加入URL

1、Features定制详解

# -*- coding: utf-8 -*-# @Time : /8/17 上午10:10# @Author : WangJuan# @File : test_case.pyimport allureimport pytest@allure.feature('test_module_01')def test_case_01():"""用例描述:Test case 01"""assert 0@allure.feature('test_module_02')def test_case_02():"""用例描述:Test case 02"""assert 0 == 0if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加feature,Report展示见下图:

2、Story定制详解

# -*- coding: utf-8 -*-# @Time : /8/17 上午10:10# @Author : WangJuan# @File : test_case.pyimport allureimport pytest@allure.feature('test_module_01')@allure.story('test_story_01')def test_case_01():"""用例描述:Test case 01"""assert 0@allure.feature('test_module_01')@allure.story('test_story_02')def test_case_02():"""用例描述:Test case 02"""assert 0 == 0if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加story,Report展示见下图:

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

# -*- coding: utf-8 -*-# @Time : /8/17 上午10:10# @Author : WangJuan# @File : test_case.pyimport allureimport pytest@allure.feature('test_module_01')@allure.story('test_story_01')#test_case_01为用例titledef test_case_01():"""用例描述:这是用例描述,Test case 01,描述本人"""#注释为用例描述assert 0if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加用例标题和用例描述,Report展示见下图:

4 、Severity定制详解

Allure中对严重级别的定义:

1、 Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)

2、 Critical级别:临界缺陷( 功能点缺失)

3、 Normal级别:普通缺陷(数值计算错误)

4、 Minor级别:次要缺陷(界面错误与UI需求不符)

5、 Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)

# -*- coding: utf-8 -*-# @Time : /8/17 上午10:10# @Author : WangJuan# @File : test_case.pyimport allureimport pytest@allure.feature('test_module_01')@allure.story('test_story_01')@allure.severity('blocker')def test_case_01():"""用例描述:Test case 01"""assert 0@allure.feature('test_module_01')@allure.story('test_story_01')@allure.severity('critical')def test_case_02():"""用例描述:Test case 02"""assert 0 == 0@allure.feature('test_module_01')@allure.story('test_story_02')@allure.severity('normal')def test_case_03():"""用例描述:Test case 03"""assert 0@allure.feature('test_module_01')@allure.story('test_story_02')@allure.severity('minor')def test_case_04():"""用例描述:Test case 04"""assert 0 == 0if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加Severity,Report展示见下图:

5、Step定制详解

# -*- coding: utf-8 -*-# @Time : /8/17 上午10:10# @Author : WangJuan# @File : test_case.pyimport allureimport pytest@allure.step("字符串相加:{0},{1}")# 测试步骤,可通过format机制自动获取函数参数def str_add(str1, str2):if not isinstance(str1, str):return "%s is not a string" % str1if not isinstance(str2, str):return "%s is not a string" % str2return str1 + str2@allure.feature('test_module_01')@allure.story('test_story_01')@allure.severity('blocker')def test_case():str1 = 'hello'str2 = 'world'assert str_add(str1, str2) == 'helloworld'if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加Step,Report展示见下图:

6、Issue和TestCase定制详解

# -*- coding: utf-8 -*-# @Time : /8/17 上午10:10# @Author : WangJuan# @File : test_case.pyimport allureimport pytest@allure.step("字符串相加:{0},{1}")# 测试步骤,可通过format机制自动获取函数参数def str_add(str1, str2):print('hello')if not isinstance(str1, str):return "%s is not a string" % str1if not isinstance(str2, str):return "%s is not a string" % str2return str1 + str2@allure.feature('test_module_01')@allure.story('test_story_01')@allure.severity('blocker')@allure.issue("")@allure.testcase("")def test_case():str1 = 'hello'str2 = 'world'assert str_add(str1, str2) == 'helloworld'if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加Issue和TestCase,Report展示见下图:

8、attach定制详解

file = open('../test.png', 'rb').read()allure.attach('test_img', file, allure.attach_type.PNG)

在报告中增加附件:allure.attach(’arg1’,’arg2’,’arg3’):

arg1:是在报告中显示的附件名称

arg2:表示添加附件的内容

arg3:表示添加的类型(支持:HTML,JPG,PNG,JSON,OTHER,TEXTXML)

添加attach参数,Report展示见下图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。