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/8/5 8:54:50 阅读更多 →
LabVIEW FPGA开发实战:图形化编程实现硬件级实时控制与高速采集

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

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

2026/8/5 8:54:50 阅读更多 →
Spring Boot中用户ID与IP处理:从数据清洗到安全风控的实战指南

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

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

2026/8/5 8:54:50 阅读更多 →

最新新闻

如何用Glass Browser实现Windows桌面终极多任务:透明悬浮浏览器完整指南

如何用Glass Browser实现Windows桌面终极多任务:透明悬浮浏览器完整指南

如何用Glass Browser实现Windows桌面终极多任务:透明悬浮浏览器完整指南 【免费下载链接】glass-browser A floating, always-on-top, transparent browser for Windows. 项目地址: https://gitcode.com/gh_mirrors/gl/glass-browser 你是否厌倦了在多个窗口…

2026/8/5 14:06:15 阅读更多 →
如何用开源OpenArm机械臂构建你的第一个AI机器人实验平台

如何用开源OpenArm机械臂构建你的第一个AI机器人实验平台

如何用开源OpenArm机械臂构建你的第一个AI机器人实验平台 【免费下载链接】openarm A fully open-source humanoid arm for physical AI research and deployment in contact-rich environments. 项目地址: https://gitcode.com/GitHub_Trending/op/openarm 想在实验室里…

2026/8/5 14:06:15 阅读更多 →
KaTrain围棋AI训练:免费开源的全方位棋力提升终极指南

KaTrain围棋AI训练:免费开源的全方位棋力提升终极指南

KaTrain围棋AI训练:免费开源的全方位棋力提升终极指南 【免费下载链接】katrain Improve your Baduk skills by training with KataGo! 项目地址: https://gitcode.com/gh_mirrors/ka/katrain 想要快速提升围棋水平?KaTrain是一个基于KataGo开源围…

2026/8/5 14:06:15 阅读更多 →
5分钟快速恢复QQ空间历史数据:GetQzonehistory完整备份指南

5分钟快速恢复QQ空间历史数据:GetQzonehistory完整备份指南

5分钟快速恢复QQ空间历史数据:GetQzonehistory完整备份指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心QQ空间的珍贵回忆随着时间流逝而消失?那些…

2026/8/5 14:06:15 阅读更多 →
Flutter与OpenHarmony结合开发逆向思维训练App实践

Flutter与OpenHarmony结合开发逆向思维训练App实践

1. 项目概述Flutter与OpenHarmony的结合开发确实是个有趣的方向。作为一名同时接触过这两个技术的开发者,我发现这种跨平台国产操作系统的组合在实际项目中越来越常见。这个项目主要包含两个核心功能模块:逆向思维训练App的实现和学习日历的集成。逆向思…

2026/8/5 14:06:15 阅读更多 →
基于最大最小距离准则优化拉丁超立方采样的工程实践

基于最大最小距离准则优化拉丁超立方采样的工程实践

1. 项目概述:当“均匀”遇见“最优”在仿真分析、机器学习模型训练、不确定性量化这些领域,我们常常需要从复杂的参数空间中抽取有代表性的样本点。直接随机撒点?效率太低,覆盖不均。用网格法?维度一高,计算…

2026/8/5 14:05:15 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →