tasks_service
该robot脚本中有三个用例依赖于dump功能需要检查BMC固件编译时是否开启该选项redfish-dump-logenabled测试环境准备文件头*** Settings ***Documentation验证 OpenBMC Redfish 任务服务TaskService和任务集合Tasks的功能。Resourcelib/resource.robot通用变量和关键字。lib/bmc_redfish_resource.robotRedfish 核心操作GET、POST、DELETE、等待任务完成等。lib/dump_utils.robot专门用于生成 BMC 转储Dump这是触发异步任务的主要手段。lib/openbmc_ffdc.robot故障现场数据收集。Suite Setup执行Suite Setup Execution登录 Redfish加载任务服务的配置数据。Suite Teardown执行Suite Teardown Execution登出关闭连接。Test TeardownFFDC On Test Case Fail失败时收集日志。Test TagsTasks_Service便于筛选。变量*** Variables ***${TIME_REGEXP_PATTERN}正则表达式用于从时间戳中去除时区偏移如00:00便于时间比较。逐个测试用例详解1.Verify Task Service Attributes手工测试角度测试人员需要验证/redfish/v1/TaskService这个服务根节点的属性是否正确。具体检查CompletedTaskOverWritePolicy任务完成后的覆盖策略是否在允许的列表中如Oldest、Newest。ServiceEnabled是否为True任务服务已启用。Status.State是否为Enabled服务状态正常。BMC 系统时间与任务服务返回的DateTime是否一致误差小于 5 秒。自动化实现角度Redfish.Get Properties获取整个 TaskService 资源。使用Should Be True检查CompletedTaskOverWritePolicy是否在 JSON 配置文件中预定义的允许值列表中。用Should Be Equal检查ServiceEnabled和Status.State。时间比较调用Get Current Date From BMC通过 SSH 执行date命令获取 BMC 当前时间再通过正则提取DateTime中的时间部分去除时区偏移计算两者差值断言小于 5 秒。2.Test Generated Task Instance Validity And Task State手工测试角度测试人员需要触发一个会产生异步任务的操作如收集 BMC 诊断数据然后验证这个任务实例的各项属性是否正确以及任务从“运行中”到“完成”的整个生命周期是否正常。自动化实现角度这是本套件最复杂的用例步骤拆解如下触发任务调用Generate Task Instance关键字内部通过Create BMC User Dump来自dump_utils.robot向 BMC 发起一个 POST 请求触发一个异步任务。该关键字返回task_id和原始响应对象。验证监控端点任务进行中访问/redfish/v1/TaskService/Tasks/${task_id}/Monitor预期返回HTTP_ACCEPTED表示任务还在执行可以继续轮询。验证任务创建时间再次获取 BMC 当前时间Get Current Date From BMC。获取任务详情提取StartTime与 BMC 当前时间比较差值应小于 10 秒确保任务及时启动。验证任务负载Payload检查Payload.HttpOperation是否为POST与触发请求的方法一致。检查Payload.TargetUri是否与触发请求的路径一致确保任务记录的是正确的目标。等待任务完成调用Wait For Task Completion来自bmc_redfish_resource.robot该关键字会轮询任务状态直到任务达到“完成”或“异常”等终态。验证任务完成后的行为再次访问监控端点/Monitor预期返回HTTP_NOT_FOUND任务结束后监控端点被移除。检查EndTime是否大于StartTime确保任务确实经历了时间流逝。3.Verify Task Persistency Post BMC Reboot手工测试角度测试人员需要验证 BMC 重启后已经存在的任务记录即使已完成是否仍然保留在任务集合中不会丢失。自动化实现角度先调用Verify Generate Task Instance Completion触发并等待一个任务完成确保至少有一个任务记录。获取当前任务集合的总数Redfish.Get Attribute ${REDFISH_TASKS_URI} Membersodata.count。执行 BMC 热重启Redfish BMC Reset Operation reset_typeForceRestart该关键字会等待 BMC 重启完成并重新建立连接。重启后再次获取任务集合总数断言两者相等。4.Verify Task Service Unsupported Methods5.Verify Unsupported Methods For Tasks URI On Task Service手工测试角度测试人员需要对/redfish/v1/TaskService和/redfish/v1/TaskService/Tasks这两个 URI分别尝试使用PATCH、PUT、DELETE等不应支持的方法验证服务器是否正确返回405 Method Not Allowed。自动化实现角度两个用例都调用了公共关键字Verify Supported And Unsupported Methods来自bmc_redfish_resource.robot传入不同的 URI。该关键字内部会对 URI 发送 GET、POST、PATCH、PUT、DELETE 等方法。根据 Redfish 规范检查每个方法返回的状态码是否符合预期例如 GET 返回 200PUT/DELETE 返回 405。6.Verify Retrieving Deleted Tasks Instance手工测试角度测试人员需要删除一个任务实例然后尝试再次获取它验证服务器返回404 Not Found。自动化实现角度调用Generate Task Instance创建一个任务。用Redfish.Get获取该任务确认存在返回HTTP_OK。调用Redfish.Delete删除该任务允许200或204。再次Redfish.Get指定valid_status_codes[${HTTP_NOT_FOUND}]验证已被删除。关键关键字解析Generate Task Instance作用触发一个会产生任务的操作并返回任务 ID 和响应对象。参数task_type目前仅支持bmc_dump后续可扩展其他类型如固件更新。实现内部调用Create BMC User Dump来自dump_utils.robot该关键字会向/redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData发送 POST 请求触发 BMC 诊断数据收集这是一个异步任务。然后从响应头Location中提取任务 ID。Load Task Service Properties Data作用从 JSON 文件task_state.json中加载配置数据设置套件级变量。加载内容allowed_completed_task_overwrite_policyCompletedTaskOverWritePolicy的允许值如[Oldest, Newest]。allowed_task_stateTaskState的允许值如[New, Running, Completed, Exception]。allowed_task_completion_state表示任务“已完成”的状态列表如[Completed, Exception]。valid_status任务服务的标准状态结构{State: Enabled, Health: OK}。优点数据驱动无需修改代码即可适配不同 BMC 版本的行为差异。Get Current Date From BMC作用通过 SSH 在 BMC 上执行date命令获取当前系统时间并转换为统一格式。实现细节执行date返回类似Mon Aug 3 15:30:45 UTC 2026的字符串。分割字符串去掉星期和时区重组为Aug 3 15:30:45 2026。用Convert Date转换为%m/%d/%Y %H:%M:%S格式便于后续与 Redfish 时间戳比较。

相关新闻

欧姆龙NJ/NX平台与ST语言在气缸集群控制中的应用

欧姆龙NJ/NX平台与ST语言在气缸集群控制中的应用

1. 欧姆龙NJ/NX平台与ST语言的黄金组合 在非标自动化设备开发领域摸爬滚打多年,我试过各种品牌的PLC和编程方式,最终发现欧姆龙NJ/NX系列配合ST(结构化文本)语言简直是工程开发的"黄金搭档"。这套组合为什么能赢得老司机…

2026/10/11 23:30:21 阅读更多 →
LabVIEW FPGA开发实战:图形化编程实现硬件级实时控制与高速采集

LabVIEW FPGA开发实战:图形化编程实现硬件级实时控制与高速采集

1. 项目概述:为什么你需要了解LabVIEW FPGA? 如果你正在从事测试测量、工业自动化、运动控制或者高速数据采集相关的工作,并且对“实时性”、“确定性”和“硬件级性能”这几个词感到既向往又头疼,那么LabVIEW FPGA绝对是你绕不开…

2026/10/2 11:36:29 阅读更多 →
Spring Boot中用户ID与IP处理:从数据清洗到安全风控的实战指南

Spring Boot中用户ID与IP处理:从数据清洗到安全风控的实战指南

在实际开发中,我们经常会遇到需要处理用户身份标识(ID)和网络地址(IP)的场景,尤其是在构建涉及用户认证、权限控制、日志审计或防刷策略的系统时。一个典型的挑战是:当系统接收到一个请求&#…

2026/10/4 19:45:58 阅读更多 →

最新新闻

Python语音识别实战:从MFCC特征提取到CTC训练与避坑指南

Python语音识别实战:从MFCC特征提取到CTC训练与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 6:45:56 阅读更多 →
从单Agent到多Agent集群:7x24小时稳定运行的架构设计与实践

从单Agent到多Agent集群:7x24小时稳定运行的架构设计与实践

半夜两点二十三分,我的单 Agent 自动化流程终于把自己玩死了:上下文窗口撑爆之后,它开始对着同一个任务反复"确认",把状态标记改得乱七八糟,任务队列里还堆着两百多条没处理的数据。那一刻我意识到&#xff…

2026/10/12 6:45:56 阅读更多 →
旗帜图片爬虫实战:格式校验、感知哈希去重与增量更新指南

旗帜图片爬虫实战:格式校验、感知哈希去重与增量更新指南

简介:这是一份面向Python爬虫入门学习者与数据分析初学者的实战源码包,以抓取东京奥运会奖牌国家及地区旗帜图片为案例,演示从网页解析、图片下载到数据存储的完整流程。压缩包内含两个文件——一个HTML文件和一个Jupyter Notebook文件&#…

2026/10/12 6:45:56 阅读更多 →
双 11 Token 预算红线硬限制:当单日模型消耗达到 80% 阈值时的自适应限流

双 11 Token 预算红线硬限制:当单日模型消耗达到 80% 阈值时的自适应限流

去年大促预售第一天中午,财务总监踩着高跟鞋直接冲进了我们技术架构组,脸色铁青。她指着大模型供应商后台的账单明细:公司账户里预先充值的 15 万元 Token 额度,从凌晨 0 点到中午 11 点半,短短不到半天时间被烧掉了 1…

2026/10/12 6:45:56 阅读更多 →
大模型私有化部署:从硬件选型到安全合规的全栈生产实践

大模型私有化部署:从硬件选型到安全合规的全栈生产实践

1. 私有化部署不是“把模型拷贝过去”,而是重建一套生产级推理基础设施很多人第一次听说“大模型私有化部署”,脑子里浮现的画面是:下载一个GGUF格式的模型文件,丢进某个本地GUI工具里点几下,然后弹出个聊天窗口——事…

2026/10/12 6:45:56 阅读更多 →
开源大模型私有化部署实战:算力底座、显存规划与推理框架选型

开源大模型私有化部署实战:算力底座、显存规划与推理框架选型

开源模型私有化部署从来不是一件“装个软件就能跑”的事。我接手过不少内部演示和实验项目,最深的体会是:模型本身的参数再漂亮,落到自己的机器上、接到业务流程里,才是真正见功夫的地方。这段时间圈子里对开源模型的讨论很多&…

2026/10/12 6:44:55 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →