linux下LTP测试环境使用说明.docx
《linux下LTP测试环境使用说明.docx》由会员分享,可在线阅读,更多相关《linux下LTP测试环境使用说明.docx(52页珍藏版)》请在冰豆网上搜索。
linux下LTP测试环境使用说明
LTP工具说明
1LTP测试套件3
1.1简介3
1.2源目录结构3
2LTP安装4
2.1下载4
2.2编译4
2.3安装说明6
3LTP测试套件结构说明6
3.1概述6
3.2目录介绍6
3.3LTP执行原理7
4LTP测试套件测试内容7
4.1LTP测试套件测试内容7
4.1.1commands7
4.1.2kernel8
4.1.3kdump8
4.1.4network8
4.1.5realtime8
4.1.6open_posix_testsuite9
4.1.7misc9
4.2测试方法说明9
4.2.1commands模块内容描述及实现方法9
4.2.2kernel11
4.2.3network16
4.2.4open_posix_testsuite18
4.2.5realtime20
5LTP测试套件配置详细22
5.1networktests.sh脚本配置22
5.2networkstress.sh配置26
5.3open_posix_testsuite测试套件30
5.4realtime配置31
5.5mm脚本的配置32
5.6io脚本配置32
5.7filecaps的配置32
5.8tpm_tools的配置33
5.9tcore的配置33
5.10io_floppy的配置34
5.11io_cd的配置34
5.12cpuhotplug的配置34
5.13adp.sh的配置35
5.14autofs1.sh和autofs4.sh的配置36
5.15exportfs.sh的配置36
5.16isofs.sh的配置37
5.17ltpdmmapper.sh的配置37
5.18ltpfslvm.sh的配置及要求38
5.19ltpfsnolvn.sh的配置及要求39
5.20ltp-scsi_debug.sh的配置及要求39
5.21sysfs.sh的配置及要求39
5.22rpctirpc的配置及要求40
5.23test_selinux.sh的配置及要求42
5.24smack的配置和要求43
5.25perfcounters的配置及要求43
5.26can的配置及要求44
5.27test_robind.sh的配置44
6LTP测试套件使用说明45
6.1概述45
6.2初始测试47
6.2.1runltp使用说明47
6.2.2runalltests.sh脚本说明48
1LTP测试套件
1.1简介
LTP(LinuxTestProject)是SGI、IBM、OSDL和Bull合作的项目,目的是为开源社区提供一个测试套件,用来验证Linux系统可靠性、健壮性和稳定性。
LTP测试套件是测试Linux内核和内核相关特性的工具的集合。
该工具的目的是通过把测试自动化引入到Linux内核测试,提高Linux的内核质量。
LTP提供了验证linux系统稳定性的标准,设计标准的压力场景,通过对linux系统进行压力测试,对系统的功能、性能进行分析,并以此确定linux系统的可靠性、健壮性和稳定性。
1.2源目录结构
如表1,是对LTP源包目录结构的描述:
INSTALL
LTP安装配置指导文档
README
LTP介绍
CREDITS
记录对LTP有很大贡献的人
COPYING
GNUPublicLicense
ChangeLog
描述版本变化
ltpmenu
规划执行LTP的图形化界面接口
Makefile
LTP顶层目录的Makefile,负责编译安装pan、testcases和tools
runalltests.sh
顺序运行全部测试例程并且报告结果的脚本
doc/*
工程文档包含工具和库函数使用手册,描述各种测试
include/*
通用的头文件目录
lib/*
通用的库函数目录
testcases/*
包含在LTP下运行和bin目录下的所有测试用例和链接
testscripts/*
存放分组的测试脚本
runtest/*
为自动测试提供命令列表
pan/*
测试的驱动装置。
具备随即和并行测试的能力
scratch/*
存放零碎测试的东西
tools/*
存放自动化测试脚本和辅助工具
表1LTP源代码结构
2LTP安装
2.1下载
LTP是一项动态工程,LTP源包命名方式一般为:
ltp-yyyymmdd。
目前版本为ltp-20110228。
以下均为ltp-20110228版本的配置,官网地址为:
http:
/
2.2编译
从官方网站下载最新的LTP测试套件包,解压后进入ltp源目录。
按照表2方法进行快速安装,在编译成功后会自动安装到/opt/ltp目录下。
[root@server20ltp]#./configure
[root@server20ltp]#make
[root@server20ltp]#makeinstall
IDcheck.sh
检查系统是否缺
少执行LTP测试套件所需的用户和用户组,如果缺少则为LTP测试套件创建所需的用户和用户组。
runltplite.sh
这个脚本用来测试LTP安装,也可用来对测试套件的子项目进行测试。
详情参阅脚本。
runltp
这个脚本能够测试LTP测试套件主要项目。
其中包括:
-硬盘I/O测试。
-内存管理压力测试。
-IPC压力测试。
-SCHED测试。
-命令功能的验证测试。
-系统调用功能的验证测试。
ver_linux
这个脚本是获取硬件、软件、环境信息。
runalltests.sh
测试内容同runltp,不同点在于runltp可以指定测试项进行组合测试,而runalltests.sh则会全部执行。
testscripts
列举了所有的子系统测试脚本,脚本说明见下文。
adp_children.sh
sysfs.sh
ltp-aiodio.sh
ltpstress.sh
runpan.sh
networkstress.sh
adp.sh
adp.sh
autofs1.sh
autofs4.sh
diskio.sh
exportfs.sh
fs_ro_tests
isofs.sh
load_stress_all_kernel_modules.sh
ltpdmmapper.sh
ltpfslvm.sh
ltpfslvm.sh
ltp-scsi_debug.sh
math.sh
networktests.sh
runEALtests.sh
runpan.sh
syscall.sh
tet_containers.sh
test_filecaps.sh
test_fs_bind.sh
test_realtime.sh
test_robind.sh
test_selinux.sh
runpan.sh
表2编译
2.3安装说明
在安装编译ltp之前,需要确定linux系统“make”版本,ltp编译需要“make”版本最低要求为“make3.80”,优先使用“make3.81”版本。
为了编译和使用ltp-scanner,linux系统需要安装bison/yacc和flex包。
详细安装方法可参照说安装说明文件INSTALL(源包目录)。
3LTP测试套件结构说明
3.1概述
LTP编译成功后,包含三大部分:
测试案例、测试脚本、测试驱动。
测试案例目录为testcases/,testcases/包含了测试案例和案例脚本;测试脚本主要目录为testscripts/,里面包含了文件系统,磁盘,内核,内存等测试脚本;测试驱动目录为bin/,该目录存放了ltp各种驱动脚本,如ltp-pan,ltp-scanner等。
3.2目录介绍
表3描述了ltp编译后各目录存储的内容和功能:
目录名
功能
bin
存放LTP测试的一些辅助脚本
results
测试结果默认存储目录
testcases
测试项集
output
测试日志默认存储目录
share
脚本使用说明目录
runtest
测试驱动(用于链接testscripts内的测试脚本和testcases测试项目)
lib
通用的库函数目录
表3目录描述
3.3LTP执行原理
从一个测试命令文件(或脚本)中读取所测条目需要执行的命令行,然后等待该项测试的结束,并记录详细的测试输出。
默认状态下pan会随机的选择一个命令行来运行,可以指定在同一时间要执行测试的次数。
pan会记录测试产生的详细的格式复杂的输出,但它不进行数据的整理和统计,数据整理统计的工作由scanner来完成,scanner是一个测试结果分析工具,它会理解pan的输出格式,并通过表格的形式总结测试passed或failed的情况。
简单地说,LTP测试套件通过执行测试脚本runalltests.sh(或runltp或runltplite.sh)或testscripts内的测试脚本,调用驱动程序pan执行testcases内的测试项目,输出测试结果,并利用scanner整理数据。
4LTP测试套件测试内容
4.1LTP测试套件测试内容
以ltp-20110228版本为例(目前是最新)。
ltp-20110228测试内容主要包括以下几大部分:
commands(常用命令测试),kernel(内核模块及其相关模块,如文件系统,磁盘读写等),kdump(内核转储),network(网络),realtime(系统实时性)open_posix_testsuite(posix标准),misc(崩溃,核心转储,浮点运算等)。
以下是具体内容:
4.1.1commands
cpio
mv
eject
mkdir
gzip
ln
mail
cp
su
size
at
objdump
cron
nm
logroate
ldd
tar
ld
unzip
file
ar
表4commands
4.1.2kernel
这个模块主要对系统的文件系统、进程通信、模块管理、内存、系统调用、系统调度、磁盘读写、安全等进行功能和压力测试。
详细内容如表5所示:
fs
connectors
Ipc
module
pty
timers
containers
hotplug
numa
sched
tracing
controlers
include
mce-test
performance_counters
security
device-drivers
io
mem
power_management
syscalls
表5kernel相关测试内容
4.1.3kdump
kdump是系统崩溃转储功能,这个模块是对kdump工具实现崩溃转储的测试。
4.1.4network
network功能点非常多,包括dhcp,nfs,rpc,iproute等,具体如表6所示:
can
iproute
rpc
tcp_cmds
datafiles
iptables
multicast
sctp
traceroute
dhcpd
lib6
nfs
sockets
xinetd
nfsv4
stress
表6network
4.1.5realtime
realtime测试套件是对linux系统实时性进行测试。
4.1.6open_posix_testsuite
open_posix_testsuite测试套件是对linux系统open_posix符合性进行测试。
4.1.7misc
misc包括系统crash,f00f,math,tcore_patch_test_suites测试。
4.2测试方法说明
4.2.1commands模块内容描述及实现方法
序号
测试内容
子测试点
内容含义
脚本说明
1
ade
ar
可以用来创建、修改库,也可以从库中提出单个模块
用来测试该系统命令的文件是runtest/commands,可以通过runltp脚本调用。
例子:
./runltp-fcommands
file
辨识文件类型
ld
一定量的目标文件跟档案文件连接起来,并重定位它们的数据,连接符号引用
ldd
用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题
nm
显示目标文件的符号表
objdump
显示二进制文件信息
size
显示文件大小
2
at
无
任务规划工具。
测试内容为/etc/at.allow和/etc/at.deny功能
测试脚本在testcases/bin/at.allow和testcases/bin/at.deny中
3
cpio
无
存取归档包中的文件
用来测试该系统命令的文件是runtest/commands,可以通过runltp脚本调用。
例子:
./runltp-fcommands
4
cron
无
在一定的时间间隔调度一些命令的执行
5
eject
无
退出抽取式设备
测试脚本为:
testcases/bin/
eject-test.sh
6
fileutils
cp
复制命令
用来测试改系统命令的文件是runtest/commands,可以通过runltp脚本调用。
例子:
./runltp-fcommands
ln
符号链接命令
mkdir
创建目录
mv
移动或重命名
7
gzip
无
解压缩命令
8
logrotate
无
管理记录文件
9
mail
无
收发邮件管理
10
su
无
变更用户
测试脚本为testcases/bin/su01,但在执行改脚本之前,系统需要安装有expect命令
11
tar
无
对文件目录进行打包备份
用来测试该系统命令的文件是runtest/commands,可以通过runltp脚本调用。
例子:
./runltp-fcommands
12
tpm-tools
无
tpm-tools是TPM芯片的管理工具。
对tpm-tools进行测试,需要确定系统安装有TPM芯片,且系统为Linux。
TPM实际上是一个含有密码运算部件和存储部件的小芯片上的系统,由CPU、存储器、
I/O、密码运算器、随机数产生器和嵌入式操作系统等部件组成。
此功能在runtest中的tpm_tools中,可以使用runltp脚本加上tpm_tools参数执行,也可以在testscripts中调用tpm_tools脚本执行
13
unzip
无
解压缩zip文件
用来测试该系统命令的文件是runtest/commands,可以通过runltp脚本调用。
例子:
./runltp-fcommands
表7commands实现方法
4.2.2kernel
编号
测试项
子测试项
对应脚本以及说明
含义
1
connectors
./runltp-fconnecors
网络连接器测试
2
fs
acl
测试方法:
testcases/bin/tar_tests.sh
测试ACL(访问控制列表)和ExcentAttribute
备注:
内核支持loop设备;一个大于100M的磁盘分区;内核支持ACL功能
3
acls
测试方法:
tescases/bin/acl_test01
测试扩展的acls
需求:
同上
4
dmapi
dmapi功能验证测试
备注:
ltp默认没有编译此功能需要到源目录执行,参照dmapi目录下的README
5
doio
testcases/bin/growfile
doio和读写测试
6
ext4-new-features
./runltp-ffs_ext4
ext4文件系统测试
7
fs-bench
testcases/bin/test.sh
文件系统的压力测试
8
fs_bind
/testscripts/test_fs_bind.sh
测试LINUX内核的绑定安装和共享子树的能力
9
fs_di
./runltp-ffs
文件系统的数据完整性
10
fs_inod
./runltp-ffs
在后台运行多个进程来快速创建和删除文件,用户可以指定创建的目录、文件数等
11
fs_maim
backbeat
maimparts
partbeat
fs_maim是存储管理工具压力测试集合
备注:
因为fs_maim执行会损坏数据,因此并没有编译。
详情参找源目录下到fs_maim目录
12
fs_perms
测试脚本:
./runltp-ffs_perms_simple
这个脚本是测试文件执行到权限,群组和用户组
13
fsstress
testcases/bin/fsstres;详细用法可以参照该脚本
文件系统压力测试
备注:
文件系统压力测试默认添加到脚本testscripts/ltpstress.sh或runltp或runalltests
14
fsx-linux
./runltp-ffs
fsx文件系统的压力测试
15
ftest
./runltp-ffs
16
inode
./runltp-ffs
17
lftest
./runltp-ffs
18
linktest
./runltp-ffs
回归测试文件的连接,常见一个硬链接和一定数目的软链接
19
mongo
testcases/bin/test.sh和testcases/bin/run_mongo和testcases/bin/mongo.pl
mongo文件测试
备注:
测试mongo文件可能会擦除以前的内容,会损坏文件。
详细配置见源目录下的mongo目录
20
openfile
./runltp-ffs
21
proc
testscripts/adp.sh
在proc文件系统上执行自动数据处理的压力测试
22
quote_remount
./runltp-ffs
测试内核是否支持重新挂载额定的大小文件
23
racer
./runltp-ffs
文件操作测试如:
创建文件,删除等操作
24
scsi
/testscripts/ltp-scsi_debug.sh
测试SCSI模块
25
stream
./runltp-ffs
文件流写入测试
26
module
/testscripts/load_
stress_all_kernel_modules.sh或
./runltp-fmodules
对内核模块进行测试
27
ipc
Ipc_stresss
./runltp-fipc
进程间通信压力测试
28
pipeio
./runltp-fpipes
ipc的管道压力
29
semaphore
./runltp-fipc
信号量测试
30
pty
./runltp-fpty
终端类型的压力
31
timers
./runltp-ftimers
posix计时器测试
32
containers
./runltp-fcontainers或testscripts-ftest_containers.sh
命名空间资源
32
hotplug
cpu_hotplug
/runtest/cpuhotplug
验证cpu的热插拔功能
33
memory_hotplug
testcases/bin/memtoy
验证内存的热插拔功能
备注:
需要numa支持
34
numa
./runltp-fnuma
非统一内存访问
35
sched
./runltp-fsched
调度压力测试
36
tracing
./runltp-f/tracing
跟踪测试
备注:
内核版本需要2.6.34以上
37
controllers
./runltp-fcontrollers
资源管理测试
备注:
内核版本2.6.29以上
38
performance_counters
./runltp-fperfcounters
测试基本的性能计数
39
mce-test
LINUX内核mce的处理功能的测试脚本和工具集。
这是一个测试mce的测试套件需要编译。
具体详情见该目录下的doc目录
40
security
securebits
./runltp-fsecurebits
备注:
这个功能需要至少2.6.32版本到内核,并且需要/usr/include/linux/securebits.h和libcapv2/usr/include/linux/securebits.h被安装
41
cap_bound
./runltp-fcap_bounds
POSIX功能绑定设置
42
integrity
./runltp-fima
测试体系结构的完整性(ima)
备注:
需要内核支持
CONFIG_IMA=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_AUDIT=y
CONFIG_IMA_LSM_RULES=y
43
mmc_security
testcases/bin/ask_password.sh&&
testcases/bin/change_password.sh&&testcases/bin/assign_password.sh&&testcases/bin/force_erase.sh&&testcases/binremove_password.sh
用户界面的mmc密码保护支持
备注:
需要安装keyutils包,在测试mmc之前需要配置keyutils
44
smack
./runltp-fsmack
测试smack安全模块
45
filecaps
./runltp-ffilecaps或
testscripts/test_filecaps.sh
基于安全的文件功能测试套件
46
p9auth
./runltp-fp9auth
安全策略测试,如
openssl,caphash,capuse
47
selinux-testsuite
./runltp-fselinux
测试SELINUX安全模块
48
tomoyo
testcases/bin/testall.sh
tomoyo安全测试
备注:
需要安装tomoyo包,并配置详情见源目