1.LTP安装
(1) 更新系统
sudo apt update
(2)安装编译环境
sudo apt-get install -y make autoconf gcc linux-headers-$(uname -r)
(3)安装需要的软件包
sudo apt-get install -y libcap-dev libssl-dev libselinux1-dev libaio-dev libexplain-dev
libacl1-dev libtirpc-dev freebsd-glue bison libkeyutils-dev libmm-dev libsctp-dev
(4)解压ltp软件包
ltp软件包下载链接:https://github.com/linux-test-project/ltp/releases/tag/20230516
tar jxvf ltp-full-20230516.tar.bz2
cd ltp-full-20230516
(5)创建目录
make autotools
(6)配置
sudo ./configure
(7)编译
sudo make
(8)编译安装
sudo make install
2.目录结构
2.1 源码包
2.1.1 LTP源码包目录结构
名称 | 说明 |
INSTALL | LTP安装配置指导文档 |
README | LTP介绍 |
CREDITS | 记录对LTP有很大贡献的人 |
COPYING | GNU公开许可证 |
ChangeLog | 描述版本变化 |
ltpmenu | 规划执行LTP的图形化界面接口 |
Makefile | LTP顶层目录的Makefile,负责编译安装pan、testcases和tools |
runalltests.sh/runltp | 按顺序运行全部测试用例并且报告结果的脚本 |
doc/* | 工程文档包含工具和库函数使用手册,描述各种测试 |
include/* | 通用的头文件目录,定义了LTP自身的数据结构和函数结构 |
lib/* | 通用的函数目录,定义了LTP自身的各种函数 |
testcases/* | 包含在LTP下运行和bin目录下的所有测试用例和链接 |
testscripts/* | 存储可执行的测试脚本,不同方面的测试脚本的集合 |
runtest/* | 目录中的每个文件都是要执行的测试用例的命令集合,每个文件针对测试的不同方面(用于链接testscripts内的测试脚本和testcases测试项目) |
pan/* | 测试的驱动装置,具备随机和并行测试的能力 |
scratch/* | 存放零碎测试 |
tools/* | 存放自动化测试脚本和辅助工具 |
2.1.2 LTP测试套件包含的内容
名称 | 说明 |
commands | 常用命令测试 |
kernel | 内核模块及其相关模块 (主要对系统的文件系统、进程通信、模块管理、内存、系统调用、系统调度、磁盘读写、安全等进行功能和压力测试) |
kdump | 内核崩溃转储测试 |
network | 网络测试 |
realtime | 系统实时性测试 |
open_posix_testsuite | posix标准测试 |
misc | 崩溃、核心转出、浮点运算等测试 |
2.2 安装包
名称 | 说明 |
bin | 存放LTP测试的一些辅助脚本 |
results | 测试结果默认存储目录 |
testcases | 测试项集 |
output | 测试日志默认存储目录 |
share | 脚本使用说明目录 |
runtest | 测试驱动(用于链接testscripts内的测试脚本和testcases测试项目) |
testscripts/* | 存储可执行的测试脚本,不同方面的测试脚本的集合 |
3.测试执行
3.1 初始测试
(1)整体测试
可以测试所有的测试集,直接运行runltp命令将测试ltp-full-20230516/scenario_groups/default 中的所有测试集,一次测试约4小时。
测试命令:
cd /opt/ltp, sudo ./runltp
或者cd /opt/ltp, sudo ./runltp -t 24h -p
或者sudo ./runltp -t 24h |tee ~/runltp_test.log
-t:指定测试的持续时间:
-t 60s = 60 seconds
-t 45m = 45 minutes
-t 24h = 24 hour
-t 2d = 2 days
|tee ~/runltp_test.log:把测试日志打印在终端和result下的runltp_test.log
(2)测试集测试
可以只测试某个测试集,测试集可以在ltp/runtest/下查看。测试某个测试集时,runltp需要指定-f参数。
eg:测试内存 sudo ./runltp -f mm
(3)单独测试一个脚本
①安装包测试
测试某个测试时,runltp 需要指定-s参数。
eg:cd /opt/ltp/
sudo ./runltp -s access01
eg:sudo ./runltp -f mm -s ksm06 执行测试集mm中的一个脚本ksm06
②源码包测试
eg:cd ~/ltp-full-20230516/testcases/kernel/syscalls/access/
sudo ./access01
4.测试结果
输出类型 | |
BROK | 程序执行中途发生错误而使测试遭到破坏 |
CONF | 测试环境不满足而跳过执行 |
WARN | 测试中途发生异常 |
INFO | 输出通用测试信息 |
PASS | 测试成功 |
FAIL | 测试失败 |
4.1 初始测试
(1)测试集测试
(2)单独测试
(3)整体测试
附件1:测试命令合集
附件1:测试命令合集
1../runltp –f commands(测试常规命令)
2../runltp –f admin_tools(测试常用管理工具是否正常稳定运行)
3../runltp –f dio(测试直接IO是否正常稳定)
4../runltp –f mm(测试mm)
5../runltp –f dma_thread_diotest(测试直接存储器访问线程直接IO是否正常稳定)
6../runltp –f fcntl-locktests(测试NFS网络文件系统锁是否正常稳定)
7../runltp –f filecaps(测试filecaps是否正常)
预制条件:在/etc/sysctl.conf文件中加一行:CONFIG_SECURITY_FILE_CAPABILITIES=y后重启电脑.
8../runltp –f fs(测试文件系统是否正常)
9../runltp –f fs_bind(测试fs_bind是否正常)
10../runltp –f fs_ext4(测试fs_ext4是否正常)
11../runltp –f fs_perms_simple(简单测试文件系统权限)
12../runltp –f fs_readonly(测试文件系统只读)
13../runltp –f fsx(对文件系统进行压力测试)
14../runltp –f hyperthreading(CPU超线程技术测试)
15../runltp –f io(异步IO测试)
16../runltp –f io_cd(对CD光驱进行压力测试)
预制条件:将光盘放入光驱
17../runltp –f io_floppy(对软盘进行压力测试)
预制条件:将软盘放入软驱中
18../runltp –f lvm.part1(测试文件系统MSDOS、Reiserfs、EXT2、NFS、Ram Disk、MINIX)
19../runltp –f math(数学库测试)
20../runltp –f nfs(nfs网络文件系统测试)
预制条件:在本机配置nfs文件系统服务
21../runltp –f lvm.part2(测试EXT3、JFS文件系统是否正常使用)
预制条件:安装EXT3、JFS文件系统
22../runltp –f pipes(对管道进行压力测试)
23../runltp –f syscalls(测试内核系统调用)
24../runltp –f syscalls-ipc(进程间通信测试)
25../runltp –f can(测试控制器区域网络的稳定性)
26../runltp –f connectors(测试Netlink Connector的功能性及稳定性)
27../runltp –f ipv6(测试IPv6环境下的基本网络功能)
28../runltp –f ipv6_lib(IPv6环境网络开发共享库)
预制条件:内核支持IPv6
29../runltp –f multicast( 测试多播的稳定性)
预制条件:
(1)设置环境变量export RHOST=<多播目标地址>
(2)/root/.rhosts,/home/user/.rhosts 添加内容:多播目标主机地址,多播目标主机用户,有多少多播目标主机就写多少条。
30../runltp –f network_commands ( 测试ftp和ssh的稳定性)
预制条件:开启ftp和ssh
31../runltp –f network_stress.whole( 网络各个功能的压力性测试 )
预制条件:
(1)部署一台服务器
(2)服务器上运行的服务: ssh DNS http ftp
32../runltp –f nptl( 测试本地POSIX线程库的稳定性 )
预制条件:内核支持POSIX本地线程库
33../runltp –f nw_under_ns(测试网络命名空间的稳定性)
34../runltp –f power_management_tests(电源管理模块的稳定性)
预制条件:内核版本2.6.31以上
35../runltp –f pty(测试虚拟终端稳定性)
预制条件:内核支持VT console
36../runltp –f quickhit(测试系统调用的稳定性)
37../runltp –f rpc 和 ./runltp –f rpc_test(测试远程过程调用稳定性)
预制条件:内核支持远程过程调用
38../runltp –f scsi_debug.part1(测试SCSI的稳定性)
39../runltp –f sctp(测试SCTP协议的稳定性)
预制条件:内核支持SCTP协议
40../runltp –f tcp_cmds_expect(TCP命令的可用性和稳定性)
预制条件:内核支持TCP/IP协议
41../runltp –f controllers(内核资源管理的稳定性测试)
预制条件:内核版本必须等于或者高于2.6.24
42../runltp –f cap_bounds(POSIX功能绑定设置可用性)
预制条件:内核版本2.6.25以上
43../runltp –f containers(命名空间资源稳定性)
44../runltp –f cpuacct(测试不同cpu acctount控制器的特点)
45../runltp –f cpuhotplug(测试cpu热插拔功能的稳定性)
46../runltp –f crashme(测试crashme)
预制条件:做测试前,先备份系统
47../runltp –f hugetlb(测试 hugetlb)
48../runltp –f ima(测试ima)
49../runltp –f ipc(测试ipc)
50../runltp –f Kernel_misc(测试 Kernel_misc)
51../runltp –f ltp-aiodio.part1(测试 ltp-aiodio.part1)
52../runltp –f Ltp-aiodio.part2(测试 Ltp-aiodio.part2)
53../runltp –f ltp-aiodio.part3(测试 ltp-aiodio.part3)
54../runltp –f ltp-aiodio.part4(测试 ltp-aiodio.part4)
55../runltp –f ltp-aio-stress.part1(测试 io stress)
56../runltp –f ltp-aio-stress.part2(测试 io stress)
57../runltp –f modules(测试内核模块)
58../runltp –f tracing(跟踪测试)
59../runltp –f numa(测试非统一内存访问)
60../runltp –f sched(测试调度压力)
61../runltp –f securebits(测试securebits)
62../runltp –f smack(smack安全模块测试)
63../runltp –f timers(测试posix计时器)
64../runltp –f tirpc_tests(测试Tirpc_tests)
65../runltp –f tpm_tools(测试 tpm_tools)