无主体网站是什么意思,asp网站建设项目实训,wordpress换到新服务器,电子商务网站策划ppt#x1f345; 视频学习#xff1a;文末有免费的配套视频可观看 #x1f345; 关注公众号【互联网杂货铺】#xff0c;回复 1 #xff0c;免费获取软件测试全套资料#xff0c;资料在手#xff0c;涨薪更快 1. Allure 简介
Allure 框架是一个灵活的、轻量级的、支持多语… 视频学习文末有免费的配套视频可观看 关注公众号【互联网杂货铺】回复 1 免费获取软件测试全套资料资料在手涨薪更快 1. Allure 简介
Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具它不仅以 Web 的方式展示了简介的测试结果而且允许参与开发过程的每个人可以从日常执行的测试中最大限度地提取有用信息。
Allure 是由 Java 语言开发的支持 PytestJaveScript、PHP、Ruby 等。
从 DEV/QA 的角度来看Allure 提供了详尽的测试报告比如简化了常见缺陷的统计失败的测试可以分为 bug 和被中断的测试还可以配置日志、步骤、fixture、附件、计时、执行历史以及与 TMS、BUG 管理系统、Jenkins 集成等。所以通过以上配置所有负责的开发人员和测试人员可以尽可能地掌握测试信息。从管理者的角度来看Allure 提供了一个清晰的“大图”即 High Level 的统计报告其中包括已覆盖的特性、缺陷聚集的位置、执行时间轴的外观以及许多其他方便的事情。Allure 的模块化和可扩展性保证了你总是能够对某些东西进行微调使得 Allure 更适合你。
那么下面就来说说如何使报告更加详细的显示我们需要的信息以及 Allure 与 Jenkins 的集成。
安装Windows/Mac 通用安装方法
下载地址https://github.com/allure-framework/allure2/releases下载所需版本的 zip 包。
安装
解压 — 进入 bin 目录 — 运行 allure.bat把 bin 目录加入 Path 环境变量配合 pytest使用 allure2 生成更加精美的测试报告pip install allure-pytest
运行方法
在测试执行期间收集结果
pytest [测试文件] -s -q --alluredir./result/ --clean-alluredir
-s表示将执行成功的案例日志打印出来-q若跟文件执行路径则代表只需要执行的文件--alluredir指定存储测试结果的路径若目录不存在则会新建--clean-alluredir清除历史结果数据
查看测试报告
方式一用于在本地渲染后对外展示结果
allure serve ./result/
方式二用于在本地渲染和查看结果
# 生成报告 allure generate ./result/ -o ./report/ --clean # 注意覆盖路径加 --clean
# 打开报告 allure open -h 127.0.0.1 -p 8883 ./report/
注意/report/ 目录中的 index.html 就是最终的结果页面但直接通过浏览器打开这个文件是看不到实际报告内容的这是因为实际报告内容需要 allure 进行渲染后才能看到
2. Allure 常用特性
场景
希望在报告中看到测试功能子功能或场景测试步骤包括测试附加信息。
解决
import allureallure.feature(功能名称)allure.story(子功能名称)allure.title(测试用例名称)allure.step(步骤细节)allure.description(测试用例描述)allure.attach(具体文本信息)需要附加的信息可以是数据文本图片视频网页如果只测试登录功能运行的时候可以加限制过滤如pytest 文件名 --allure_features 购物车功能 --allure_stories 加入购物车 alllure.feature() 与 allure.store() 的关系
feature 相当于一个大的功能或模块。将 case 分类到某个 feature 中并在报告中的 behaviors 中显示相当于 testsuite。
story 相当于分支功能/模块属于 feature 之下的结构并在报告中的 features 中显示相当于 testcase。
feature 与 story 类似于父子关系。
allure.step() 与 with allure.step() 的区别
测试过程中每个步骤一般放在具体逻辑方法中。 可以放在关键步骤中在报告中显示。 在 App、Web 自动化测试当中建议每切换到一个新的页面当做一个 step。 用法
allure.step()只能以装饰器的形式放在类或者方法上。with allure.step()可以放在测试用例方法里面但测试步骤的代码需要被该语句包含。
给测试用例划分优先级
场景
通常测试有冒烟测试、回归测试、线上验证测试等那么就需要按照重要性级别来分别执行比如上线时要把主流程和重要模块都跑一遍。
解决
通过附加 pytest.mark 标记描述通过 allure.feature、allure.story 标记描述通过 allure.severity 直接标记用例级别
根据测试用例的重要性划分测试用例等级如果没指定等级默认为 NORMAL 级别
BLOCKER阻塞缺陷功能未实现无法下一步CRITICAL严重缺陷功能点缺失NORMAL一般缺陷边界情况格式错误MINOR次要缺陷界面错误与ui需求不符TRIVIAL轻微缺陷必须项无提示或者提示不规范
步骤
在方法、函数和类上面加allure.severity(allure.severity_level.TRIVIAL)指定执行对应级别的用例pytest -s -v 文件名 --allure-severities normal, critical
给 Allure 测试报告添加内容图片、附件、文本、截图、HTML 等
场景
前端自动化测试经常需要附加图片或 html比如在适当的地方、适当的时机截图等。
解决
allure.attach() 显示许多不同类型的提供的附件可以补充测试、步骤或测试结果。
步骤
在测试报告里附加网页
格式allure.attach(body(内容), name, attachment_typeextension)示例allure.attach(head/headbody首页/body, 这是错误页的结果信息, allure.attachment_type.HTML)
在测试报告里附加图片
格式allure.attach.file(source, name, attachment_type, extension)示例allure.attach.file(./result/b.png, attachment_typeallure.attachment_type.PNG)
集成测试管理系统
allure.link()、allure.issue()、allure.testcase() 主要是为了将 Allure 报告和测试管理系统集成可以更快速地跳转到公司内部地址。
先看看三个装饰器的源码
def link(url, link_typeLinkType.LINK, nameNone):return safely(plugin_manager.hook.decorate_as_link(urlurl, link_typelink_type, namename))def issue(url, nameNone):return link(url, link_typeLinkType.ISSUE, namename)def testcase(url, nameNone):return link(url, link_typeLinkType.TEST_CASE, namename)
小结
issue() 和 testcase() 其实调用的也是 link()只是 link_type 不一样。必传参数 url跳转的链接。可选参数 name显示在 Allure 报告的名字如果不传就是显示完整的链接建议传不然可读性不高。可以理解成三个方法是一样的我们都提供跳转链接和名字只是链接的 type 不一样最终显示出来的样式不一样而已type 不一样样式不一样。如果你喜欢只用 allure.link() 也可以。而出现三个装饰器的原因是为了更好地将链接进行分类访问链接、Bug 链接、测试用例链接。
代码示例 import allureTEST_CASE_LINK https://github.com/qameta/allure-integrations/issues/8#issuecomment-268313637allure.link(https://www.youtube.com/watch?v4YYzUTYZRMU)
def test_with_link():passallure.link(https://www.youtube.com/watch?vSu5p2TqZxKU, name点击我看一看youtube吧)
def test_with_named_link():passallure.issue(140, bug issue链接)
def test_with_issue_link():passallure.testcase(TEST_CASE_LINK, 测试用例地址)
def test_with_testcase_link():pass
运行结果查看 Allure 报告
3. 接口自动化测试框架示例
完整工程https://github.com/juno3550/InterfaceAutoTestWithPytest
测试方法示例 1 import pytest2 import allure3 import logging4 from util.assert_util import assert_keyword5 from util.request_util import api_request6 from util.global_var import *7 from util.excel_util import excel_util8 9
10 register_test_data excel_util.get_sheet_data(注册)
11 login_test_data excel_util.get_sheet_data(登录)
12
13
14 allure.feature(登录模块)
15 pytest.mark.dependency(nameTestLoginModule)
16 class TestLoginModule:
17
18 allure.story(注册功能)
19 allure.title(用户注册) # 指定测试用例标题默认是函数名
20 allure.description(通过接口进行用户注册) # 添加测试用例描述
21 allure.severity(allure.severity_level.BLOCKER) # 阻塞级别
22 pytest.mark.run(order1)
23 pytest.mark.parametrize(case_data, register_test_data)
24 def test_register(self, case_data):
25 with allure.step(读取请求数据调用接口):
26 logging.info(接口用例数据%s % case_data)
27 response api_request(case_data[API_IP], case_data[API_URI], case_data[REQUEST_METHOD],
28 case_data[API_REQUEST_DATA], case_data[RESPONSE_EXTRACT_VAR],
29 case_data[REQUEST_HEADER], case_data[REQUEST_COOKIE])
30 with allure.step(获取响应数据进行断言):
31 assert_keyword(response, case_data[RESPONSE_ASSERT_KEYWORD])
32
33 allure.story(登录功能)
34 allure.title(用户登录) # 指定测试用例标题默认是函数名
35 allure.description(通过接口进行用户登录) # 添加测试用例描述
36 allure.severity(allure.severity_level.BLOCKER) # 阻塞级别
37 pytest.mark.run(order2)
38 pytest.mark.parametrize(case_data, login_test_data)
39 def test_login(self, case_data):
40 with allure.step(读取请求数据调用接口):
41 logging.info(接口用例数据%s % case_data)
42 response api_request(case_data[API_IP], case_data[API_URI], case_data[REQUEST_METHOD],
43 case_data[API_REQUEST_DATA], case_data[RESPONSE_EXTRACT_VAR],
44 case_data[REQUEST_HEADER], case_data[REQUEST_COOKIE])
45 with allure.step(获取响应数据进行断言):
46 assert_keyword(response, case_data[RESPONSE_ASSERT_KEYWORD])
47
48
49 if __name__ __main__:
50 test_dir os.path.dirname(__file__)
51 pytest.main([-s, -q, test_dir, --alluredir, ../test_result/, --clean-alluredir])
52 os.system(allure generate ../test_result/ -o ../test_report/ --clean)
53 os.system(allure open -h 127.0.0.1 -p 8881 ../test_report/)
测试数据示例 Allure 报告结果示例 同时在这我也准备了一份软件测试视频教程含接口、自动化、性能等需要的可以直接在下方观看就行希望对你有所帮助【公众号互联网杂货铺】免费领取软件测试资料 B站强推建议所有想学自动化测试的死磕这个视频2024年字节最新内部教程全程干货无废话