diff --git a/docs/pictures/fc-1.png b/docs/pictures/fc-1.png new file mode 100644 index 0000000000000000000000000000000000000000..446644befb700ede20678908aad0be37ea9a0efd Binary files /dev/null and b/docs/pictures/fc-1.png differ diff --git a/docs/pictures/fc-2.png b/docs/pictures/fc-2.png new file mode 100644 index 0000000000000000000000000000000000000000..e2714b239d9483a5596d8423b551aaea7bc787f9 Binary files /dev/null and b/docs/pictures/fc-2.png differ diff --git a/docs/pictures/fc-3.png b/docs/pictures/fc-3.png new file mode 100644 index 0000000000000000000000000000000000000000..e9e221cb98e6d9aca8e1eb5170fcbb4e9eb6c7f0 Binary files /dev/null and b/docs/pictures/fc-3.png differ diff --git a/docs/pictures/fc-4.png b/docs/pictures/fc-4.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f0c0639c789e76bc989a1dc13a438592bef61b Binary files /dev/null and b/docs/pictures/fc-4.png differ diff --git a/docs/pictures/nic-1.png b/docs/pictures/nic-1.png new file mode 100644 index 0000000000000000000000000000000000000000..49dcd555e91f797b2dfde85545d0e5efa80eb86a Binary files /dev/null and b/docs/pictures/nic-1.png differ diff --git a/docs/pictures/nic-2.png b/docs/pictures/nic-2.png new file mode 100644 index 0000000000000000000000000000000000000000..5d0baad1857ec402a42bee713a7033b9b13e25b6 Binary files /dev/null and b/docs/pictures/nic-2.png differ diff --git a/docs/pictures/nic-3.png b/docs/pictures/nic-3.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a1402e1bb6d44f29431f4274c4ccafef631c52 Binary files /dev/null and b/docs/pictures/nic-3.png differ diff --git a/docs/pictures/raid-1.png b/docs/pictures/raid-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ba06ab98b9269be4595fd80b20fcaaa1988f9ca9 Binary files /dev/null and b/docs/pictures/raid-1.png differ diff --git a/docs/pictures/raid-2.png b/docs/pictures/raid-2.png new file mode 100644 index 0000000000000000000000000000000000000000..52de869c7bb69ed06fbe0184eda693092471ed0f Binary files /dev/null and b/docs/pictures/raid-2.png differ diff --git a/docs/test_case_doc/test_suite.md b/docs/test_case_doc/test_suite.md new file mode 100644 index 0000000000000000000000000000000000000000..5ac0104fc24390cac90385828a297f30ac9020cf --- /dev/null +++ b/docs/test_case_doc/test_suite.md @@ -0,0 +1,188 @@ + + +* [测试项介绍](#测试项介绍) + * [已有测试项](#已有测试项) + * [compatible](#compatible) + * [virtualization](#virtualization) + * [新增测试项](#新增测试项) + + + +# 测试项介绍 + +## 已有测试项 + +### compatible + +1. **system** + + - 检查本工具是否被修改。 + - 检查 OS 版本和 kernel 版本是否匹配。 + - 检查内核是否被修改/感染。 + - 检查 selinux 是否正常启用。 + - 使用 dmidecode 工具读取硬件信息。 + +2. **cpufreq** + + - 测试 cpu 在不同调频策略下运行频率是否同预期。 + - 测试 cpu 在不同频率下完全同规格计算量所需时间是否与频率值反相关。 + + **注意** + `/sys/devices/system/cpu/cpu0-95`目录下需包含cpu frequency相关文件,如果缺失对应文件,请查看 [oec-hardware 工具使用问题解答](https://forum.openeuler.org/t/topic/629/1)。 + +3. **clock** + + - 测试时间矢量性,不会倒回。 + - 测试 RTC 硬件时钟基本稳定性。 + +4. **memory** + + - 使用 memtester 工具进行内存读写测试。 + - mmap 全部系统可用内存,触发 swap,进行 120s 读写测试。 + - 测试 hugetlb。 + - 内存热插拔测试。 + +5. **network** + + - 使用 ethtool 获取网卡信息和 ifconfig 对网卡进行 down/up 测试。 + - 使用 qperf 测试以太网卡tcp/udp延迟和带宽,以及 http 上传、下载速率。 + - 使用 perftest 测试 infiniband(IB) 或 RoCE 网络协议的延迟和带宽。 + + **注意** + + 进行网络带宽测试时,请提前确认服务端网卡速率不小于客户端,并保证测试网络无其他流量干扰。 + +6. **disk** + + - 使用 fio 工具进行裸盘/文件系统的顺序/随机读写测试。 + +7. **kdump** + + - 触发 kdump,测试能否正常生成 vmcore 文件并解析。 + +8. **watchdog** + + - 触发 watchdog,测试系统是否可以正常复位。 + +9. **perf** + + - 收集系统中硬件产生的事件。 + - 收集采样信息,查看统计结果。 + +10. **cdrom** + + - 使用 mkisofs 和 cdrecord 对光驱进行刻录和读取测试。 + +11. **ipmi** + + - 使用 ipmitool 查询 IPMI 信息。 + +12. **nvme** + + - 使用 nvme-cli 工具对盘进行格式化、读写、查询测试。 + +13. **usb** + + - 热插拔 usb 设备,测试 usb 接口能否正常识别。 + +14. **acpi** + + - 工具会打开目录 `sys/fireware/acpi/tables` 下的acpi表,利用 acpidump 工具读取数据。 + + +15. **FC** + + - 使用 fio 工具进行FC存储服务器的顺序/随机读写测试。 + +16. **RAID** + + - 使用 fio 工具进行RAID下硬盘的顺序/随机读写测试。 + +17. **keycard** + + - 测试加密卡是否能正常使用。 + +18. **GPU** + + - NVIDIA GPU + + - 使用 gpu_burn 工具对GPU进行加压测试。 + - 使用 cuda_samples 测试GPU的基本功能。 + + - AMD GPU + + - 使用 radeontop 工具查看GPU使用率。 + - 使用 glmark2 工具查看GPU screen信息。 + - 使用 glmark2 工具对GPU进行加压测试。 + + **注意** + + AMD GPU测试依赖图形界面,在测试前需要部署并切换到图形界面。 + +19. **infiniband** + + - 使用 ethtool 获取网卡信息。 + - 使用 perftest 测试 infiniband(IB) 网络协议的延迟和带宽。 + + **注意** + + IB测试需要确保网卡模式切换到IB模式。 + 进行网络带宽测试时,请提前确认服务端网卡速率不小于客户端,并保证测试网络无其他流量干扰。 + +20. **kabi** + + - 测试内核 kabi 和标准系统相比是否发生变化。 + +21. **VGPU** + + - 测试 NVIDIA VGPU 服务端基本功能。 + - 部署 NVIDIA VGPU 客户端虚拟机,测试驱动安装,测试客户端 VGPU 功能。 + - VGPU 服务端监控客户端的运行。 + +22. **spdk** + + - 使用spdk工具对固态硬盘进行顺序和随机读写测试。 + +23. **dpdk** + + - 使用dpdk-testpmd把两个以太网端口连成环回模式,在没有外部流量发生器的情况下,客户端使用发包模式(Tx-only mode)作为数据包源,服务端使用收包模式(Rx-only mode)作为数据包接收器, 测试端口传输速率功能。 + +24. **srpm** + + - 测试当前os版本的源码包srpm是否符合该版本最小集核心包选型基线要求(支持24.03-LTS以后版本)。 + +### virtualization + +虚拟化测试用例请查看 [测试用例说明](https://gitee.com/openeuler/oec-cloud/blob/master/测试用例说明)。 + +## 新增测试项 + +### 测试项添加位置 + + * 添加测试项 + 在`tests/` 目录下先添加测试项类别目录,在类别下面再添加具体测试项的测试用例。 + + * 添加测试用例 + 如果是在测试项下新增测试用例,则在`tests/` 目录下找到所在类别目录,在类别下面再添加测试用例。 + +### 测试类中的重要成员变量或函数介绍 + + * 函数 `test` - **必选**,测试主流程。 + + * 函数 `setup` - 测试开始前环境准备,主要用于初始化被测设备相关信息,可以参考 network 测试。 + + * 函数 `teardown` - 测试完成后环境清理,主要用于确保无论测试成功失败都能正确恢复环境,可以参考 network 测试。 + + * 变量 `requirements` - 以数组形式存放测试依赖的 rpm 包名,测试开始前框架自动安装。 + + * 变量 `reboot` 和 `rebootup` - 若 `reboot = True` 表示该测试套/测试用例会重启系统,且在重启后继续执行 `rebootup` 指定的函数,可以参考 kdump 测试。 + +### 测试项开发 + + * 测试用例开发请参考 [oec-hardware开发设计文档](../design_docs/dev_design.md)。 + +### 测试项调用 + +* 在 `hwcompatible/compatibility.py` 文件中添加对应测试项的识别显示。 + +* 板卡识别方法可参考https://gitee.com/openeuler/oec-hardware/blob/master/docs/develop_doc/get_board.md 文档。 \ No newline at end of file diff --git a/docs/test_guide_doc/oech_test_guide.md b/docs/test_guide_doc/oech_test_guide.md new file mode 100644 index 0000000000000000000000000000000000000000..0e8198be027f89453ab090b34ee3e4788abea846 --- /dev/null +++ b/docs/test_guide_doc/oech_test_guide.md @@ -0,0 +1,187 @@ +* [前言](#前言) +* [测试指导](#使用指导) + * [启动工具](#启动工具) + * [整机测试项](#整机测试项) + * [板卡测试项](#板卡测试项) + * [RAID](#RAID) + * [NIC/IB](#NIC/IB) + * [SSD](#SSD) + * [GPU](#GPU) + * [DPDK](#DPDK) + * [FC](#FC) + * [虚拟化测试](#虚拟化测试) + +# 前言 +在使用本指导前请确保已阅读 [oec-hardware工具说明](https://gitee.com/openeuler/oec-hardware/blob/master/README.md)。 + +# 测试指导 + +## 启动工具 +1. 在客户端启动测试框架。输入 `oech`启动工具,输入1 选择`compatible`测试类别。 + ``` + # oech + Please select test category. + No. category + 1 compatible + 2 virtualization + Please select test category No:1 + ``` +2. 进入测试套选择界面。在用例选择界面,框架将自动扫描硬件并选取当前环境可供测试的测试套,输入 `edit` 可以进入测试套选择界面。 + + ``` + These tests are recommended to complete the compatibility test: + No. Run-Now? status Class Device driverName driverVersion chipModel boardModel + 1 yes NotRun acpi + 2 yes NotRun clock + 3 yes NotRun cpufreq + 4 yes NotRun disk + 5 yes NotRun ethernet enp3s0 hinic 2.3.2.17 Hi1822 SP580 + 6 yes NotRun ethernet enp4s0 hinic 2.3.2.17 Hi1822 SP580 + 7 yes NotRun ethernet enp125s0f0 hns3 HNS GE/10GE/25GE TM210/TM280 + 8 yes NotRun ethernet enp125s0f1 hns3 HNS GE/10GE/25GE TM210/TM280 + 9 yes NotRun raid 0000:04:00.0 megaraid_sas 07.714.04.00-rc1 SAS3408 SR150-M + 10 yes NotRun gpu 0000:03:00.0 amdgpu Navi Radeon PRO W6800 + 11 yes NotRun ipmi + 12 yes NotRun kabi + 13 yes NotRun kdump + 14 yes NotRun memory + 15 yes NotRun perf + 16 yes NotRun system + 17 yes NotRun usb + 18 yes NotRun watchdog + Ready to begin testing? (run|edit|quit) + ``` + +3. 选择测试套。`all|none` 分别用于 `全选|全取消`(必测项 `system` 不可取消,多次执行成功后 `system` 的状态会变为`Force`);数字编号可选择测试套,建议每次选择一个数字,按回车符之后 `no` 变为 `yes`,表示已选择该测试套。 + + ``` + Select tests to run: + No. Run-Now? status Class Device driverName driverVersion chipModel boardModel + 1 no NotRun acpi + 2 no NotRun clock + 3 no NotRun cpufreq + 4 no NotRun disk + 5 yes NotRun ethernet enp3s0 hinic 2.3.2.17 Hi1822 SP580 + 6 no NotRun ethernet enp4s0 hinic 2.3.2.17 Hi1822 SP580 + 7 no NotRun ethernet enp125s0f0 hns3 HNS GE/10GE/25GE TM210/TM280 + 8 no NotRun ethernet enp125s0f1 hns3 HNS GE/10GE/25GE TM210/TM280 + 9 yes NotRun raid 0000:04:00.0 megaraid_sas 07.714.04.00-rc1 SAS3408 SR150-M + 10 yes NotRun gpu 0000:03:00.0 amdgpu Navi Radeon PRO W6800 + 11 yes NotRun ipmi + 12 yes NotRun kabi + 13 yes NotRun kdump + 14 yes NotRun memory + 15 yes NotRun perf + 16 yes NotRun system + 17 yes NotRun usb + 18 yes NotRun watchdog + Selection (|all|none|quit|run): + ``` +4. 开始测试。选择完成后输入"run"进行测试。 + +## 整机测试项 + +* 整机测试项中有部分涉及重启操作的测试项,请对这类测试项单独进行测试` kdump watchdog`。 +* 测试项介绍详情请查看 [oec-hardware测试项介绍](https://gitee.com/openeuler/oec-hardware/tree/master/docs/test_case_doc/test_suite.md)。 + +## 板卡测试项 + +### RAID + +1. 测试前请确保硬件已被工具识别,并且添加到测试项中。 +![raid-1](../pictures/raid-1.png) + +2. 编辑`/usr/share/oech/lib/config/test_config.yaml`文件,更改raid卡pci地址。 +![raid-2](../pictures/raid-2.png) + +3. 配置完成后,选择raid测试项进行测试即可。 + +### NIC/IB + +1. 网卡测试需要额外一台服务器作为服务端,并且需要客户端与服务端安装了相同的待测网卡。 +![nic-1](../pictures/nic-1.png) +![nic-2](../pictures/nic-2.png) + +2. 使用`ifconfig xxx`命令配置客户端与服务端网口IP,确保客户端与服务端连通。 + +* 配置客户端。 +``` +[root@localhost ~]# ifconfig enp4s0f0 2.2.2.3 +``` +* 配置服务端。 +``` +[root@localhost ~]# ifconfig ens6f1 2.2.2.4 +``` +* 配置完成后任意一端ping另一端,测试是否连通。 +``` +[root@localhost ~]# ping 2.2.2.4 +PING 2.2.2.4 (2.2.2.4) 56(84) bytes of data. +64 bytes from 2.2.2.4: icmp_seq=1 ttl=64 time=0.302ms +64 bytes from 2.2.2.4: icmp_seq=1 ttl=64 time=0.140ms +64 bytes from 2.2.2.4: icmp_seq=1 ttl=64 time=0.124ms +``` +3. 服务端准备。 +* 使用 `dnf` 安装服务端 oec-hardware-server。 + + ``` + dnf install oec-hardware-server + ``` + +* 启动服务。本服务通过搭配 nginx 服务提供 web 服务,默认使用 80 端口,可以通过 nginx 服务配置文件修改对外端口,启动前请保证这些端口未被占用。 + + ``` + systemctl start oech-server.service + systemctl start nginx.service + ``` + +* 关闭防火墙和 SElinux。 + + ``` + systemctl stop firewalld + iptables -F + setenforce 0 + ``` +4. 客户端测试。 + +* 编辑`/usr/share/oech/lib/config/test_config.yaml`文件,更改网卡端口和服务端IP。 +![nic-3](../pictures/nic-3.png) + +* 配置完成后,选择对应端口的网卡测试项进行测试即可。 + + +### SSD + +确保硬件被工具识别,并且添加到测试项之后,选择对应测试项进行测试即可。 + + +### GPU + +1. 从对应GPU厂商官网下载outbox驱动,编译安装到当前环境上。 + +2. 选择对应测试项进行测试即可。 + + +### DPDK + +1. 进行dpdk测试前,请确保网卡驱动支持dpdk测试。(目前支持dpdk测试的驱动:*mlx4_core, mlx5_core, ixgbe, ice, hinic, igc*) +2. dpdk测试需要配置服务端,将两个以太网连成环回模式,在没有外部流量发生器的情况下, 客户端使用发包模式(Tx-only mode)作为数据包源,服务端使用收包模式(Rx-only mode) 作为数据包接收器, 测试端口传输速率功能。 [服务端配置参考](https://gitee.com/openeuler/oec-hardware#%E4%BD%BF%E7%94%A8%E6%AD%A5%E9%AA%A4) + +3. 服务端IP配置正确后,选择对应测试项测试即可。 + +### FC + +1. FC测试将使用 fio 工具进行FC存储服务器的顺序/随机读写测试,测试之前请先确保FC卡与存储服务器连通并且有传输速率。 +![fc-1](../pictures/fc-1.png) + +2. 进入存储服务器配置磁盘阵列,配置完成后确保os侧能识别到盘。 +![fc-2](../pictures/fc-2.png) + +3. 编辑`/usr/share/oech/lib/config/test_config.yaml`文件,更改fc卡pci地址。 +![fc-3](../pictures/fc-3.png) +![fc-4](../pictures/fc-4.png) + +4. 配置完成后,选择对应fc卡测试项进行测试即可。 + +## 虚拟化测试 + +虚拟化测试请查看 [虚拟化测试用户指南](https://gitee.com/openeuler/oec-cloud/blob/master/README.md)。 \ No newline at end of file