谁做违法网站,如何自己建个网站,网络关键词优化软件,平面设计必备软件目录#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结#xff08;尾部小惊喜#xff09; 前言
Allure框架
Allu… 目录导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结尾部小惊喜 前言
Allure框架
Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具它不仅以 Web 的方式展示了简介的测试结果而且允许参与开发过程的每个人可以从日常执行的测试中最大限度地提取有用信息。
安装
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 进行渲染后才能看到。
Allure 常用特性
场景 希望在报告中看到测试功能子功能或场景测试步骤包括测试附加信息。
解决 import allure allure.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首页’, ‘这是错误页的结果信息’, 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接口自动化测试框架示例
测试方法示例
import pytest
import allure
import logging
from util.assert_util import assert_keyword
from util.request_util import api_request
from util.global_var import *
from util.excel_util import excel_utilregister_test_data excel_util.get_sheet_data(注册)
login_test_data excel_util.get_sheet_data(登录)allure.feature(登录模块)
pytest.mark.dependency(nameTestLoginModule)
class TestLoginModule:allure.story(注册功能)allure.title(用户注册) # 指定测试用例标题默认是函数名allure.description(通过接口进行用户注册) # 添加测试用例描述allure.severity(allure.severity_level.BLOCKER) # 阻塞级别pytest.mark.run(order1)pytest.mark.parametrize(case_data, register_test_data)def test_register(self, case_data):with allure.step(读取请求数据调用接口):logging.info(接口用例数据%s % case_data)response api_request(case_data[API_IP], case_data[API_URI], case_data[REQUEST_METHOD],case_data[API_REQUEST_DATA], case_data[RESPONSE_EXTRACT_VAR],case_data[REQUEST_HEADER], case_data[REQUEST_COOKIE])with allure.step(获取响应数据进行断言):assert_keyword(response, case_data[RESPONSE_ASSERT_KEYWORD])allure.story(登录功能)allure.title(用户登录) # 指定测试用例标题默认是函数名allure.description(通过接口进行用户登录) # 添加测试用例描述allure.severity(allure.severity_level.BLOCKER) # 阻塞级别pytest.mark.run(order2)pytest.mark.parametrize(case_data, login_test_data)def test_login(self, case_data):with allure.step(读取请求数据调用接口):logging.info(接口用例数据%s % case_data)response api_request(case_data[API_IP], case_data[API_URI], case_data[REQUEST_METHOD],case_data[API_REQUEST_DATA], case_data[RESPONSE_EXTRACT_VAR],case_data[REQUEST_HEADER], case_data[REQUEST_COOKIE])with allure.step(获取响应数据进行断言):assert_keyword(response, case_data[RESPONSE_ASSERT_KEYWORD])if __name__ __main__:test_dir os.path.dirname(__file__)pytest.main([-s, -q, test_dir, --alluredir, ../test_result/, --clean-alluredir])os.system(allure generate ../test_result/ -o ../test_report/ --clean)os.system(allure open -h 127.0.0.1 -p 8881 ../test_report/)测试数据示例 Allure 报告结果示例 下面是我整理的2023年最全的软件测试工程师学习知识架构体系图
一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜
人生如一场马拉松不在乎起点只看终点。坚持奋斗的脚步才能追逐成功的光芒。每一次努力都是积累每一次挑战都是成长相信自己的潜力勇往直前创造属于自己的辉煌人生。
不论路途多么艰辛只要保持初心与激情努力奋斗便能超越自我征服一切困难。相信自己的潜力与可能勇敢冲破束缚开启属于自己的辉煌篇章绽放耀眼的人生光芒。
每一步努力都是离成功更近一步的勇敢挑战每一次奋斗都是追求梦想的不懈追逐。不论遇到多少困难与阻碍心怀坚定信念毅然前行终将创造出属于自己的辉煌人生展现真正的自我价值。