测试标准和测试工具

商用软件

测试标准

经openEuler兼容性SIG组评定,针对商用软件技术测评的测试方案如下。

测试维度检测项评定标准是否可选
构建测试软件构建测试目标软件可以在指定架构、操作系统上构建成功。可选
兼容性测试软件包安装测试目标软件可以在指定架构、操作系统上安装成功。必选
兼容性测试软件包卸载测试目标软件可以在指定架构、操作系统上卸载成功。必选
兼容性测试软件服务启动测试目标软件可以在指定架构、操作系统上启动成功。必选
兼容性测试软件服务停止测试目标软件可以在指定架构、操作系统上停止成功。必选
兼容性测试强制杀死进程测试目标软件可以在指定架构、操作系统上异常终止后可以启动成功。必选
兼容性测试软件命令调用测试目标软件可以在指定架构、操作系统上运行基本的命令。必选
兼容性测试软件依赖库查询目标软件可以在指定架构、操作系统上查询依赖库。必选
兼容性测试软件以来库差异识别目标软件可以在指定架构、操作系统上依赖库兼容。必选
性能测试 (可选)CPU波动测试目标软件在稳定运行期间的系统资源CPU的波动正常。可选
性能测试 (可选)内存波动测试目标软件在稳定运行期间的系统资源内存的波动正常。可选
性能测试 (可选)磁盘波动测试目标软件在稳定运行期间的系统资源IO的波动正常。可选
性能测试 (可选)网络波动测试目标软件在稳定运行期间的系统资源网络的波动正常。可选
性能测试 (可选)压力长稳测试目标软件在压力测试下能够长时间稳定运行,且指标数据波动范围在预期范围内。可选
安全测试端口安全测试目标软件在运行期间的监控端口是否与端口矩阵中的端口信息一致。必选
安全测试病毒扫描测试目标软件无携带病毒文件。必选
安全测试CVE漏洞扫描测试目标软件不存在已知的CVE漏洞。必选

测试步骤

工具简介

为了解决欧拉技术测评过程中涉及的ISV商用软件兼容性测试问题,特基于《欧拉技术测评兼容性测试用例(ISV商用软件)》 集成了lkp-tests和x2openEuler测试工具。

环境要求

项目要求
操作系统openEuler系操作系统。
依赖软件请使用此命令安装依赖包:yum install -y wget git。

注意

  • 请勿在生产环境安装和执行测试工具。
  • 工具安装过程需从外网下载代码和依赖包,请确保网络连接正常(如无法链接外网,需要将gem相关依赖完全离线并进行安装)。
  • 工具默认安装在当前目录,请确保目录剩余空间足够。

工具安装

Lkp-tests
  1. 安装依赖。

    yum install -y wget git rubygems
    
  2. 安装Lkp-tests。

    git clone https://gitee.com/wu_fengguang/lkp-tests
    
    cd lkp-tests
    
    sed -i "s/rubygems.org/gems.ruby-china.com/g" Gemfile
    
    gem sources --remove https://rubygems.org/
    
    gem sources -a https://gems.ruby-china.com/
    
    make install
    
  3. 写入环境变量。

    将lkp-tests所在路径增加到/etc/profile末尾,便于后续测试。

    vi /etc/profile
    
    
        export LKP_PATH="填写lkp-tests所在路径"。
    
    • vi 打开文件后,“shift”+“g"跳到文件末尾,然后按下"o” 编辑下一行。

    • 输入完成后,“esc"退出编辑,然后输入”:wq"+“enter"保存并退出文件。

     source /etc/profile
    
  4. 下载测试套。

    git clone https://gitee.com/whatamaze/compatibility-test
    
    cd compatibility-test
    
    sh install.sh
    
x2openEuler安装
  1. 安装依赖。

     yum install -y bzip2 bzip2-devel
    
  2. 安装x2openEuler。

    访问 https://repo.oepkgs.net/openEuler/rpm/openEuler-20.03-LTS-SP1/contrib/x2openEuler/ 获取x2openEuler软件包并上传至服务器。

    yum install x2openEuler-xxx.rpm
    
  3. 设置x2openEuler密码。

    passwd x2openEuler
    

    说明:

    用户登录的密码,建议满足如下复杂度要求:

    • 密码长度为8~32个字符。
    • 使用包含大写字母、小写字母、数字、特殊字符(~!@#$%^&*()-_=+|[{}];:'”,<.>/?)中的两种及以上类型的组合。
    • 密码中不包含空格。
    • 密码中不使用用户名。

测试执行

Lkp-tests测试
  1. 安装通用依赖。

    export arch=\`arch\`
    
    gem install git -v 1.9.1
    
    lkp install
    

    注意: 此处必须安装1.12以下版本的git,否则会导致接口传参出错。

  2. 安装兼容性测试依赖。

    lkp split-job $LKP_PATH/jobs/compatibility-test.yaml
    
    lkp install -f compatibility-test-defaults.yaml
    

    执行成功后会在执行命令目录中生成 compatibility-test-defaults.yaml 文件,用于后续任务调度,后续执行执行兼容性测试,也需切换到此目录。

  3. 执行兼容性测试。

    将待测软件包放至当前目录下,执行以下命令,最终测试结果在compatibilityLog文件中。

    lkp run ./compatibility-test-defaults.yaml -s 'package_name: xxxxxx' >compatibilityLog 2\>& 1
    

    说明:

    • package_name: 后必须有一个空格,否则导致报错无法进行测试。
    • 此处package_name后需填写软件包文件全名,例如nginx-1.14.2-1.oe1.aarch
    • 当前脚本适配rpm包,如无法直接使用rpm -ivh等rpm命令进行安装、卸载,请在脚本中修改安装卸载命令,详见附录商业软件测试安装和卸载命令
x2openEuler测试
  1. 切换到x2openEuler用户。

    su - x2openEuler
    

    须知:

    使用前请务必切换用户为x2openEuler用户

  2. 执行扫描。

    x2openEuler scan [-batch] [-arch ARCH] [-os_name OS_NAME] [-target_os_name TARGET_OS_NAME] {filename \| directoryname}
    
    命令参数选项说明
    -batch-多应用场景,配合directoryname,扫描文件夹下多个软件包若无此参数,仅扫描单个软件包。
    -archARCH操作系统架构 可选参数。 可选x86_64或aarch64,默认为x86_64。 例如"-arch x86_64" 选择操作系统架构为x86_64。
    -os_nameOS_NAME源操作系统 可选参数,默认参数为centos7.6。例如"-os_name centos8.2" 选择源操作系统为CentOS 8.2。说明:当前源操作系统支持CentOS 6.8/CentOS 7.6/CentOS 8.2。
    - target_os_nameTARGET_OS_NAME目标操作系统 可选参数,默认参数为openEuler20.03-LTS-SP1。例如"-target_os_name openEuler20.03-LTS-SP1" 选择目标操作系统为openEuler20.03-LTS-SP1。
    -filename| directoryname需扫描的应用包或目录,例如"x2openEuler scan file_name_version.rpm" 选择扫描的应用包为file_name_version.rpm。说明:当前扫描支持rpm/tar/zip/gzip/jar/py/pyc/sh/bin文件。

    此处以评估CUnit-2.1.3-21.oel.aarch64.rpm_应用包并输出软件评估报告为例,请根据实际情况选择所需参数并替换为需要扫描的软件包或软件包目录。

    x2openEuler scan -arch x86_64 CUnit-2.1.3-21.oel.x86_64.rpm
    

  3. 结果查看。

    报告为html格式,建议下载报告并在浏览器查看。

硬件

测试标准

整机测试标准

经openEuler兼容性SIG组评定,硬件技术测评分为整机和板卡,整机测试方案如下。

测试维度检测项评定标准是否可选
ACPI测试ACPI测试提取ACPI表,查看电源配置是否合理。必选
时钟测试系统时间偏差测试测试系统时间没有偏差。必选
时钟测试RTC时钟稳定性测试测试RTC硬件时钟稳定性。必选
CPU测试CPU调频策略测试测试 cpu 在不同调频策略下运行频率是否预期,测试 cpu 在不同频率下完全同规格计算量所需时间是否与频率值吻合。必选
Kdump测试预留内存测试查看系统是否为捕获内核提供预留内存。必选
Kdump测试Kdump可用性测试Kdump服务能否正常使用。必选
Kdump测试vmcore分析测试通过crash分析kdump生成的vmcore文件。必选
系统测试系统事件捕获测试测试perf是否可以捕获系统事件信息。必选
系统测试基本信息检查查询硬件型号信息,系统版本信息,系统内核模块信息。必选
系统测试内核检查检查是否为debug kernel。检查os版本和kerner版本是否匹配。 检查内核是否被污染或者内核rpm包是否被修改。 查看内核启动参数。必选
系统测试selinux检查检测selinux是否可用,可设置为enforcing。必选
IPMI测试IPMI测试使用ipmitool查询ipmi信息。必选
看门狗测试watchdog测试触发watchdog,测试系统是否可以正常复位。必选
内存测试内存读写测试测试内存读写是否成功。必选
内存测试内存占用测试测试此内存是否成功。必选
内存测试内存大页测试大页内存分配成功,大页内存测试成功。必选
内存测试内存热插拔测试测试内存热插拔。必选
磁盘测试磁盘分区测试成功获取空闲磁盘。必选
磁盘测试磁盘读写测试裸盘顺序读写成功,裸盘随机读写成功,文件系统顺序读写成功,文件系统随机读写成功。必选
网卡测试获取IP地址是否可以获取C/S的IP地址。必选
网卡测试网卡启停测试网卡是否可以正常启动、关闭,获取网卡速率。必选
网卡测试网卡连通性测试客户端是否可以ping通服务端,是否有丢包。必选
网卡测试延迟和带宽测试测试C/S之间的网络延迟和Server的带宽。必选
网卡测试文件上传下载测试客户端是否可以从服务端上传和下载文件。必选
USB测试USB插拔测试检测是否有新设备插入 检测是否有设备拔掉。必选
RAID测试分区测试能成功获取空闲磁盘个数。必选
RAID测试读写测试裸盘顺序读写成功,裸盘随机读写成功,文件系统顺序读写成功,文件系统随机读写成功。必选

板卡测试标准

经openEuler兼容性SIG组评定,硬件技术测评分为整机和板卡,板卡测试方案如下:

NVMe测试标准
测试维度检测项评定标准是否可选
NVMe测试格式化测试测试硬盘格式化是否成功。必选
NVMe测试读测试测试硬盘读是否成功。-
NVMe测试写测试测试硬盘写是否成功。-
NVMe测试smart测试磁盘读取smart信息成功。-
NVMe测试log测试分析smart信息成功。-
网卡测试标准
测试维度检测项评定标准是否可选
网卡测试获取IP地址是否可以获取C/S的IP地址。-
网卡测试网卡启停测试网卡是否可以正常启动、关闭,获取网卡速率。-
网卡测试网卡连通性测试客户端是够能ping通服务端,是否有丢包。-
网卡测试延迟和带宽测试测试C/S之间的网络延迟和Server的带宽。-
网卡测试文件上传下载测试客户端能否从服务端上传和下载文件。-
FC测试标准
测试维度检测项评定标准是否可选
FC卡测试lun测试获取可测试的磁盘阵列成功。-
FC卡测试读写测试裸盘顺序读写成功,裸盘随机读写成功,文件系统顺序读写成功,文件系统随机读写成功。-
GPU测试标准
测试维度检测项评定标准是否可选
GPU测试GPU burn测试gpu-burn工具压力测试,nvidia-sim工具监测性能指标正常。-
GPU测试样例测试样例测试结果为PASS。-

测试步骤

工具简介

为了解决欧拉技术测评过程中涉及的整机和板卡兼容性测试问题,基于《欧拉技术测评兼容性测试用例(整机&板卡)》 集成了oec-hardware测试工具。 此工具将根据《欧拉技术测评兼容性测试用例(整机&板卡)》提取为58个自动化测试用例,分为整机测试用例集和板卡测试用例集。

环境要求

整机测试环境要求。

项目要求
整机数量需要两台整机,业务网口互通。
硬件至少有一张RAID卡和一张网卡(包括集成主板硬件)。
内存建议满配。
操作系统openEuler系操作系统(支持dnf/yum/pip3)。

板卡测试环境要求。

项目要求
服务器型号Taishan200(Model 2280)、2288H V5或同等类型的服务器,对于x86_64服务器,icelake/cooperlake/cascade可任选一种,优选icelake。
RAID卡需要组raid,至少组raid0。
NIC/IB卡服务端和测试端需要分别插入一张同类型板卡,配置同网段IP,保证直连互通。
FC卡需要连接磁阵,至少组两个lun。
操作系统openEuler系操作系统(支持dnf/yum/pip3)。

注意

  • 部分测试用例会重启机器,请勿在生产环境安装和执行测试工具。
  • 工具安装过程需要从外网下载代码和依赖包,请确保网络连接正常(如无法连接外网,需要下载相关依赖并进行安装)。
  • 工具日志默认存放在/usr/share,请确保目录剩余空间足够。

工具安装

客户端:

  1. 配置 openEuler 官方 repo 中对应版本的 everything 和 update 源,使用 dnf 安装客户端 oec-hardware。

     dnf install oec-hardware
    
  2. 输入 oech 命令,可正常运行,则表示安装成功。

服务端:

  1. 配置 openEuler 官方 repo 中对应版本的 everything 和 update 源,使用 dnf 安装服务端 oec-hardware-server。

    dnf install oec-hardware-server
    
  2. 服务端 web 展示页面需要的部分组件系统本身不提供,需要使用 pip3 安装(请自行配置可用 pip 源)。

    pip3 install Flask Flask-bootstrap uwsgi
    
  3. 启动服务:本服务默认使用 8080 端口,同时搭配 nginx(默认端口 80)提供 web 服务,请确认端口未被占用。

    systemctl start oech-server.service
    
    systemctl start nginx.service
    
  4. 关闭防火墙和 SElinux。

    systemctl stop firewalld
    
    iptables -F
    
    setenforce 0
    

测试执行

  • /usr/share/oech/kernelrelease.json 文件中列出了当前支持的所有系统版本,使用uname -a 命令确认当前系统内核版本是否属于框架支持的版本。
  • 框架默认会扫描所有网卡,对网卡进行测试前,请自行筛选被测网卡,并为其配置能够 ping 通服务端的IP。如果客户端对 InfiniBand 网卡进行测试,服务端也需要有一个 InfiniBand 网卡并提前配 IP 。建议不使用业务网口进行网卡测试。
  • 部分用例需要root权限,请使用root用户执行。
  1. 启动测试工具

    在完成安装oec-hardware软件包的客户端执行 oech,填写ID、URL、Server配置项,ID 建议填写 gitee 上的 issue ID(注意:ID中不能带特殊字符)、URL建议填写产品链接。Server 需填写客户端可直接访问的服务器域名或 ip,用于展示测试报告和作网络测试的服务端。

    \# oech
    
    The openEuler Hardware Compatibility Test Suite
    
    Please provide your Compatibility Test ID:
    
    Please provide your Product URL:
    
    Please provide the Compatibility Test Server (Hostname or Ipaddr):
    
  2. 进入测试套选择界面

    在用例选择界面,框架将自动扫描硬件并选取当前环境可供测试的测试套,输入 edit 可以进入测试套选择界面。

  • 板卡测试请选择对应的板卡测试项。
  • 整机测试建议测试全部类型的测试项,至少需要测试一张RAID卡和网卡,网卡测试选择一个网口即可,注意不要使用业务网口进行测试。
    These tests are recommended to complete the compatibility test:
    
    No. Run-Now? Status Class Device
    
    1 yes NotRun acpi
    
    2 yes NotRun clock
    
    3 yes NotRun cpufreq
    
    4 yes NotRun disk
    
    5 yes NotRun ethernet enp3s0
    
    6 yes NotRun ethernet enp4s0
    
    7 yes NotRun ethernet enp5s0
    
    8 yes NotRun kdump
    
    9 yes NotRun memory
    
    10 yes NotRun perf
    
    11 yes NotRun system
    
    12 yes NotRun usb
    
    13 yes NotRun watchdog
    
    Ready to begin testing? (run\|edit\|quit)
    
  1. 选择测试套

    all|none 分别用于 全选|全取消(必测项 system 不可取消,多次执行成功后 system 的状态会变为Force),数字编号可选择测试套,每次只能选择一个数字,按 enter 之后 no 变为 yes,表示已选择该测试套。

  2. 开始测试

    选择完成后输入 run 开始测试。

  3. 上传测试结果

    测试完成后可以上传测试结果到安装oec-hardware-server软件包的服务端,便于展示结果和日志分析。如果上传失败,请检查网络配置,重新上传测试结果。

  4. 查看工具的测试日志

    客户端详细的测试日志路径为 /usr/share/oech/logs/oech-yyyymmddxxxx-xxxxxxx.tar 。

  5. 查看测试结果。

    测试结果上传到服务端后,在浏览器打开服务端 IP 地址,点击导航栏 Results 界面,找到对应的测试 id 进入,可看到具体的测试结果展示,包括环境信息和执行结果等。

操作系统

测试标准

经openEuler兼容性SIG组评定,OSV商用发行版/企业自用版技术测评的测试方案如下。

测试维度检测项检测点描述评定标准是否可选
工具检测核心包核心包一致性比例名称、小版本完全一致,核心包包括核心包内容一致性,内核、gcc、glibc、qemu、docker、openJDK、systemd、openssh、lvm2、busybox、initscripts核心模块一致性,JDK如果没有,则不会纳入比较项。必选
工具检测软件包L1/L2 软件包一致性比例L1 100%兼容,L2 95%以上兼容,参考社区等级清单定义(附上链接)https://gitee.com/openeuler/oec-application/blob/master/doc/compatibility_level.md必选
工具检测内核KABI接口OSV内核KABI接口白名单与openEuler内核KABI接口白名单一致性比例内核-KABI白名单 90%以上兼容。可选
工具检测用户态ABI接口OSV软件包ABI接口与openEuler软件包ABI一致性比例L1 100%兼容,L2 95%以上兼容,参考社区等级清单定义。必选
工具检测Service默认配置OSV软件包Service文件与openEuler软件包Service文件一致性比例全量默认配置一致性90%以上。可选
工具检测软件包默认配置OSV软件包配置文件与openEuler软件包配置文件一致性比例全量默认配置一致性90%以上,目前对于OSV厂商新增的配置,不会作为差异比较。可选
工具检测内核特性配置内核特性配置内核关键配置一致性,达90%以上。必选
平台验证仓库EPOL仓/软件所仓库在OSV版本上安装成功比例仓库复用度90%以上。必选
平台验证基本功能社区AT用例运行结果社区AT用例运行结果100%通过。必选
平台验证基础性能基础性能测试结果性能浮动5%以内。必选
平台验证运行时默认配置运行时默认配置全量运行时默认配置一致性90%以上。可选

测试步骤

工具简介

OECP工具比较2个ISO之间的静态差异,OECP工具需借助compass-ci才能比较2个ISO之间的动态差异。在测试完成后输出的OSV认证报告中,静态差异测试工具检测的检测项,动态差异才包括平台验证的检测项。

环境要求

项目要求
服务器当前支持Kunpeng和X86等多个底座,有其他平台的适配需求欢迎提交issue。
操作系统openEuler系操作系统。
依赖软件python3-devel,sqlite,libabigail,japi-compliancechecker,安装方法见工具安装。

注意

  • 请勿在生产环境安装和执行测试工具
  • 工具安装过程需要从外网下载代码和依赖包,请确保网络连接正常(如无法连接外网,需要将gem相关依赖完全离线并进行安装)。
  • 工具默认安装在当前目录,请确保目录剩余空间足够。

工具安装

  1. 安装依赖。

    yum install -y python3-devel sqlite libabigail-devel python3-pip
    
    pip3 install pyyaml
    
    git clone https://github.com/lvc/japi-compliance-checker.git
    
    cd japi-compliance-checker
    
    make install prefix=/usr
    

    安装结果检测。

     japi-compliance-checker -test
    

  2. 工具安装。

    git clone https://gitee.com/openeuler/oecp.git
    
    cd oecp
    
    pip3 install -r requirement
    

测试执行

  1. 执行测试。

    python3 cli.py file1 file2
    

    说明:

    • file1: 基准ISO
      • file2: 待测评的ISO
  2. 查看结果。

    在结果文件osv_data_summary.xlsx中查看测试结果。

文档捉虫

“有虫”文档片段

问题描述

提交类型 issue
有点复杂...
找人问问吧。
PR
小问题,全程线上修改...
一键搞定!
问题类型
规范和低错类

● 错别字或拼写错误;标点符号使用错误;

● 链接错误、空单元格、格式错误;

● 英文中包含中文字符;

● 界面和描述不一致,但不影响操作;

● 表述不通顺,但不影响理解;

● 版本号不匹配:如软件包名称、界面版本号;

易用性

● 关键步骤错误或缺失,无法指导用户完成任务;

● 缺少必要的前提条件、注意事项等;

● 图形、表格、文字等晦涩难懂;

● 逻辑不清晰,该分类、分项、分步骤的没有给出;

正确性

● 技术原理、功能、规格等描述和软件不一致,存在错误;

● 原理图、架构图等存在错误;

● 命令、命令参数等错误;

● 代码片段错误;

● 命令无法完成对应功能;

● 界面错误,无法指导操作;

风险提示

● 对重要数据或系统存在风险的操作,缺少安全提示;

内容合规

● 违反法律法规,涉及政治、领土主权等敏感词;

● 内容侵权;

您对文档的总体满意度

非常不满意
非常满意
提交
根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。