BMC测试架构

简介:

A Test Framework of BMC for platform team

Table of Contents

A Test Framework of BMC for platform team.. 1

Introduction. 1

Requirement Analyze. 2

General Design. 2

Requirement. 2

Not requirement:3

Model Design. 3

Pre-run model3

Functional model3

IPMI device “Global” Commands. 3

BMC Watchdog Timer Commands. 4

Chassis Commands. 4

Event commands. 5

PEF and Alerting command. 5

SEL commands. 5

SDR Repository command. 5

FRU Inventory Device Commands. 6

Event Filter Table. 6

Sensor Device commands. 6

Platform-specific OEM command. 7

Post-run model7

Implement. 7

Requirement. 7

User interface. 7

Schedule. 7

 

Introduction

As theone most important component of a server, BMC is used to monitor system environmentmonitoring, hardware error and record related logs, so its high availabilityand stability is critical to us. Currently platform always use some manualscripts or commands to do BMC test, in fact the scripts and commands can be puttogether and re-used for other platform, and we can leverage other team’s testframework such as CTH test platform to test it automatically, therefore oneTest Frame work for BMC test is need, and this document is used to describe thedesign of the framework.

RequirementAnalyze

Typically uses cases include:

1.      OEM SEL decoding Test for customer ipmitool/unit test

2.      BMC stress test

3.      BMC function test

4.      BMC regression test

5.      System monitro

6.      Platform monitor

7.      Firmware upgrade

8.      Netmon

 

GeneralDesign

Requirement

·        support both local KCS test and LAN test

·        Could be integrate with EVT test framework

·        Could be integrated with CTH test tools

o  Graphic user interface;

o  Support auto Log;

o  Support automatically report;

o  Tests mode/collection configurable;

·        To be easily expanded for new platform;

·        To be easily expanded for other component

This requires that other software component own by platform team such asplatmon/error handling will be easily tested by this framework.

·        Support auto-training;

That means the framework will record the test cases which once detectFW/Software problem, and will automatically add them into test case for latertests.Accordingto experience, because we always meet problem when run BMC reset, firmwareupgrade , sensor reading and power cycle test, these type commands should becollected by auto-training mechanism.

 

·        Support multiply test modes: function test;random test; stress test

o  Function test: test for every component/unit one by one;

o  Random test: the random test generator willproduce the random test cases, such as random raw data, random SELs to BMC

o  Stress test:

a.      Component level stress test:

Many commands run together on the same component such as SEL / SDR / FRU/ Watchdog   / CPLD at the same time toverify its availability.

b.     System level stress test:

Many components ran stress test at the same time

 

·        Support an interface to add platform-specifictest;

·        The framework makes full use of code withcurrent DDOS

The customer ipmitool is implemented in our DDOS according coming BMCspecification, so maybe we could reuse the code and test scripts

·        The framework should define test level/log level

The test level is used to define the test granularity (sensor level,component level, bus level, function level, chip level) while the log levelhelp debug and log more details about the execution and output of the testcases.

 

·        Base on small generic test sets

To start this work easily,  we willchoose a basic test cases collection maybe included by all platform, such asBMC SEL, user , SDR, reset, Lan, Fan, FRU and power control command.

Not requirement:

·        Test for some OEM command which must operatehardware manually;

·        Test for whose result may need manuallyinvestigation.

ModelDesign

Pre-run model

Check BMC version requirement;

Check BIOS version requirement;

check extra parameters;

check BMC is in normal state;

save BMC IPMIuser/sol/serial/channel/mac/DHCP/IP default configuration;

stop system and platform monitro;

Functional Test

IPMI device “Global” Commands

·        Get Device ID command

·        Warm Reset command

·        Cold Reset command

·        Get Self Tests Results command

·        Manufacturing Test on command

·        Set ACPI power state command

·        Get ACPI power state command

·        Get Device GUID command

·        Broadcast “Get Device ID” command

·        Firmware Firewall & Command Discoverycommands

·        IPMI Messaging Support Commands

o  Set BMC Global Enables

o  Get BMC Global Enables

o  Clear Message Flags

o  Get Message Flags

o  Get Message

o  Send message

§ Get BT interface Capabilities

§ Master write-read

§ IPMI serial/Modem Commands

§ Set Serial/Modem Configuration

§ Get Serial/Modem configuration

§ Serial / Modem connection Activ

§ SOL command ( Optional)

§ SOL Activating

§ Get SOL configuration Parameters

§ Set SOL configuration Parameters

PEF and Alerting command

Get PEF Capabilities

Arm PEF Postpone Timer

Set PEF Configuration Parameters

Get PEF Configuration Parameters

Set Last Processor Event ID

Get Last Processor Event ID

BMC Watchdog Timer Commands

Reset watchdog timer

Set Watchdog timer

Get Watchdog timer

(On expiration of the Watchdog timeout:

v System Reset

v System Power Off

v System power cycle

v Pre-timeout interrupt (Optional)

Chassis Commands

Get Chassis capabilities

Get Chassis Status

Chassis control

Chassis Reset

Event commands

Set event receiver

Get event receiver

Platform event message command

SEL component

Trigger all possible SELs in scripts;

Delete SELS;

Full SELs;

Empty SELs;

Get SEL Info

Get SEL Entry

Add SEL Entry

Partial Add SEL entry

Clear SEL

Get SEL time

Set SEL time

OEM SEL decoding test (How to do the test with our OEM SELsdecoding code?)

SDR Repository command

Get SDR Repository Info

Reserve SDR Repository

Get SDR

Add SDR

Partial Add SDR

Clear SDR Repository

Get SDR Repository Time

Set SDR Repository Time

FRU Inventory Device Commands

Get Device ID

Get Self Test Results

Broadcast Get Device ID

Get Sensor Reading

Set Event Receiver

Get Event Receiver

Platform Event

 

Event Filter Table

Get EFT list

Check whether EFT works

How to do PEF auto test?

Sensor Device commands

Static and Dynamic Senor Devices

Get Device SDR info commands

Get Device SDR command

Reserve Devices SDR Repositorycommand

Get sensor Reading Factors command

Set sensor Hysteresis command

Get sensor Hysteresis command

Set Sensor Threshold command

Get sensors event Enable command

Set sensors event disabled command

Re-arm sensor Events command

User controlling command

Lan command

Platform-specific OEM command

OEM SELs;

OEM  SLIC command;

OEM NVRAM/BBU command

(How to classified different OEM commands per platforms?)

Random Test

Using “ipmitoolevent” command to cover all OEM SEL decoding, this is easy to be done by ascript:

Step 1: get allsensors;

Step 2: for everysensor, list all possible state

Step 3:Assert/Deassert every state

Step 4: checkwhether SEL decoding the event correctly.

 

Another method isusing “raw 0x40 0x41” command to emulate all possible SEL, and then using “ipmitoolsel list” to check whether successful to decode them.

Stress and Integration Test

Power button Test for many times

Short presspre-boot

Long press pre-boot

Short presspost-boot

Long presspost-boot

Fan controlling Test for manytimes

One Fan enterauto-manual control mode

Multiply Fancontrolling method switch

Sequent Fancontrolling command

LED Test for many times

Chassis LED Test

SP LED Test

FAN LED Test

SLIC LED Test

PSU LED Test

Disk LED Test

PSU SEL Test

Unpowered PSUinserted

Powered PSUinserted

Unpowered PSU removed

powered PSU removed

Firmware program Test

Firmware versionget

Firmware upgrade

Firmware downgrade

Firmware checksum

Firmware otheroption

Performance Test

Measure keyperformance for most frequent used commands, and compare it with other platform

Post-run model

check BMC is in normal state;

restore BMC IPMI user/sol/serial/FAN/LED/channel/mac/DHCP/IP defaultconfiguration;

restore system and platform monitor;

Record logs in three different lawer:

wKiom1XAEMPRD_3yAAEHG967-cs796.jpg

And then analyze above logs: PASS rate/ FAILrate:

·        Command level log: OK/ERROR

·        Case level log

Component level log;

Log upload;

Implement

Requirement

·        Unified final result format: $component test :PASS/FAIL / Unsupported/Not Run

·        Easily to expand to new platform for all OEMcommand

(Try to reuse all command function in sub script)

·        Cover all possible IPMI command maybe used by system daemon process















本文转自存储之厨51CTO博客,原文链接:http://blog.51cto.com/xiamachao/1681454 ,如需转载请自行联系原作者

相关文章
|
1月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
44 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
1月前
|
缓存 Devops jenkins
专家视角:构建可维护的测试架构与持续集成
【10月更文挑战第14天】在现代软件开发过程中,构建一个可维护且易于扩展的测试架构对于确保产品质量至关重要。本文将探讨如何设计这样的测试架构,并将单元测试无缝地融入持续集成(CI)流程之中。我们将讨论最佳实践、自动化测试部署、性能优化技巧以及如何管理和扩展日益增长的测试套件规模。
46 3
|
3月前
|
Kubernetes Cloud Native 测试技术
探索软件测试的奥秘:从理论到实践深入理解云原生架构:从基础到实践
【8月更文挑战第28天】在软件开发的世界中,测试不仅是质量的守护者,也是创新的催化剂。本文将带你穿越软件测试的迷宫,从基础概念到高级策略,揭示如何通过测试提升软件质量和用户体验。我们将一起解码测试的核心原则,探索自动化测试的魅力,并学习如何设计有效的测试案例。无论你是测试新手还是资深开发者,这篇文章都将为你提供宝贵的见解和实用的技巧,让你在软件测试的道路上更加从容不迫。 【8月更文挑战第28天】本文旨在为读者揭示云原生技术的核心概念、优势以及如何在实际项目中应用。通过深入浅出的方式,我们将探索云原生的多个方面,包括容器化、微服务架构、持续集成和持续部署(CI/CD)、以及如何利用Kubern
|
1月前
|
存储 消息中间件 运维
架构升级的救星!流量回放自动化测试的必备指南
大家好,我是小米,一名29岁的技术宅。今天分享一个物联网领域的实用技能——流量回放自动化测试。系统重构后,测试工作量巨大,本文介绍如何通过日志收集和数据回放进行自动化测试,包括离线、实时和并行回放模式,帮助快速定位Bug,提升测试效率和系统稳定性。欢迎关注我的微信公众号“软件求生”,获取更多技术干货!
42 3
|
3月前
|
缓存 Java Maven
SpringCloud基于Eureka的服务治理架构搭建与测试:从服务提供者到消费者的完整流程
Spring Cloud微服务框架中的Eureka是一个用于服务发现和注册的基础组件,它基于RESTful风格,为微服务架构提供了关键的服务注册与发现功能。以下是对Eureka的详细解析和搭建举例。
|
4月前
|
测试技术 调度 微服务
微服务架构下的两类测试
【7月更文挑战第16天】微服务架构下的两类测试:流量录制回放测试和仿真环境测试
|
3月前
|
运维 Kubernetes 索引
揭秘ChaosBlade的Helm安装双架构:一步到位,让系统故障测试变得前所未有的简单和高效!
【8月更文挑战第7天】在多变的IT环境中,确保应用的稳定与可用至关重要。混沌工程通过故意引入故障来增强系统韧性。ChaosBlade是一款开源混沌实验工具,支持多样化的故障注入。结合Kubernetes的包管理器Helm,可简化ChaosBlade在集群中的部署。本文介绍如何使用Helm安装ChaosBlade双架构版本,包括添加仓库、选择版本、安装配置及验证等步骤,助力高效实施混沌工程,提升系统稳定性和可靠性。
55 0
|
5月前
|
存储 测试技术 数据库
在django中的测试架构
【6月更文挑战第13天】该文主要讨论Django项目的测试数据查询和测试架构。文中展示了如何创建`TestCase`子类进行测试,并提供了执行测试的不同选项,如增加详细信息、并行运行和选择性运行特定测试。
48 2
在django中的测试架构
|
5月前
|
运维 安全 网络架构
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
【6月更文挑战第1天】成为网络世界的超级英雄,利用网络模拟工具解决复杂架构难题!此工具提供安全的虚拟环境,允许自由设计和测试网络拓扑,进行性能挑战和压力测试。简单示例代码展示了创建网络拓扑的便捷性,它是网络设计和故障排查的“魔法棒”。无论新手还是专家,都能借助它探索网络的无限可能,开启精彩冒险!快行动起来,你会发现网络世界前所未有的乐趣!
69 2
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
|
4月前
|
监控 供应链 jenkins
「架构」单元测试及运用
TechCorp在软件项目中重视单元测试,结合静态代码分析(如SonarQube)与动态的白盒测试(使用JUnit和JaCoCo)。通过设定代码覆盖率标准和自动化回归测试(集成到CI/CD),团队确保了代码质量、减少了缺陷,加快了开发速度,打造出稳定、高性能的电商平台。单元测试成为提升软件质量和开发效率的关键实践。
40 0