原文地址::https://blog.csdn.net/zhang_danf/article/details/43764457
订阅专栏
LTP工具说明
http://blog.csdn.net/kernel_learner/article/details/8238974
http://blog.csdn.net/melody157398/article/details/24354415
1.... LTP测试套件...................................................... 3
2.... LTP安装............................................................ 4
3.... LTP测试套件结构说明.......................................... 6
4.... LTP测试套件测试内容.......................................... 7
4.1 LTP测试套件测试内容................................................................................... 7
4.2.1 commands模块内容描述及实现方法..................................................... 8
5.... LTP测试套件配置详细........................................ 19
5.20 ltp-scsi_debug.sh的配置及要求..................................................................... 37
6.... LTP测试套件使用说明........................................ 43
6.2.2 runalltests.sh脚本说明........................................................................ 46
1 LTP测试套件
1.1 简介
LTP(LinuxTest Project)是SGI、IBM、OSDL和Bull合作的项目,目的是为开源社区提供一个测试套件,用来验证Linux系统可靠性、健壮性和稳定性。LTP测试套件是测试Linux内核和内核相关特性的工具的集合。该工具的目的是通过把测试自动化引入到Linux内核测试,提高Linux的内核质量。LTP提供了验证linux系统稳定性的标准,设计标准的压力场景,通过对linux系统进行压力测试,对系统的功能、性能进行分析,并以此确定linux系统的可靠性、健壮性和稳定性。
1.2 源目录结构
如表1,是对LTP源包目录结构的描述:
INSTALL |
LTP安装配置指导文档 |
README |
LTP介绍 |
CREDITS |
记录对LTP有很大贡献的人 |
COPYING |
GNU Public License |
ChangeLog |
描述版本变化 |
ltpmenu |
规划执行LTP的图形化界面接口 |
Makefile |
LTP顶层目录的Makefile,负责编译安装pan、testcases和tools |
runalltests.sh |
顺序运行全部测试例程并且报告结果的脚本 |
doc/* |
工程文档包含工具和库函数使用手册,描述各种测试 |
include/* |
通用的头文件目录 |
lib/* |
通用的库函数目录 |
testcases/* |
包含在LTP下运行和bin目录下的所有测试用例和链接 |
testscripts/* |
存放分组的测试脚本 |
runtest/* |
为自动测试提供命令列表 |
pan/* |
测试的驱动装置。具备随即和并行测试的能力 |
scratch/* |
存放零碎测试的东西 |
tools/* |
存放自动化测试脚本和辅助工具 |
表1 LTP源代码结构
2 LTP安装
2.1 下载
LTP是一项动态工程,LTP源包命名方式一般为:ltp-yyyymmdd。目前版本为ltp-20110228。以下均为ltp-20110228版本的配置,官网地址为:http:/ltp.sourceforge.net/。
2.2 编译
从官方网站下载最新的LTP测试套件包,解压后进入ltp源目录。按照表2方法进行快速安装,在编译成功后会自动安装到/opt/ltp目录下。
[root@server20 ltp]#./configure [root@server20 ltp]# make [root@server20 ltp]# make install |
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”版本最低要求为“make 3.80”,优先使用“make 3.81”版本。为了编译和使用ltp-scanner,linux系统需要安装bison/yacc和flex包。详细安装方法可参照说安装说明文件INSTALL(源包目录)。
3 LTP测试套件结构说明
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.3 LTP执行原理
从一个测试命令文件(或脚本)中读取所测条目需要执行的命令行,然后等待该项测试的结束,并记录详细的测试输出。默认状态下pan会随机的选择一个命令行来运行,可以指定在同一时间要执行测试的次数。pan会记录测试产生的详细的格式复杂的输出,但它不进行数据的整理和统计,数据整理统计的工作由scanner来完成,scanner是一个测试结果分析工具,它会理解pan的输出格式,并通过表格的形式总结测试passed或failed的情况。简单地说,LTP测试套件通过执行测试脚本runalltests.sh(或runltp或runltplite.sh)或testscripts内的测试脚本,调用驱动程序pan执行testcases内的测试项目,输出测试结果,并利用scanner整理数据。
4 LTP测试套件测试内容
4.1 LTP测试套件测试内容
以ltp-20110228版本为例(目前是最新)。ltp-20110228测试内容主要包括以下几大部分:commands(常用命令测试),kernel(内核模块及其相关模块,如文件系统,磁盘读写等),kdump(内核转储),network(网络),realtime(系统实时性)open_posix_testsuite(posix标准),misc(崩溃,核心转储,浮点运算等)。以下是具体内容:
4.1.1 commands
cpio |
mv |
eject |
mkdir |
gzip |
ln |
|
cp |
su |
size |
at |
objdump |
cron |
nm |
logroate |
ldd |
tar |
ld |
unzip |
file |
ar |
表4 commands
4.1.2 kernel
这个模块主要对系统的文件系统、进程通信、模块管理、内存、系统调用、系统调度、磁盘读写、安全等进行功能和压力测试。详细内容如表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 |
表5 kernel相关测试内容
4.1.3 kdump
kdump是系统崩溃转储功能,这个模块是对kdump工具实现崩溃转储的测试。
4.1.4 network
network功能点非常多,包括dhcp,nfs,rpc,iproute等,具体如表6所示:
can |
iproute |
rpc |
tcp_cmds |
datafiles |
iptables |
multicast |
sctp |
traceroute |
dhcpd |
lib6 |
nfs |
sockets |
xinetd |
nfsv4 |
stress |
表6 network
4.1.5 realtime
realtime测试套件是对linux系统实时性进行测试。
4.1.6 open_posix_testsuite
open_posix_testsuite测试套件是对linux系统open_posix符合性进行测试。
4.1.7 misc
misc包括系统crash,f00f,math,tcore_patch_test_suites测试。
4.2 测试方法说明
4.2.1 commands模块内容描述及实现方法
序号 |
测试内容 |
子测试点 |
内容含义 |
脚本说明 |
1 |
ade |
ar |
可以用来创建、修改库,也可以从库中提出单个模块 |
用来测试该系统命令的文件是runtest/commands,可以通过runltp脚本调用。例子:./runltp -f commands |
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 -f commands |
4 |
cron |
无 |
在一定的时间间隔调度一些命令的执行 |
|
5 |
eject |
无 |
退出抽取式设备 |
测试脚本为: testcases/bin/ eject-test.sh |
6 |
fileutils |
cp |
复制命令 |
用来测试改系统命令的文件是runtest/commands,可以通过runltp脚本调用。例子:./runltp -f commands |
ln |
符号链接命令 |
|||
mkdir |
创建目录 |
|||
mv |
移动或重命名 |
|||
7 |
gzip |
无 |
解压缩命令 |
|
8 |
logrotate |
无 |
管理记录文件 |
|
9 |
|
无 |
收发邮件管理 |
|
10 |
su |
无 |
变更用户 |
测试脚本为testcases/bin/su01,但在执行改脚本之前,系统需要安装有expect命令 |
11 |
tar |
无 |
对文件目录进行打包备份 |
用来测试该系统命令的文件是runtest/commands,可以通过runltp脚本调用。例子:./runltp -f commands |
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 -f commands |
表7 commands实现方法
4.2.2 kernel
编号 |
测试项 |
子测试项 |
对应脚本以及说明 |
含义 |
1 |
connectors |
./runltp -f connecors |
网络连接器测试 |
|
2 |
fs |
acl |
测试方法: testcases/bin/tar_tests.sh |
测试ACL(访问控制列表)和Excent Attribute 备注:内核支持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 -f fs_ext4 |
ext4文件系统测试 |
|
7 |
fs-bench |
testcases/bin/test.sh |
文件系统的压力测试 |
|
8 |
fs_bind |
/testscripts/test_fs_bind.sh |
测试LINUX内核的绑定安装和共享子树的能力 |
|
9 |
fs_di |
./runltp -f fs |
文件系统的数据完整性 |
|
10 |
fs_inod |
./runltp -f fs |
在后台运行多个进程来快速创建和删除文件,用户可以指定创建的目录、文件数等 |
|
11 |
fs_maim |
backbeat maimparts partbeat |
fs_maim是存储管理工具压力测试集合 备注:因为fs_maim执行会损坏数据,因此并没有编译。详情参找源目录下到fs_maim目录 |
|
12 |
fs_perms |
测试脚本: ./runltp -f fs_perms_simple |
这个脚本是测试文件执行到权限,群组和用户组 |
|
13 |
fsstress |
testcases/bin/fsstres;详细用法可以参照该脚本 |
文件系统压力测试 备注:文件系统压力测试默认添加到脚本testscripts/ltpstress.sh或runltp或runalltests |
|
14 |
fsx-linux |
./runltp -f fs |
fsx文件系统的压力测试 |
|
15 |
ftest |
./runltp -f fs |
||
16 |
inode |
./runltp -f fs |
||
17 |
lftest |
./runltp -f fs |
||
18 |
linktest |
./runltp -f fs |
回归测试文件的连接,常见一个硬链接和一定数目的软链接 |
|
19 |
mongo |
testcases/bin/test.sh 和testcases/bin/run_mongo和testcases/bin/mongo.pl |
mongo文件测试 备注:测试mongo文件可能会擦除以前的内容,会损坏文件。详细配置见源目录下的mongo目录 |
|
20 |
openfile |
./runltp -f fs |
||
21 |
proc |
testscripts/adp.sh |
在proc文件系统上执行自动数据处理的压力测试 |
|
22 |
quote_remount |
./runltp -f fs |
测试内核是否支持重新挂载额定的大小文件 |
|
23 |
racer |
./runltp -f fs |
文件操作测试如:创建文件,删除等操作 |
|
24 |
scsi |
/testscripts/ltp-scsi_debug.sh |
测试SCSI模块 |
|
25 |
stream |
./runltp -f fs |
文件流写入测试 |
|
26 |
module |
/testscripts/load_ stress_all_kernel_modules.sh或 ./runltp -f modules |
对内核模块进行测试 |
|
27 |
ipc |
Ipc_stresss |
./runltp -f ipc |
进程间通信压力测试 |
28 |
pipeio |
./runltp -f pipes |
ipc的管道压力 |
|
29 |
semaphore |
./runltp -f ipc |
信号量测试 |
|
30 |
pty |
./runltp -f pty |
终端类型的压力 |
|
31 |
timers |
./runltp -f timers |
posix计时器测试 |
|
32 |
containers |
./runltp -f containers 或testscripts -f test_containers.sh |
命名空间资源 |
|
32 |
hotplug |
cpu_hotplug |
/runtest/cpuhotplug |
验证cpu的热插拔功能 |
33 |
memory_hotplug |
testcases/bin/memtoy |
验证内存的热插拔功能 备注:需要numa支持 |
|
34 |
numa |
./runltp -f numa |
非统一内存访问 |
|
35 |
sched |
./runltp -f sched |
调度压力测试 |
|
36 |
tracing |
./runltp -f /tracing |
跟踪测试 备注:内核版本需要2.6.34以上 |
|
37 |
controllers |
./runltp -f controllers |
资源管理测试 备注:内核版本2.6.29以上 |
|
38 |
performance_counters |
./runltp -f perfcounters |
测试基本的性能计数 |
|
39 |
mce-test |
LINUX内核mce的处理功能的测试脚本和工具集。 这是一个测试mce的测试套件需要编译。具体详情见该目录下的doc目录 |
||
40 |
security |
securebits |
./runltp -f securebits |
备注:这个功能需要至少2.6.32版本到内核,并且需要/usr/include/linux/securebits.h和libcap v2/usr/include/linux/securebits.h被安装 |
41 |
cap_bound |
./runltp -f cap_bounds |
POSIX功能绑定设置 |
|
42 |
integrity |
./runltp -f ima |
测试体系结构的完整性(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/bin remove_password.sh |
用户界面的mmc密码保护支持 备注:需要安装keyutils包,在测试mmc之前需要配置keyutils |
|
44 |
smack |
./runltp -f smack |
测试smack安全模块 |
|
45 |
filecaps |
./runltp -f filecaps或 testscripts/test_filecaps.sh |
基于安全的文件功能测试套件 |
|
46 |
p9auth |
./runltp -f p9auth |
安全策略测试,如 openssl,caphash, capuse |
|
47 |
selinux-testsuite |
./runltp -f selinux |
测试SELINUX安全模块 |
|
48 |
tomoyo |
testcases/bin/testall.sh |
tomoyo安全测试 备注:需要安装tomoyo包,并配置详情见源目录tomoyo目录 |
|
device-drivers(硬件设备驱动测试) |
这一测试工具并没有编译,如果要测试执行下面的操作:1.进入想要测试的目录并运行make命令;2在源目录目录中,用insmod加载.o文件。3.运行insmod确定内核是否已经载入;4.到源目录运行*.sh或者是其他的可执行文件;5.其结果会被输出;6.这些测试通常会在几秒钟内完成,然后可能需要重启。 |
|||
49 |
acpi |
执行ACPI测试 |
||
50 |
base |
|||
51 |
dev_sim_framework |
|||
52 |
nls |
支持本国语言测试 |
||
53 |
tbio |
|||
54 |
v4l |
|||
55 |
agp |
加速图形接口测试 |
||
56 |
block |
|||
57 |
drm |
|||
58 |
misc_modules |
|||
59 |
pci |
外部控制器接口(PCI)测试 |
||
60 |
rtc |
测试etc(实时时钟)驱动 |
||
61 |
usb |
usb接口 测试 |
||
62 |
io |
aio |
./runltp -f io |
aio(异步输入输出)测试) |
63 |
stress_floppy |
testscripts/diskio.sh |
软驱压力测试 |
|
64 |
disktest |
testcases/bin/disktest |
硬盘测试 备注:disktest使用较复杂。具体参照脚本和源目录下disktest说明文件 |
|
65 |
direct_io |
./runltp -f test_dma_thread_diotest7 |
||
66 |
ltp-aiodio |
/testscripts/ltp-aiodio.sh |
||
67 |
stress_cd |
testscripts/diskio.sh |
光驱压力测试 |
|
68 |
writetest |
./runltp -f fs |
写入测试 |
|
69 |
mem(内存测试) |
./runltp -f mm |
内存管理测试 |
|
70 |
power_management |
./runltp -fpower_management_tests |
电源管理测试 |
|
71 |
syscalls |
./runltp -f runtest/syscalls |
系统调用测试 |
表8 kernel相关内容测试方法
4.2.3 network
序号 |
测试内容 |
子测试点 |
内容含义 |
脚本说明 |
1 |
can |
无 |
Controller area network |
./runltp -f can,在测试之前需要/ltp-20110228/testcases/networ/can中配置,具体方法参照此目录下的INSTALL,此功能需要运行在linux-2.6.25以上版本。 |
2 |
dhcpd |
无 |
测试dhcpd服务 |
运行方式:/runltp –f tcp_cmds,安装dhcpd服务 |
3 |
iproute |
无 |
测试ip命令的基本功能 |
本地测试/ltp/testcases/network/iproute/ip_test.sh |
4 |
lib6 |
无 |
Ipv6地址库测试 |
所属测试脚本networktests.sh,测试时后跟参数-L;也可以在runltp.sh脚本下跟ipv6_lib参数 |
6 |
nfs |
无 |
网络文件系统测试,包括nfs压力测试 |
所属测试脚本networktests.sh,测试时后跟参数-N 需要开启nfs、portmap服务,并配置 |
7 |
rpc |
rpc基本测试 |
rpc和rpc压力测试 |
所属测试脚本networktests.sh,测试时后跟参数-R,需要开启portmap服务或rpcbind服务; 或./runltp -f rpc |
rpc-tirpc测试套件 |
rpc传输测试 |
脚本执行:./runltp -f rpctirpc脚本详细配置见下 |
||
8 |
sockets |
无 |
套接字测试 |
本地测试:/opt/ltp/testcases/bin/ ltpSockets.sh;需要跟参数运行 |
9 |
tcp_cmds |
无 |
tcp命令测试:包括:arp,ftp,echo,host,finger,insclude,netstat,scp,rdist,rlogin,rsh,rwho,sendfile,ssh,tcpdump,telnet。 |
所属测试脚本networktests.sh,测试时后跟参数-T;也可以在runltp.sh脚本下跟 tcp_cmds参数进行测试 需要在测试时开启echo-stream服务、dhcpd服务等 arp测试需要远程主机和本地主机在同一个子网中。 finger命令测试需要开启fingerd守护进程,可以使用setup选择系统服务 rwho命令的测试需要在两台机子上安装并开启rwhod守护进程 tcpdump命令测试时也需要两台主机在同一个子网中。 |
10 |
xinetd |
无 |
xinetd服务 |
本地测试,/opt/ltp/testcases/bin/xinetd_tests.sh或networktests.sh |
11 |
iptable |
无 |
iptables(防火墙管理) |
运行方式:/runltp –f tcp_cmds或networktest.sh |
12 |
multicast |
无 |
多路广播测试 |
所属测试脚本networktests.sh,测试时后跟参数-M;也可以在runltp.sh脚本下跟 multicase参数进行测试 |
13 |
nfsv4 |
无 |
nfs v4 测试 |
所属脚本networktests.sh,也可单独执行:./runltp -f nfs |
14 |
sctp |
无 |
流传输控制协议测试 |
所属测试脚本networktests.sh,测试时后跟参数-S;也可以在runltp.sh脚本下跟sctp参数进行测试 |
15 |
stress |
broken_ip |
发送大量IP包 |
所属测试脚本networkstrss.sh,具体测试所跟参数后面介绍。在runtest目录中有对个各个功能的压力测试,可以单独测试。如: ./runltp -f network_stress.dns ./runltp -f network_stress.ftp ./runltp -f network_stress.http ./runltp -f network_stress.icmp ./runltp -f network_stress.interface ./runltp -f network_stress.multicast ./runltp -f network_stress.tcp ./runltp -f network_stress.udp ./runltp -f network_stress.route ./runltp -f network_stress.broken_ip ./runltp -f network_stress.appl |
dns |
DNS服务器正反向查找域名是的承受能力 |
|||
ftp |
ftp服务客户端大量请求、下载压力测试() |
|||
http |
http服务器客户端大量请求压力测试 |
|||
icmp |
ICMP压力测试 |
|||
interface |
接口压力测试 |
|||
multicast |
多路广播压力测试 |
|||
route |
路由压力测试 |
|||
ssh |
建立大量ssh会话连接压力测试 |
|||
tcp |
tcp压力测试 |
|||
udp |
udp压力测试 |
|||
16 |
traceroute |
无 |
路由跟踪测试 |
本地测试: /opt/ltp/testcases/bin/traceroute_testss.sh |
表9 network 测试方法
4.2.4 open_posix_testsuite
序号 |
测试内容 |
子测试点 |
内容含义 |
备注 |
1 |
AIO |
无 |
执行异步I/O测试 |
执行run_posix_option_group_test.sh加参数AIO运行 |
2 |
SIG |
无 |
执行信号测试 |
执行run_posix_option_group_test.sh加参数SIG运行 |
3 |
SEM |
无 |
执行信号测试 |
执行run_posix_option_group_test.sh加参数SEM运行 |
4 |
THR |
无 |
执行线程测试 |
执行run_posix_option_group_test.sh加参数THR运行 |
6 |
TMR |
无 |
执行定时器和时钟测试 |
执行run_posix_option_group_test.sh加参数TMR运行 |
7 |
MSG |
无 |
执行消息队列测试 |
执行run_posix_option_group_test.sh加参数MSG运行 |
8 |
TPS |
无 |
执行线程和进程同步测试 |
执行run_posix_option_group_test.sh加参数TPS运行 |
9 |
MEM |
无 |
执行映射,处理和共享内存测试 |
执行run_posix_option_group_test.sh加参数MEM运行 |
表10 posix测试
4.2.5 realtime
序号 |
测试内容 |
子测试点 |
内容含义 |
备注 |
1 |
func |
async_handler |
异步处理程序 |
脚本为testscripts/test_realtime.sh |
gtod_latency |
gtod延迟 |
|||
hrtimer-prio |
高精度时间处理 优先级 |
|||
matrix_mult |
矩阵乘运算 |
|||
measurement |
测量 |
|||
periodic_cpu_load |
定期CPU负载 |
|||
pi_perf |
压力pi |
|||
pi_tests |
测试pi |
|||
prio-preempt |
抢占优先级 |
|||
prio-wake |
唤醒优先级 |
|||
pthread_kill_latency |
posix线程终止延迟 |
|||
rt-migrate |
逆转录迁移 |
|||
sched_football |
足球附表 |
|||
sched_jitter |
抖动附表 |
|||
sched_latency |
延时附表 |
|||
thread_clock |
时钟线程 |
|||
2 |
perf |
所有的性能检测 |
||
3 |
stress |
所有的压力检测 |
表11 realtime测试
5 LTP测试套件配置详细
5.1 networktests.sh脚本配置
(1) 配置前提
A. 开启所有网络服务,在客户端和服务端上安装rshd,fingerd,nfsd,echo服务;
B. 在服务端上安装rsh服务,telnet服务,finger服务,rdist,rsync,dhcp,http,rwho服务。如果没有开启服务,则在客户端测试时会报错。添加开机启动服务如:
chkconfig[rsh/rlogin/telnet/finger/rexec/rwhod] on
C. 在客户端和服务端编辑/root/.rhosts, 192.168.12.25是服务端的主机名,192.168.12.20是客户端的主机名。如下:
192.168.12.25 root
192.168.12.20 root
D. 在服务端vi /etc/securetty,添加以下内容:
rsh
rlogin
rexec
ssh
telnet
ftp
E. FTP setup
在服务端编辑/etc/ftpusers或/etc/vsftpd.ftpusers或/etc/vsftpd/vsftpd.ftpusers注释掉root用户,需要安装FTP软件vsftp或其他;
F. NFSsetup
在服务端编辑/etc/exports,添加如下内容:
/192.168.12.*(rw,sync,no_root_squash)
并用命令exportfs -a使其生效。
G. 服务端dhcp
编辑/etc/dhcpd.conf,添加以下内容,dhcp配置方法详细略;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.12.0 netmask255.255.255.0 {
# --- default gateway
option routers 192.168.12.254;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 192.168.12.25;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node(default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.12.0 192.168.12.253;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
# host ns {
# next-server marvin.asianux.com;
# hardware ethernet12:34:56:78:AB:CD;
# fixed-address 207.175.42.254;
# }
H. 在客户端开启rsh,finger,nfs服务,rsh,finger是由xinetd守护进程启动;
[root@CentOS ]# service xinetd start
启动 xinetd: [确定]
[root@CentOS testscripts]# serviceportmap start
启动 portmap: [确定]
[root@CentOS testscripts]# servicenfs start
I. 在服务端开启rsh,telnet,finger,rdist,rysnc,dhcp,http服务。Rsync,telnet也由守护进程xinetd启动。注:有些linux系统不是启动portmap,而是启动rpcbind;
[root@server25 ~]# service xinetdrestart
Stopping xinetd: [OK]
Starting xinetd: [OK]
[root@server25 ~]# service dhcpd restart
Stopping dhcpd: [OK]
Starting dhcpd: [OK]
[root@server25 ~]# service portmaprestart
Stopping portmap: [OK]
Starting portmap: [OK]
[root@server25 ~]# service nfs restart
root@server25~]# /etc/init.d/httpd start
(2) 在客户端上编辑networktests.sh脚本,RHOST为服务端的主机名,PASSWD为服务端root用户密码。如下:
RHOST=192.168.12.25
PASSWD=123456
同时添加${TMPDIR}//network.tests –s0 –l<logfile> -o <outfile> -p –q
其中
-s0 -> 无限制循环运行。
-l -> ltpnetwork 日志名。
-o -> ltpnetwork 输出文件名。
(3) 执行脚本./networktests.sh
networktest脚本参数说明:
-W|w |
对所有网络测试项进行测试 |
-D|d |
默认的网络测试项 |
-6 |
测试Ipv6 |
-L|l |
Ipv6地址库测试 |
-M|n |
多路广播测试 |
-N|n |
nfs测试 |
-R|r |
rpc测试 |
-S|s |
sctp测试 |
-T|t |
TCP/IP命令测试 |
-V|v |
详细信息 |
-H|h |
显示帮助 |
其他 |
默认测试 |
表12 networktest参数表
备注:默认测试将执行rpc,nfs,multicast,tcp/ip命令。TCP/IP命令的rsh,telnet,iptables部分测试存在问题;一般此测试只要运行24小时,停止可以通过CTRL+C。
5.2 networkstress.sh配置
A. 前提条件
网络压力测试前提同网络测试,并且需要两台拥有两个以上网络接口的主机,这个测试的拓扑结构如图1:
图1
网络压力测试配置同网络功能测试配置,另外在测试网络压力时还需要开启httpd和ftp服务,sshd和dns服务不需要手动开启,测试时会自动将该服务开启。
B. 脚本配置
在运行脚本之前需要对脚本进行以下配置:
图2网络环境设置
解释说明:
RHOST |
远程主机名 |
RHOST_HWADDRS |
远程主机的MAC地址 |
HTTP_DOWNLOAD_DIR |
http下载存放目录 |
FTP_DOWNLOAD_DIR |
FTP下载存放目录 |
FTP_UPLOAD_DIR |
FTP上传目录 |
FTP_UPLOAD_URLDIR |
FTP上传的URL,只需要写出后面的目录即可 |
IPV4_NETWORK |
前三个字节的IP地址 |
LHOST_IPV4_HOST |
本地主机的最后一个字节的地址 |
RHOST_IPV4_HOST |
远程主机的最后一个字节的地址 |
IPV4_NETWORK_REVERSE |
反向解析地址 |
表13环境设置
注意:如果测试的是eth1端口,那么RHOST为远程主机eth0的IP地址,IPVR4-NETWORK是本地IP地址的前3位,LHOST-IPV4-HOST是要设置的eth1的IP地址的最后一位,RHOST-IPV4-HOST也是如此配置,RHOST_HWADDRS为远程主机eth1的MAC地址。另一个需要注意的问题是,在远程主机需要配置rsh,本地主机可以通过eth0和eth1的IP地址无密码登录远程主机。
测试压力值配置:
图3 网络压力值设置
解释说明:
LTP_RSH
◇ 无密码登录远程主机的方式,例如rsh或ssh。
◇ NS_DURATION(for the continual test)
持续测试时间。这个测试时间的单位是秒,这个指标主要影响icmp/tcp/udp, ssh,ftp,http。
◇ NS_TIMES(for the repetition test)
重复性测试,这个值主要影响的是IP地址的添加和删除、IP路由的变更以及DNS的查询测试。
◇ CONNECTION_TOTAL(for creating a large number of connection test)
连接总数,这个值主要对udp/tcp下的相同或不同端口的多连接有影响,以及对ftp和http的测试用例有影响。
◇ IP_TOTAL (for adding large number of IP addresstest)
增加大量IP地址的测试,对一个接口增加大量的IP地址,这个值主要影响接口测试。
◇ IP_TOTAL_FOR_TCPIP (for multi IP address/alias test inicmp/udp/tcp)
在TCP/UDP/ICMP上的对IP地址或别名的测试。对于TCP/IP的测试用例,增加一个接口增加大量的IP地址,这个值会影响UDP/ TCP连接到不同的IP 地址/别名测试用例。
◇ ROUTE_TOTAL (for adding large number of route test)
在一个接口上增加大量的路由,从而对接口进行压力测试。
◇ MTU_CHANGE_TIMES (for changing mtu test)
接口最大传输单元值的改变次数,改变的时间间隔为5s。因此改变的时间要求5xMTU_CHANGE_TIMES这个值主要是对接口进行测试。
◇ IF_UPDOWN_TIMES (for interface up/down test)
网络接口开关次数。
◇ MCASTNUM_NORMAL (for multicast tests)
针对于多路广播的测试,加入广播的数目。
◇ MCASTNUM_HEAVY (for multicast tests)
多路广播测试。
◇ DOWNLOAD_BIGFILESIZE (for http/ftp downloading stress test)
下载文件大小,对FTP/HTTP下载压力测试。
◇ DOWNLOAD_REGFILESIZE (for http/ftp downloading stress test)
大量用户下载该文件,主要是对ftp的下载和http的测试。
◇ UPLOAD_BIGFILESIZE (for ftp uploading stress test)
上传文件大小,这个测试主要针对于ftp的上传压力测试,要保证有足够大的剩余空间。
◇ UPLOAD_REGFILESIZE (for ftp uploading stress test)
ftp上传压力测试。
C. 脚本执行
./networkstress.sh[选项]
选项说明:
-E|e |
网络接口压力测试 |
-I|i |
ICMP协议压力测试 |
-T|t |
TCP/IP压力测试 |
-U|u |
UDP/IP压力测试 |
-M|n |
多路广播压力测试 |
-R|r |
路由表压力测试 |
-B|b |
IP破坏性测试 |
-S|s |
选择测试 |
-W|w |
所有网络项压力测试 |
-D|d |
测试时间(默认为1小时) |
-N|n |
选择网络接口 |
-V|v |
详细信息 |
-H|h |
显示帮助 |
表14networkstress.sh参数表
D. 备注
在配置networkstress.sh脚本时需要双网卡,通过配置eth0,eth1用于rsh或ssh链接,eth1则用于网络测试接口。因此在设置networkstress.sh时,作如下配置:
export TMPDIR=/tmp/netst-$$
mkdir $TMPDIR
VERBOSE="no"
INTERFACE="eth1"
因为配置IPV6和IPSec,在测试这两个案例存在错误,是正常情况。有些测试用例需要内核等支持。
5.3 open_posix_testsuite测试套件
对于open_posix_testsuite测试套件配置,ltp默认没有编译。要进行posix标准测试,首先在ltp源包目录,进入testcases/open_posix_testsuite,使用make命令进行编译,编译成功后,在bin目录下会生成run-posix-option-group-test.sh、run-all-posix-option-group-tests.sh两个脚本,执行脚本run-all-posix-option-group-tests.sh可执行所有测试,但该脚本存在问题。如下修改:
!/bin/sh
#
# A simple wrapper for executing all ofthe tests.
#
# See COPYING for licensing details.
#
# Garrett Cooper, July 2010
#
FAILED=0
RPOG_SCRIPT="./run-posix-option-group-test.sh"
for option_group in AIO MEM MSG SEM SIGTHR TMR TPS; do
if ! $RPOG_SCRIPT $option_group
then FAILED=1
fi
done
exit $FAILED
解释说明:
在执行脚本时调用执行run-posix-option-group-test.sh脚本,在执行遇到错误时,将以错误退出。
脚本run-posix-option-group-test.sh可分别对posix内容进行测试,其执行方法为:
用法:run-posix-option-group-test.sh [选项]:
AIO,执行异步I/O测试:./run-posix-option-group-test.sh AIO
SIG,执行信号测试:./run-posix-option-group-test.sh SIG
SEM,执行信号量测试:./run-posix-option-group-test.sh SEM
THR,执行线程测试:./run-posix-option-group-test.sh THR
TMR,执行定时器和时钟测试:./run-posix-option-group-test.sh TMR
MSG,执行消息队列测试:./run-posix-option-group-test.sh MSG
TPS,执行线程和进程同步测试:./run-posix-option-group-test.sh TPS
MEM,执行映射,处理和共享内存测试:./run-posix-option-group-test.sh MEM
5.4 realtime配置
进入ltp源目录,在testscripts目录中执行test_realtime。执行方法如下:
用法:test_realtime.sh -t test-argument [-l loop num_of_iterations][-t test-argument1 [-l loop ...]] ...
其中test-argument = func | stress | perf |all | list | clean | test_name
解释说明:
func = 所有的功能将被测试
stress = 所有的压力测试将被执行
perf = 所有的perf项将被执行
all = 所有的测试将被执行
list = 列出所有可测试项
clean = 清除所有执行和日志
test_name = 只有test_name subdir 将被执行 (e.g:func/pi-tests)
5.5 mm脚本的配置
(1) 该脚本必须由root用户来使用;
(2) 执行该脚本要求系统必须已经安装了mm-1.4.2.tar.gz,并且把它安装在/usr/local/lib/;
(3) 安装完成后即可执行该脚本不需要进行其它的配置;
(4) 执行测试的命令是:./runltp -p -f mm;
5.6 io脚本配置
(1) 该脚本必须由root用户来使用;
(2) 执行该脚本要求系统必须安装了libaio-0.3.92;
(3) 执行测试:
[root@CentOSltp]# ./runltp -p -f io
(4) 执行结果:
<<<test_start>>>
tag=aio01stime=1302158338
…………..
INFO: ltp-panreported all tests PASS
5.7 filecaps的配置
(1) 该脚本也是必须由root用户使用的,测试需要安装libcaps-2.11或者是更高的版本,而且要求系统中的libattr是可以提供使用的;
(2) 要求系统内核的配置是:CONFIG_SECURITY_FILE_CAPABILITIES=y;
(3) 执行测试:
[root@CentOS ltp]# ./runltp -p -f filecaps
(4) 测试结果
……………………………
tag=Filecaps stime=1303111621
cmdline="filecapstest.sh"
contacts=""
analysis=exit
<<<test_output>>>
Running in:
cap_sys_admin tests
filecaps 1 TCONF : System doesn't have POSIX capabilitiessupport.
testing for correct caps
filecaps 1 TCONF : System doesn't have POSIX capabilitiessupport.
testing for correct pI checks
filecaps 1 TCONF : System doesn't have POSIX capabilitiessupport
……………………
INFO: ltp-pan reported all tests PASS
5.8 tpm_tools的配置
执行的命令:ltp目录下执行./runltp –ftpm_tools或者在testscripts下执行./test_tools
5.9 tcore的配置
前提条件:需要expect 命令支持,查看系统是否安装expect工具。
tcore是核心转储测试脚本。执行命令:./runltp -f tcore。
5.10 io_floppy的配置
(1) 该脚本需要软驱才能够执行所以我们不对其进行测试;
(2) 要求系统具有软驱;
(3) 执行测试的命令:./runltp -p –f io_floppy (注:执行测试以后软驱中的所有的数据将会丢失)。
5.11 io_cd 的配置
(1) 确定光驱中有CD;
(2) 执行测试的命令是:./runltp -p –f io_cd。
5.12 cpuhotplug的配置
(1) 对于该脚本需要内核支持:
CONFIG_HOTPLUG=y
CONFIG_HOTPLUG_CPU=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_FAKE=y
CONFIG_HOTPLUG_PCI_COMPAQ=y
CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y
CONFIG_HOTPLUG_PCI_IBM=y
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_HOTPLUG_PCI_ACPI_IBM=y
CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=y
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=y
CONFIG_HOTPLUG_PCI_SHPC=y
需要对/opt/ltp/testcases/bin/cpu_hotplug/runtests.sh的第14行做如下的修改:
14 for case in$LHCS_PATH/functional/hotplug??.sh; do
备注:红色字体表示行号。
(2) 执行测试:
[root@CentOS ltp]# ./runltp -p -fcpuhotplug
5.13 adp.sh的配置
(1) 该脚本不需要进行配置;
(2) 执行测试:
[root@CentOS testscripts]# ./adp.sh -d 2 -n 2
(3) 测试结果:
Starting tests...
Stressing /proc/[0-9]*/cmdline...
Starting 'top', redirecting output to'adp.log'...
LTP ADP Test done. Killing processes...
./adp.sh: line 82: 18995 已终止 ./adp_test.sh
./adp.sh: line 82: 18997 已终止 ./adp_test.sh
./adp.sh: line 82: 19000 已终止 ./adp_test.sh
./adp.sh: line 82: 19004 已终止 ./adp_test.sh
./adp.sh: line 82: 19008 已终止 ./adp_test.sh
./adp.sh: line 83: 18990 已终止 ./adp_children.sh
./adp.sh: line 83: 18991 已终止 ./adp_children.sh
./adp.sh: line 83: 18992 已终止 ./adp_children.sh
./adp.sh: line 83: 18993 已终止 ./adp_children.sh
./adp.sh: line 83: 18994 已终止 ./adp_children.sh
Done. Please check adp.log.
2011年 04月 07日 星期四 16:31:20 CST
备注:
该脚本需要带参数运行,“-d”表示top的延期时间,“-n”top的迭代次数。输出的信息在adp.log中。
5.14 autofs1.sh和autofs4.sh的配置
(1)要求系统的软驱中含有软盘。
(2)要求系统的空闲的磁盘分区的大小应该大于等于100MB。
(3)执行测试的命令:./autofs1.sh和./autofs4.sh。
5.15 exportfs.sh的配置
(1)开启NFS服务和portmap服务:
[root@server25 ~]# service nfs start
[root@server25 ~]# serviceportmap start
(2)要有大于等于100MB空间空闲磁盘分区,而且该分区要为主分区;
(3)执行测试:
[root@server20 testscripts]#./exportfs.sh -h server25 -d /dev/sda4 -t ext3
(4)测试结果:
mke2fs 1.39 (29-May-2006)
/dev/sda4 is mounted; will not make afilesystem here!
mount: /dev/sda4 already mounted or/tmp/exportfs_2196 busy
mount: according to mtab, /dev/sda4 ismounted on /tmp/exportfs_1710
umount: /tmp/exportfs_2196: not mounted
PASSED: ./exportfs.sh passed!
备注:
-h 后面加主机名;-d 后面加磁盘分区;-t 后面加文件系统的类型。
5.16 isofs.sh的配置
(1)必须有root权限来执行这个脚本;
(2)执行测试:
[root@server25 testscripts]# ./isofs.sh
(3)测试结果:
……………….
/tmp/isofs_3895/zabbix:
总计32
-rw-r--r-- 1 root root 18898 04-11 14:13db.inc.php
-rw-r--r-- 1 root root 1121 04-11 14:13 zabbix_agent.conf
-rw-r--r-- 1 root root 2689 04-11 14:13 zabbix_agentd.conf
-rw-r--r-- 1 root root 160 04-11 14:13 zabbix.conf.php
-rw-r--r-- 1 root root 4537 04-11 14:13 zabbix_proxy.conf
-rw-r--r-- 1 root root 3843 04-11 14:13 zabbix_server.conf
PASSED: ./isofs.sh passed!
5.17 ltpdmmapper.sh的配置
(1)内核必须支持“device mapper”,而且要在系统中安装devcie-mapper包;
(2)系统要有两个分区;
(3)执行测试:
[root@server25 testscripts]#./ltpdmmapper.sh -a /dev/sda3 -b /dev/sda5
(4)测试结果:
……………
Device Status...
0 102400 linear
0 200000 linear
0 200000 linear
0 400000 striped 2 8:3 8:5 1 AA
Device Tables...
0 102400 linear 8:3 0
0 200000 linear 8:3 0
0 200000 linear 8:5 0
0 400000 striped 2 16 8:3 0 8:5 0
Device Mapper Remove-all...
………..
5.18 ltpfslvm.sh的配置及要求
(1)要求系统以0x8e的形式划分4个分区;
(2)如果内核是2.4版本必须被配置然后重建内核,在2.5版本的内核上应当先配置Device Mapper和安装LVM2;
(3)这些操作是破坏性的,所以要求指定的分区中应该不含有重要的文件内容,执行该操后被使用的分区中的内容会被删除;
(4)执行测试:
[root@server25 testscripts]#./ltpfslvm.sh -a /dev/sda4 -b /dev/sda5 –c /dev/sda6 –d /dev/sda7 –n192.168.14.22:/tmp
(5)输出结果:
<<<test_start>>>
tag=gf822 stime=1302624179
cmdline="growfiles -W gf822 -D 0 -b-i 0 -L 60 -u -B 1000b -e 1 -g 20480 -T 10 -t 20480/test/growfiles/jfs/gf-bldf-$$"
contacts=""
analysis=exit
<<<test_output>>>
incrementing stop
gf822 1 TPASS : Test passed
5.19 ltpfsnolvn.sh的配置及要求
(1)对其的配置好要求如前面6.15;
(2)执行的命令:.
/ltpfsnolvm.sh -a /dev/sda4 -b /dev/sda5–c /dev/sda6 –d /dev/sda7 –n 192.168.14.22:/tmp
5.20 ltp-scsi_debug.sh的配置及要求
(1) 要求内核支持scsi_debug模块;
(2) 需要内核开启下面的服务CONFIG_SCSI_DEBUG;
(3) 执行测命令./ltp-scsi_debug.sh。
5.21 sysfs.sh的配置及要求
(1)要求必须要有root权限来执行该脚本;
(2)要求内核配置为CONFIG_DUMMY=y,而且dummy network模块必须存在;
(3)执行测试:
[root@CentOS testscripts]# ./sysfs.sh -k/lib/modules/2.6.18-194.el5/kernel/drivers/net/dummy.ko
(4)测试结果:
PASSED: ./sysfs.sh passed!
备注:-k后面加内核模块,也可以不加参数,不加的时候测试的是默认模块。
5.22 rpctirpc的配置及要求
(1) 介绍
RPC(Remote ProcedureCall Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使包括网络分布式多程序在内的应用程序开发更加容易。
(2) 配置说明
在LTP源文件目录中有关于RPC的测试套件,此套件分为两类:一类是基本的测试套件,主要测试对象是单客户端-服务器模式;另一类包括所有的测试库,如SunRPC、TI-RPC。
下面就详细介绍一下TI-PRC测试套件的配置和用法:
在使用测试套件之前,需要准备一台以上的主机,并且所有的主机必须运行ssh服务。在运行ssh服务是要在各主机上配置无密码登陆方式。具体如下(以一台主机为例):
图4生成ssh密钥
将公钥传到服务器端:
图5
经过上述步骤就完成了对ssh无密码登录的配置。
(3) 快速安装套件
在终端运行一下命令,安装和配置测试套件:
$./configure.auto
或者
$./configure.interactive
配置测试套件运行方式(IP,登录):
$make deploy
$make all
这时就完成了配置,就可以使用此测试套件了。
(4) 运行测试套件
a.运行所有的测试内容
./rpc_ts_wizard.sh -all
b.运行部分测试内容
./rpc_ts_wizard.sh
在运行此部分时,会提示你选择要测试的内容,如RPC、TI-RPC或者两者都要测试等。
5)在runtest目录级别运行
$./runtlp –f rpc
或者
$./runltp –f tirpc
或者
$./runltp –f rpctirpc
5.23 test_selinux.sh的配置及要求
(1)要求把/usr/sbin添加到PATH中;
(2)在/etc/seliinux/semanage.cong中添加expand-check=0;
(3)查看内核是否开启以下的功能(如果没有则需要开启):
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
This has to be set to a positive valueif you want to test this check.
Fedora kernels set it to 65536.
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT=y
CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX=y
You don't want this one unless you arerunning Fedora 3 or 4.
On anything newer, it will causeunnecessary policy expansion.
CONFIG_SECURITY_SMACK=y
CONFIG_SECURITY_SELINUX=y
(4)执行测试:
[root@CentOS ltp]# ./runltp -p -fselinux
5.24 smack的配置和要求
(1)要求smack和selinux不能够同时运行,不能测试同一个运行中的内核;
(2)查看内核是否开启以下的功能(如果没有则需要开启):
CONFIG_NETLABEL=y
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_SMACK=y
CONFIG_SECURITY_SELINUX should not beset
执行如下的命令:
mkdir -p /smack
在文件/etc/fstab添加下面的一行
smackfs /smack smackfs defaults 0 0
然后执行下面的命令:
mount –a
(3)执行的命令
[root@CentOS ltp]# ./runltp -f smack
5.25 perfcounters的配置及要求
(1)执行测试:
[root@CentOS ltp]# ./runltp -p -fperfcounters
(2)测试结果:
……………..
<<<test_start>>>
tag=performance_counter01stime=1302139743
<<<test_start>>>
tag=performance_counter02stime=1302139743
………………………….
INFO: ltp-pan reported all tests PASS
5.26 can的配置及要求
CAN(Controller AreaNetwork)是一个缓慢(高达1Mbit/ s)的串行通信协议,主要为汽车,但现在广泛应用于海洋(NMEA2000),工业和医疗。
备注:该模块的运行需在linux-2.6.25或者以上版本中,并且在运行之前需要在文件的源目录(例如:/opt/ltp-20110228/testcases/networ/can/filter-tests)中进行配置。
配置如下:
1) 创建测试环境
$make
2) ./run_ltp-can_tests.sh
3) 在安装目录中运行
$ ./runltp -f can
4) 清除使用痕迹,在源目录中运行
$ make clean
5.27 test_robind.sh的配置
(1)要求要有一个镜像文件,创建两个目录;
(2)把该镜像文件挂载到指定的目录:
[root@centos22 chenbo]# mount -t iso9660ubuntu-10.10-desktop-i386.iso -o loop /chenbo
(3)把有一个目录绑定到另一个目录:
[root@centos22 chenbo]# mount --bind chenbochenbo1
(4)执行下面的命令:
[root@centos22 /]# mount chenbo -o remount,ro
(5)执行测试(要在只读目录中执行脚本):
[root@centos22 chenbo]#../opt/ltp/testscripts/test_robind.sh
/tmp/fs3522/dir1 /tmp/fs3522
TDIR is /tmp/fs3522/dir1
(6)执行结果:
执行的结果存放在/tmp下面,有若干个名字如fs加数字目录,目录中的pass.log和errs.log分别存放了成功的和错误的信息。
6 LTP测试套件使用说明
6.1 概述
LTP提供了两个非常强大的脚本:runalltests.sh和ltpstress.sh。runalltest.sh 用于验证内核。这个脚本串行地运行一组测试,并报告全部结果。因此,也可称这个脚本为初始测试或串行压力测试。默认地,这个脚本执行:
- 文件系统压力测试。
- 硬盘 I/O 测试。
- 内存管理压力测试。
- IPC 压力测试。
- SCHED测试。
- 命令功能的验证测试。
- 系统调用功能的验证测试。
但runalltests.sh还提供了其他方面的测试:如网络,网络压力,NFS,光驱压力等等(runalltests.sh详细使用见下)。ltp提供的测试内容不完全写入runalltests.sh,测试时可以根据需求修改runalltests.sh并添加内容,相关配置可以参考《LTP测试套件配置详细》。需要注意的是:默认情况,runalltests.sh和runltp执行的内容是一样,因为默认的runalltest.sh脚本只开启了runltp默认的场景。runltp默认执行的就是上面7方面内容。
runltp脚本可以执行指定的测试项目,因此测试可以根据需求或指标设计一套压力测试脚本。
ltpstress.sh是一个并行的压力测试脚本,在使用网络与内存管理的同时并行地运行大范围的内核组件,并在测试系统上生成高压力负荷。ltpstress.sh 也是 LTP 测试套件的一部分。这个脚本并行地运行相似的测试用例,串行地运行不同的测试用例,这样做是为了避免由于同时访问同一资源或者互相干扰而引起的间歇性故障。因此这个测试脚本可以称为系统压力测试。默认地,这个脚本执行:
- NFS 压力测试。
- 内存管理压力测试。
- 文件系统压力测试。
- 数学 (浮点) 测试。
- 多线程压力测试。
- 硬盘 I/O 测试。
- IPC (pipeio, semaphore) 测试。
- 系统调用功能的验证测试。
- 网络压力测试。
ltpstress压力测试可以验证产品在系统资源高使用率时的健壮性。
6.2 初始测试
6.2.1 runltp使用说明
用法:./runltp [option] [command]
-a EMAIL_TO |
发送所有的报告到指定的邮箱 |
-c NUM_PROCS |
添加后台测试CPU的进程数,默认1 |
-C FAILCMDFILE |
失败案例存储文件 |
-d IMPDIR |
临时存储目录,默认/tmp |
-D NUM_PROCS,NUM_FILES,NUM_BYTES,CLEAN_FLA |
run LTP under additional background Load on Secondary Storage (Seperate by comma) [NUM_PROCS = no. of processes creating Storage Load by spinning over write()] [NUM_FILES = Write() to these many files (Defaults to 1 when value 0 or undefined)] [NUM_BYTES = write these many bytes (defaults to 1GB, when value 0 or undefined)] [CLEAN_FLAG = unlink file to which random data written, when value 1] |
-e |
输出目前LTP版本的日期 |
-f CMDFILES |
执行用户自定义的测试案例,用“ ,”隔开(CMDFILES指runtest内的驱动程序) |
-g HTMLFILE |
添加html格式的输出文件HTMLFILE |
-h |
帮助信息 |
-i NUM_PROCS |
添加后台测试IO bus总线的进程数 |
-l LOGFILE |
记录测试日志的文件 |
-m NUM_PROCS,CHUNKS,BYTES,HANGUP_FLAG |
run LTP under additional background Load on Main memory (Seperate by comma) [NUM_PROCS = no. of processes creating main Memory Load by spinning over malloc()] [CHUNKS = malloc these many chunks (default is 1 when value 0 or undefined)] [BYTES = malloc CHUNKS of BYTES bytes (default is 256MB when value 0 or undefined) ] [HANGUP_FLAG = hang in a sleep loop after memory allocated, when value 1] |
-N |
添加所有的网络测试 |
-n |
添加后台测试网络传输 |
-o OUTPUTFILE |
直接打印测试输出到OUTPUTFILE |
-p |
人为指定日志格式 |
-q |
打印少的测试输出到屏幕 |
-r LTPROOT |
|
-s PATTERN |
匹配PATTERN执行测试案例 |
-t DURATION |
给定测试执行时间设置(s,m,h,d) |
-T REPETITION |
重复执行测试案例 |
-v |
打印多的测试输出到屏幕 |
-w CMDFILEADDR |
使用wget下载用户测试案例集合。 |
-x INSTALL |
并行执行多个测试场景 |
表15 runltp参数表
6.2.2 runalltests.sh脚本说明
runalltests.sh此脚本直接运行,默认是测试所有LTP能测试的方面。