linux下LTP工具说明
原文地址::https://blog.csdn.net/zhang_danf/article/details/43764457
相关文章
1、Linux LTP (一)----https://blog.csdn.net/weixin_41028621/article/details/107434624?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EsearchFromBaidu%7Edefault-1.pc_relevant_baidujshouduan&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EsearchFromBaidu%7Edefault-1.pc_relevant_baidujshouduan
订阅专栏
LTP工具说明
http://blog.csdn.net/kernel_learner/article/details/8238974
http://blog.csdn.net/melody157398/article/details/24354415
1.... LTP测试套件...................................................... 3
1.1 简介............................................................................................................... 3
1.2 源目录结构.................................................................................................... 3
2.... LTP安装............................................................ 4
2.1 下载............................................................................................................... 4
2.2 编译............................................................................................................... 4
2.3 安装说明........................................................................................................ 5
3.... LTP测试套件结构说明.......................................... 6
3.1 概述............................................................................................................... 6
3.2 目录介绍........................................................................................................ 6
3.3 LTP执行原理................................................................................................. 6
4.... LTP测试套件测试内容.......................................... 7
4.1 LTP测试套件测试内容................................................................................... 7
4.1.1 commands............................................................................................ 7
4.1.2 kernel.................................................................................................. 7
4.1.3 kdump................................................................................................. 8
4.1.4 network................................................................................................ 8
4.1.5 realtime................................................................................................ 8
4.1.6 open_posix_testsuite.............................................................................. 8
4.1.7 misc..................................................................................................... 8
4.2 测试方法说明................................................................................................. 8
4.2.1 commands模块内容描述及实现方法..................................................... 8
4.2.2 kernel................................................................................................ 10
4.2.3 network............................................................................................. 15
4.2.4 open_posix_testsuite............................................................................ 17
4.2.5 realtime............................................................................................. 18
5.... LTP测试套件配置详细........................................ 19
5.1 networktests.sh脚本配置............................................................................... 19
5.2 networkstress.sh配置..................................................................................... 23
5.3 open_posix_testsuite测试套件........................................................................ 28
5.4 realtime配置................................................................................................ 29
5.5 mm脚本的配置............................................................................................ 30
5.6 io脚本配置.................................................................................................. 30
5.7 filecaps的配置............................................................................................. 30
5.8 tpm_tools的配置.......................................................................................... 31
5.9 tcore的配置................................................................................................. 31
5.10 io_floppy的配置.......................................................................................... 31
5.11 io_cd 的配置............................................................................................... 32
5.12 cpuhotplug的配置........................................................................................ 32
5.13 adp.sh的配置............................................................................................... 33
5.14 autofs1.sh和autofs4.sh的配置....................................................................... 34
5.15 exportfs.sh的配置......................................................................................... 34
5.16 isofs.sh的配置.............................................................................................. 34
5.17 ltpdmmapper.sh的配置.................................................................................. 35
5.18 ltpfslvm.sh的配置及要求.............................................................................. 36
5.19 ltpfsnolvn.sh的配置及要求........................................................................... 36
5.20 ltp-scsi_debug.sh的配置及要求..................................................................... 37
5.21 sysfs.sh的配置及要求................................................................................... 37
5.22 rpctirpc的配置及要求................................................................................... 37
5.23 test_selinux.sh的配置及要求......................................................................... 39
5.24 smack的配置和要求..................................................................................... 40
5.25 perfcounters的配置及要求............................................................................ 41
5.26 can的配置及要求......................................................................................... 41
5.27 test_robind.sh的配置.................................................................................... 42
6.... LTP测试套件使用说明........................................ 43
6.1 概述............................................................................................................ 43
6.2 初始测试..................................................................................................... 44
6.2.1 runltp使用说明.................................................................................. 44
6.2.2 runalltests.sh脚本说明........................................................................ 46
1 LTP测试套件
1.1 简介
1.2 源目录结构
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/* |
存放自动化测试脚本和辅助工具 |
2 LTP安装
2.1 下载
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.3 安装说明
3 LTP测试套件结构说明
3.1 概述
3.2 目录介绍
目录名 |
功能 |
bin |
存放LTP测试的一些辅助脚本 |
results |
测试结果默认存储目录 |
testcases |
测试项集 |
output |
测试日志默认存储目录 |
share |
脚本使用说明目录 |
runtest |
测试驱动(用于链接testscripts内的测试脚本和testcases测试项目) |
lib |
通用的库函数目录 |
3.3 LTP执行原理
4 LTP测试套件测试内容
4.1 LTP测试套件测试内容
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.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 |
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 |
4.1.5 realtime
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 |
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 |
系统调用测试 |
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 |
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运行 |
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 |
所有的压力检测 |
5 LTP测试套件配置详细
5.1 networktests.sh脚本配置
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是客户端的主机名。如下:
D. 在服务端vi /etc/securetty,添加以下内容:
在服务端编辑/etc/ftpusers或/etc/vsftpd.ftpusers或/etc/vsftpd/vsftpd.ftpusers注释掉root用户,需要安装FTP软件vsftp或其他;
/192.168.12.*(rw,sync,no_root_squash)
编辑/etc/dhcpd.conf,添加以下内容,dhcp配置方法详细略;
subnet 192.168.12.0 netmask255.255.255.0 {
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
range dynamic-bootp 192.168.12.0 192.168.12.253;
# we want the nameserver to appear at a fixed address
# 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
[root@CentOS testscripts]# serviceportmap start
[root@CentOS testscripts]# servicenfs start
[root@server25 ~]# service xinetdrestart
[root@server25 ~]# service dhcpd restart
[root@server25 ~]# service portmaprestart
[root@server25 ~]# service nfs restart
root@server25~]# /etc/init.d/httpd start
(2) 在客户端上编辑networktests.sh脚本,RHOST为服务端的主机名,PASSWD为服务端root用户密码。如下:
同时添加${TMPDIR}//network.tests –s0 –l<logfile> -o <outfile> -p –q
-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 |
显示帮助 |
其他 |
默认测试 |
5.2 networkstress.sh配置
网络压力测试前提同网络测试,并且需要两台拥有两个以上网络接口的主机,这个测试的拓扑结构如图1:
网络压力测试配置同网络功能测试配置,另外在测试网络压力时还需要开启httpd和ftp服务,sshd和dns服务不需要手动开启,测试时会自动将该服务开启。
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 |
反向解析地址 |
◇ 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)
◇ DOWNLOAD_REGFILESIZE (for http/ftp downloading stress test)
◇ UPLOAD_BIGFILESIZE (for ftp uploading stress test)
上传文件大小,这个测试主要针对于ftp的上传压力测试,要保证有足够大的剩余空间。
◇ UPLOAD_REGFILESIZE (for ftp uploading stress test)
-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 |
显示帮助 |
在配置networkstress.sh脚本时需要双网卡,通过配置eth0,eth1用于rsh或ssh链接,eth1则用于网络测试接口。因此在设置networkstress.sh时,作如下配置:
因为配置IPV6和IPSec,在测试这两个案例存在错误,是正常情况。有些测试用例需要内核等支持。
5.3 open_posix_testsuite测试套件
# A simple wrapper for executing all ofthe tests.
# See COPYING for licensing details.
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
在执行脚本时调用执行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-argument = func | stress | perf |all | list | clean | test_name
test_name = 只有test_name subdir 将被执行 (e.g:func/pi-tests)
5.5 mm脚本的配置
(2) 执行该脚本要求系统必须已经安装了mm-1.4.2.tar.gz,并且把它安装在/usr/local/lib/;
(4) 执行测试的命令是:./runltp -p -f mm;
5.6 io脚本配置
(2) 执行该脚本要求系统必须安装了libaio-0.3.92;
[root@CentOSltp]# ./runltp -p -f io
INFO: ltp-panreported all tests PASS
5.7 filecaps的配置
(1) 该脚本也是必须由root用户使用的,测试需要安装libcaps-2.11或者是更高的版本,而且要求系统中的libattr是可以提供使用的;
(2) 要求系统内核的配置是:CONFIG_SECURITY_FILE_CAPABILITIES=y;
[root@CentOS ltp]# ./runltp -p -f filecaps
filecaps 1 TCONF : System doesn't have POSIX capabilitiessupport.
filecaps 1 TCONF : System doesn't have POSIX capabilitiessupport.
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的配置
(3) 执行测试的命令:./runltp -p –f io_floppy (注:执行测试以后软驱中的所有的数据将会丢失)。
5.11 io_cd 的配置
(2) 执行测试的命令是:./runltp -p –f io_cd。
5.12 cpuhotplug的配置
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=y
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=y
需要对/opt/ltp/testcases/bin/cpu_hotplug/runtests.sh的第14行做如下的修改:
14 for case in$LHCS_PATH/functional/hotplug??.sh; do
[root@CentOS ltp]# ./runltp -p -fcpuhotplug
5.13 adp.sh的配置
[root@CentOS testscripts]# ./adp.sh -d 2 -n 2
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
2011年 04月 07日 星期四 16:31:20 CST
该脚本需要带参数运行,“-d”表示top的延期时间,“-n”top的迭代次数。输出的信息在adp.log中。
5.14 autofs1.sh和autofs4.sh的配置
(2)要求系统的空闲的磁盘分区的大小应该大于等于100MB。
(3)执行测试的命令:./autofs1.sh和./autofs4.sh。
5.15 exportfs.sh的配置
[root@server25 ~]# service nfs start
[root@server25 ~]# serviceportmap start
(2)要有大于等于100MB空间空闲磁盘分区,而且该分区要为主分区;
[root@server20 testscripts]#./exportfs.sh -h server25 -d /dev/sda4 -t ext3
/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
-h 后面加主机名;-d 后面加磁盘分区;-t 后面加文件系统的类型。
5.16 isofs.sh的配置
[root@server25 testscripts]# ./isofs.sh
-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
5.17 ltpdmmapper.sh的配置
(1)内核必须支持“device mapper”,而且要在系统中安装devcie-mapper包;
[root@server25 testscripts]#./ltpdmmapper.sh -a /dev/sda3 -b /dev/sda5
0 400000 striped 2 8:3 8:5 1 AA
0 400000 striped 2 16 8:3 0 8:5 0
5.18 ltpfslvm.sh的配置及要求
(2)如果内核是2.4版本必须被配置然后重建内核,在2.5版本的内核上应当先配置Device Mapper和安装LVM2;
(3)这些操作是破坏性的,所以要求指定的分区中应该不含有重要的文件内容,执行该操后被使用的分区中的内容会被删除;
5.19 ltpfsnolvn.sh的配置及要求
/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的配置及要求
(2) 需要内核开启下面的服务CONFIG_SCSI_DEBUG;
5.21 sysfs.sh的配置及要求
(2)要求内核配置为CONFIG_DUMMY=y,而且dummy network模块必须存在;
[root@CentOS testscripts]# ./sysfs.sh -k/lib/modules/2.6.18-194.el5/kernel/drivers/net/dummy.ko
备注:-k后面加内核模块,也可以不加参数,不加的时候测试的是默认模块。
5.22 rpctirpc的配置及要求
在LTP源文件目录中有关于RPC的测试套件,此套件分为两类:一类是基本的测试套件,主要测试对象是单客户端-服务器模式;另一类包括所有的测试库,如SunRPC、TI-RPC。
在使用测试套件之前,需要准备一台以上的主机,并且所有的主机必须运行ssh服务。在运行ssh服务是要在各主机上配置无密码登陆方式。具体如下(以一台主机为例):
在运行此部分时,会提示你选择要测试的内容,如RPC、TI-RPC或者两者都要测试等。
5.23 test_selinux.sh的配置及要求
(2)在/etc/seliinux/semanage.cong中添加expand-check=0;
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_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.
[root@CentOS ltp]# ./runltp -p -fselinux
5.24 smack的配置和要求
(1)要求smack和selinux不能够同时运行,不能测试同一个运行中的内核;
CONFIG_SECURITY_SELINUX should not beset
smackfs /smack smackfs defaults 0 0
[root@CentOS ltp]# ./runltp -f smack
5.25 perfcounters的配置及要求
[root@CentOS ltp]# ./runltp -p -fperfcounters
tag=performance_counter01stime=1302139743
tag=performance_counter02stime=1302139743
INFO: ltp-pan reported all tests PASS
5.26 can的配置及要求
CAN(Controller AreaNetwork)是一个缓慢(高达1Mbit/ s)的串行通信协议,主要为汽车,但现在广泛应用于海洋(NMEA2000),工业和医疗。
5.27 test_robind.sh的配置
[root@centos22 chenbo]# mount -t iso9660ubuntu-10.10-desktop-i386.iso -o loop /chenbo
[root@centos22 chenbo]# mount --bind chenbochenbo1
[root@centos22 /]# mount chenbo -o remount,ro
[root@centos22 chenbo]#../opt/ltp/testscripts/test_robind.sh
执行的结果存放在/tmp下面,有若干个名字如fs加数字目录,目录中的pass.log和errs.log分别存放了成功的和错误的信息。
6 LTP测试套件使用说明
6.1 概述
runltp脚本可以执行指定的测试项目,因此测试可以根据需求或指标设计一套压力测试脚本。
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 |
记录测试日志的文件 |
|
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 |
并行执行多个测试场景 |
6.2.2 runalltests.sh脚本说明
runalltests.sh此脚本直接运行,默认是测试所有LTP能测试的方面。
linux下LTP工具说明相关推荐
- 详解linux下auto工具制作Makefile源码包(制作篇)
2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一. 概述 为了更好的制作configure ...
- 实验 Linux下C工具应用
实验报告 实 验(一) 题 目 Linux下C工具应用 专 业 计算机科学与技术 计算机科学与技术学院 目 录 第1章 实验基本信息... - 4 - 1.1 实验目的... - ...
- 万得终端 linux安装,Linux下常用工具
Linux下常用工具: yuv rgba playerubuntu 18.04 wps1 2sudo dpkg -i wps-office_10.1.0.5672~a21_amd64.deb sudo ...
- 模仿实现Linux下readelf工具部分功能
模仿实现Linux下 readelfreadelfreadelf 工具部分功能 完整实现: https://github.com/JiaZhengJingXianSheng/ReadELF ELF 目 ...
- Linux下抓图工具shutter
Linux下抓图工具shutter 转载于:https://www.cnblogs.com/zhangze/archive/2013/06/07/3123558.html
- 利用Linux下DDOS工具tfn2k进行DDOS攻击试验
"Tribe Flood Network 2000 (TFN2K)是一款分布式拒绝服务(DDOS)的攻击工具.TFN2K是由德国著名黑客Mixter编写的同类攻击工具TFN的后续版本.本文将 ...
- Linux下同步工具inotify+rsync使用详解
1. rsync 1.1 什么是rsync rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的"Rsync演算法"来使本地和远程两个主机之 ...
- linux如何ARP嗅探 Linux下嗅探工具Dsniff安装记录
先来下载依赖包 和一些必须要用到的工具 我这里用的是 dsniff-2.3 的版本 wget http://www.monkey.org/~dugsong/dsniff/dsniff-2.3.tar. ...
- linux 卸载ninja,Linux下数据库管理工具:DbNinja
以前一直在Windows下进行开发,转而使用Linux反而有许多不适应,以前使用Navicate数据库管理工具,但是这个只能在Windows下使用,一直没有找到使用顺手的Linux下可以使用的数据库管 ...
- linux串口工具 kermit,Linux下串口工具kermit的安装使用攻略
终端(计算机显示终端)是用户使用系统的入口,是计算机系统的输入输出设备,终端的发展也经历了字符哑终端.图形终端和网络终端三种形式:而console更强调是控制系统的地方,其使用者主要是管理员,从概念上 ...
最新文章
- 快速理解https是如何保证安全的
- gym 101858
- oracle中exists连接两个表,IN、EXISTS、多表连接,哪个速度更快
- 爬虫项目——BS4练手(1)
- ICPC China Nanchang National Invitational -- D. Match Stick Game(dp)
- 平面2R机器人(二连杆)运动学与动力学建模+附仿真模型
- 手机业务的趋势:移动互联
- 开根号计算机在线应用,根号计算器(万能计算器在线计算)
- 东芝打印机共享怎么设置_如何设置东芝复印机为网络共享打印机?
- 小米路由青春版-2.1.26开发版固件
- WinDbg实践--入门篇
- 根据代表性序列预测OTU/ASV生活史策略——寡营养型or富营养型
- alot英文怎么读_漂亮的英文是什么英语怎么说
- 如何让linux时间与internet时间同步(centos)
- oracle部门总工资的函数,Oracle分析函数
- hexo下next主题的优化
- 自我鉴定范文 php,毕业生优秀自我鉴定
- 计算从100加到500的和
- vue.runtime.esm.js:1737 TypeError: _self.$scopedSlots.default is not a function
- MySQL连环炮,你抗的住嘛?
热门文章
- python runner.daemonrunner_python3.3.4:pythondaemon3K;如何使用runn
- 破解老程序员的迷茫病——JUST DO IT
- java P1195 口袋的天空
- python与环境统计学--两样本均值的差异显著性检验之z检验,t检验和对应例题代码展示(一)
- 参加科学教师与计算机培训总结,小学科学教师培训总结
- 系统架构师笔记——数据库
- 分享43个职场必备excel函数!(内含详细案例解析及教程参考)
- 你也可以掌控EMI:EMI基础及无Y电容手机充电器设计
- 2020 年 Python 知识清单(数据分析)
- django 模型choice基本讲解