LTP测试——精选推荐

一.LTP介绍
Linux Test Project是一个测试Linux内核和内核相关特性的工具集合。该工具的目的是通过把测试自动化引入到Linux内核测试,验证内核的稳定性、可靠性和健壮性,提高Linux的内核质量。
1.功能测试
Linux Test Project(简称LTP)是目前较为流行的Linux基本功能测试工具集。LTP包含了众多子功能测试模块,例如系统调用,系统命令,内存分配,磁盘读写,文件系统,网络,数学运算测试等等。
为了达到快速检查内核变动的能力,繁重的内核测试任务需要有自动化的实现。内核测试自动化的设计与普通应用程序测试自动化的设计并无太多区别,它主要包含以下几个方面:内核源代码自动化的下载,自动化的编译,自动化的安装,自动化的测试并报告测试结果。AutoTest是目前比较有名的自动化内核测试项目,由Martin J. Bligh发起并维护。它实现了一套较为先进的自动测试框架,并提供了一套接口供现有的测试工具(例如LTP)进行集成。当发现有新的Linux 内核需要测试时,AutoTest便会生成一系列的测试任务,然后把测试任务分配到不同的Client Harness上进行环境准备和执行测试,最后把收集到的测试结果进行分析和发布。
2.性能测试
书录解题LTP 工作组在设计Linux 内核压力测试脚本ltpstress.sh 时使用了这一设计
方法,为给系统提供足够的压力,LTP工作组对这个组合测试进行了分析,以确定Linux 内核的哪些部分在测试执行中得到了使用。然后,修改了组合测试,在保持期望的高强度系统压力的同时提高代码覆盖率的百分比。最终得到的压力测试涵盖了Linux 内核的足够多部分,有助于稳定性声明,并且有系统使用情况和内核代码覆盖情况的数据来支持它。
有两个开放源代码工具可以帮助进行Linux 内核的代码覆盖率分析:
(1) gcov:一个由LTP 维护的开放源代码工具。这个工具分析内核代码的覆盖率,并报告哪些行、函数和分支被覆盖以及它们被访问了多少次。
(2) lcov:另一个由IBM 开发,由LTP 维护的开放源代码工具。这个工具由一组构建于基于文本的gcov 输出之上的Perl 脚本构成,以实现基于HTML 的输出。输出包括覆盖率百分比、图表以及概述页,可以快速浏览覆盖率数据。可以自LTP主页到这两个工具。
lcov 工具会生成一棵完整的HTML 树,其中包含有内核中代码的每一行以及关于每一行执行了多少次的数据(如果有的话)。这个工具会量化覆盖率数据并生成关于内核中每一部分和文件覆盖率的百分
比数字。
内核的代码覆盖率分析只是在ltpstress.sh的设计和开发过程中用到,目的是保证lptsress.sh的可用性,我们在实际测试的时候就不需要再做内核的代码覆盖率分析了。
LTP的ltpstress.sh目标:
ltpstress.sh的目标,是使用LTP 测试套件对Linux 操作系统进行超长时间的测试,重点在于Linux 用户环境相关的工作负荷,而并不是致力于证明缺陷。这个应用程序组合了来自LTP 的测试套件不同方面的多个测试以及内存和网络传输负载生成器。在执行之前,测试会根据系统中存在多少物理和虚拟内存来调整其总的内存使用情况。
ltpstress.sh的测试方法:
测试方法有两个的阶段:一个是“初始测试”,一个是“压力测试”。通过初始测试是开始测试的必要条件。初始测试包括LTP 测试套件在硬件和操作系统上成功运转,这些硬件和操作系统将用于可靠性运转。LTP 测试套件包附带的驱动程序脚本runalltest.sh 用于验证内核。这个脚本串行地运行一组成包的测试,
并报告全部结果。也可以选择同时并行地运行几个实例。默认地,这个脚本执行:- 文件系统压力测
试。
- 硬盘I/O 测试。
- 内存管理压力测试。
- IPC 压力测试。
- SCHED测试。
- 命令功能的验证测试。
马家老鸡铺- 系统调用功能的验证测试。
压力测试可以验证产品在系统高使用率时的健壮性。作为runalltest.sh 的补充,特别设计了一个名为ltpstress.sh 的测试场景,在使用网络与内存管理的同时并行地运行大范围的内核组件,并在测试系统上生成高压力负荷。ltpstress.sh 也是LTP 测试套件的一部分。这个脚本并行地运行相似的测试用例,串行地运行不同的测试用例,这样做是为了避免由于同时访问同一资源或者互相干扰而引起的间歇性故障。默认地,这个脚本执行:
- NFS 压力测试。
- 内存管理压力测试。
- 文件系统压力测试。
- 数学(浮点) 测试。
- 多线程压力测试。
- 硬盘I/O 测试。
- IPC (pipeio, semaphore) 测试。
- 系统调用功能的验证测试。
- 网络压力测试。
系统监控:
LTP 测试套件附带的top 工具是经过修改的,用作系统监控工具。使用top 可以实时地观察处理器的行为。改进的top 工具具有附加的功能,可以将top 结果的快照保存到文件中,并给出结果文件的平均总结,包括CPU、内存和交换空间利用率等信息。
二.设计测试用例
设计测试用例的步骤:
(1)在testcases文件夹下创建文件夹,编写测试用例源代码,例如network
(2)编译测试用例源代码,在testcases/bin下生成可执行脚本或命令mmstress
(3)编译测试用例源代码后,在runtest中添加或者删除一些用例,例如,runtest 中stree.part1,stree.part2,stree.part3也生成可执行脚本或命令,此脚本或命令来源于testcases/bin下的mmstress
(4)若想要执行自己定义的用例,则需要修改testcases下的makefile文件
借用一个简单的测试用例:
神圣
显示系统当前的进程和其他状况:
[root@localhost ltp-full-20100228]# top -n 10
top - 19:10:49 up 1 day, 4:43, 0 users, load average: 11.99, 12.10, 11.75
Tasks: 168 total, 11 running, 155 sleeping, 0 stopped,    2 zombie
Cpu(s): 21.9%us, 78.1%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 644940k total, 452208k used, 192732k free, 10588k buffers
Swap: 1114104k total, 32k used, 1114072k free, 80460k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 30884 root 25 0 1912 584 492 R 26.6 0.1 92:04.31 pan
13030 root 23 0 6000 1128 964 S    5.7 0.2 76:30.84 adp_test.sh
13043 root 22 0 5996 1124 964 S    4.7 0.2 77:04.93 adp_test.sh
13038 root 23 0 6000 1128 964 R    4.3 0.2 76:32.01 adp_test.sh
13048 root 22 0 6000 1128 964 R    4.3 0.2 76:52.12 adp_test.sh
13046 root 18 0 5996 1128 964 R    3.0 0.2 76:38.54 adp_test.sh
2687 root 15 0 37460 11m 7584 S    1.3    1.8 10:05.41 Xorg
2686 root 15 0 85896 17m 10m R 0.3    2.7 0:00.27 gnome-terminal
3061 root 15 0 18084 4300 3432 S 0.3 0.7 0:23.10 gnome-screensav
1 root 15 0 2136 628 540 S 0.0 0.1 0:01.78 init
2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 3
4 19 0 0 0 R 0.0 0.0 0:02.70 ksoftirqd/0
4 root RT 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/0
5 root 10 -5 0 0 0 S 0.0 0.0 0:03.14 events/0
6 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
7 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
46 root 10 -5 0 0 0 S 0.0 0.0 0:00.14 kblockd/0
-
-------------------------------------------------------------------------------------------------------------
top - 19:10:49 当前时间
up 1 day, 4:43, 系统运行时间,格式为:时:分
0 users, 当前登录用户数
中学生物load average: 11.99, 12.10, 11.75 系统负载即任务队列平均长度
气浮Tasks: 168 total, 进程总数
11 running, 正在运行的进程数
155 sleeping, 睡眠的进程数
0 stopped, 停止的进程数
2 zombie 僵尸进程数
Cpu(s): 21.9%us, 用户空间占用CPU百分比
78.1%sy, 内核空间占用CPU百分比
0.0%ni, 用户进程空间内改变过优先级的进程占用CPU百分比
0.0%id, 空闲CPU百分比
0.0%wa, 等待输入输出的CPU时间百分比
0.0%hi,
0.0%si,
0.0%st
Mem:
644940k total, 物理内存总量
452208k used, 使用的物理内存总量
192732k free, 空闲内存总量
10588k buffers 用作内核缓存的内存量
Swap:
1114104k total, 交换区总量
32k used, 使用的交换区总量
1114072k free, 空闲交换区总量
房东蒋先生
80460k cached 区尚未被覆盖
三.Linux最小内核测试
1.内核功能测试
Linux内核主要由五个模块构成,分别是进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。因此,Linux内核从功能上也应该相应地分成五个部分
目前,测试内核功能主要有4种方式:
(1)通过各种系统调用测试内核功能的完整性。
(2)把测试程序作为内核的一部分,例如把测试程序写成内核模块插入到内核中动态运行;或把测试程序编译到内核中,直接运行带有测试程序的内核。
(3)通过内核调试程序进行内核测试。
(4)通过内核和用户态的接口来进行交互测试,例如proc文件系统,sys文

本文发布于:2024-09-22 23:32:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/124495.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:测试   内核   工具   系统
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议