1、LTP介绍
LTP——linut test project ,ltp套件是由Linux Test Project所开发的一套系统测试套件。它基于系统资源的利用率统计开发了一个测试的组合,为系统提供足够的压力。
通过压力测试来判断系统的稳定性和可靠性。
压力测试是一种破坏性的测试,即系统在非正常的、超负荷的条件下的运行情况 。用来评估在超越最大负载的情况下系统将如何运行,是系统在正常的情况下对某种负载强度的承受能力的考验 。
使用 LTP 测试套件对 Linux 操作系统进行超长时间的测试,重点在于 Linux 用户环境相关的工作负荷(参阅 参考资料 以深入了解 LTP)。而并不是致力于证明缺陷。
重点: 测试选择,评价系统资源利用率,分析内核代码覆盖率,评价最终压力测试
更加具体的参考网上相关信息
在这里,主要介绍LTP结构,测试方法,测试组合的选择,工具介绍,环境搭建,需要修改地方,分析测试结果,LTP操作流程
2、LTP结构
从http://ltp.sourceforge.net/下载LTP测试源码包
LTP的目录结构基本上分为文档目录(doc)、测试驱动程序目录(pan)、测试脚本目录(testscripts)、测试用例库(testcase)、测试命令文件目录(runtest)、头文件目录(include)、库目录(lib)等。
Doc:该目录是说明文件和帮助文档的所在地,这个目录中对LTP的内容和每个工具都有详细的说明。
Pan:该目录存储的是LTP测试套件的测试驱动程序pan。
Testscripts:该目录中存储的是可执行的测试脚本,不同方面的测试脚本的集合。
Testcase:该目录存储了所有LTP测试套件中所使用的测试用例的源码。
Runtest:该目录中的每个文件都是要执行的测试用例的命令集合,每个文件针对测试的不同方面。
Include:LTP测试套件的头文件目录,定义了LTP自身的数据结构和函数结构。
Lib:LTP测试套件运行时自身需要的库文件,定义了LTP自身的各种函数。
各个文件结构之间的联系:
---->testscripts中ltpstress.sh
---->runtest(stress.part1,stress.part2,stress.part3)
---->pan后台运行
---->最终运行Testcase中的各个测试案例
其中runtest中 stree.part1,stree.part2,stree.part3中的测试命令或脚本 如 mmstress;来源于testcase/bin 中mmstress;而testcase/bin 中mmstress 可执行脚本或命令来源于/testcase中如 kernel,network, pounder21, commands 等源代码编译生成的,
mmstress:kernel/mem/mtest05/mmstress.c
stress.part[n](n=1,2,3)中测试命令如何看?
这些命令文件包含测试用例的tag和带有参数的测使用里,格式如下:
#tag test case
test1 test1 -l 10
mtest01 mtest01 -m 20
fork01 fork01
pan工作原理:LTP测试套件有一个专门的测试驱动程序pan,具体的测试用例的执行都是由pan来调用执行,它可以跟踪孤儿进程和抓取测试的输出信息。它的工作方式是这样的:
从一个测试命令文件中读取要测试的条目的要执行的命令行,然后等待该项测试的结束,并记录详细的测试输出。默认状态下pan会随机的选择一个命令行来运行,可以指定在同一时间要执行测试的次数。
pan会记录测试产生的详细的格式复杂的输出,但它不进行数据的整理和统计,数据整理统计的工作由scanner来完成,scanner是一个测试结果分析工具,它会理解pan的输出格式,并输出成一个表格的
形式来总结那些测试passed或failed。