forked from Scemoon/lpts
-
Notifications
You must be signed in to change notification settings - Fork 0
Linux Performance Test
License
HugoDing/lpts
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
################################################### # # # Linux Performance Test Suite # # # ################################################### ######################################################################################################### version:lpts-3.0.9 1.解决osinfo表中glibc版本有误问题 修改lpts-3.0.8/lib/sysinfo.py + def check_glibc_ver1(): + glibc_ver = subprocess.getoutput('ldd --version').splitlines()[0] + glibc_ver = re.search(r'(\d+\.\d+(\.\d+)?)', glibc_ver).group() + return glibc_ver - if utils.compare_versions(glibc_ver, ver) == -1: - raise error.TestError("Glibc too old (%s). Glibc >= %s is needed." % - (glibc_ver, ver)) + "Glibc":check_glibc_ver1(), - "Glibc":" ".join(platform.libc_ver()), 2.添加ip和os信息到osinfo表中 修改lpts-3.0.8/lib/sysinfo.py + def get_host_ip(): """ 查询本机ip地址 :return: ip """ + try: + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.connect(('8.8.8.8', 80)) + ip = s.getsockname()[0] + finally: + s.close() + return ip + "IP" :get_host_ip(), + "OS": get_cmd_output("cat /etc/.productinfo").replace("\n", " "), Author:tidingxin Mail :tixingxin@uniontech.com OR gaomingyang@uniontech.com ############################################################################################################### version:lpts-3.0.8 @ Linux Performance Test Suite 简称lpts, 是一款面向操作系统基准性能测试框架,测试面包括: CPU、Mem、Net、IO. Linux基准性能不同于白盒性能测试,它往往涉及操作系统底层结构,要求测试人员 熟练甚至精通操作系统基本原理,因此加大了Linux基准性能测试难度.目前,测试Linux基准性能,主要 手段有:一,根据测试需求编写合适测试脚本(难度系数较高,成本也较高);二. 通过选取一些被大家 广泛认可的开源或者商用的性能测试工具.第二种方法入手门槛低,但往往会遇到以下问题: 1. 工具种类多,各有偏重,难以选择; 2. 工具原理介绍篇幅往往较少,用户常常知其然不知其所以然; 3. 不同工具测试参数复杂,需要花费较长时间梳理测试方法; 4. 不同工具评价指标差异, 需要掌握不同指标含义; 5. 测试报告通常较为简易,可读性较差,有的工具甚至只有屏幕输出; 6. 测试数据较多,数据整理繁琐; 7. 略 @ lpts开发目的就是为了如何更好的使用性能测试工具.它有以下特点: 1. 集成常用性能测试工具:lmbench、unixbench、x11perf、glxgears、iozone、bonnie、dbench、 pingpong、stream; 2. 剖析不同测试工具测试指标, 把测试工具的具体运行参数浓缩、抽象成文字描述或者易理解的可配置参数,形成简单测试方案。 针对不同操作系统可以创建一个或多个测试方案,该方案默>认保存在parameters/目录中,默认为default.conf,你可以根据需求创建自己的测试方案; 3. lpts的运行方式是以job进行,使用job达到以下目地: 1)自定义测试工具集合和测试方案,job的创建需要指定测试方案配置文件和测试工具集; 2) 每个job都有一个对应的job id; 3)job默认保存在db/jobs.xml中,也可以指定jobs.xml; 4) job的运行可以指定jobs.xml中不同的job id; 5) job支持间断运行测试工具,即:可以执行job中一个或多个测试工具; 6)已经PASS的测试工具不再执行,FAIL的测试工具在解决依赖问题后还可以继续执行 7)job状态查询功能,lpts可以查看每个job中测试工具的执行状态 8)每个job将对应一个results.xml,所有工具的测试数据将保存在results.xml中 4. lpts数据存储, lpts测试数据存储采用xml结构,采用xml达到以下目地: 1)数据操作方便; 2)数据可移动性强; 3)xml利于开发调用; 5. lpts测试报告,lpts目前支持text和execl的测试报告 1) job中某个测试工具执行完毕后,都会在results/<tool>/目前下生成text测试报告,text测试报告默认命名方式为<tool>-<job_id> ; 2) 生成测试报告不受时间和空间影响,只需要存储文件results.xml,因此需要保存好results.xml; 3) 可根据两个以上results.xml生成对比测试报告,对比测试报告只支持execl格式; 4) 测试报告支持chart 5) 测试报告大致包含的内容: (1)操作系统基本信息(环境变量) (2)工具原理介绍 (3)测试指标介绍 (4) 主要运行参数介绍 (5) 测试数据 (6)chart 6. lpts其他功能介绍 1) 日志系统,lpts日志系统包括多种输出方式DEBUG、INFO、WARNING、ERROR等,以及可定义日志输出方式和 输出级别; 2) 依赖检测,针对不同工具会自动检测执行依赖,提示系统缺包信息; 3) 针对IO测试,会在每次测试结束后清理测试环境,降低多次测试的影响; 4) lpts提供reboot功能,lpts可以注册为一个lptd服务,测试人员配置运行的工具和是否reboot; 5) autotest运行方式,lpts提供autotest调用结构,因此lpts测试用例可运行在autotest测试框架中,但同样具有lpts各项功能; @ 目前lpts版本为v3.0, 该版本主要为字符模式,后期版本将结合autotest测试框架开发web界面. lpts开发 并测试一个tool的周期大概需要一周时间,如果需要添加或修改性能测试工具或修改lpts运行方式,可以联系我: Author:Scemoon Mail :guojun.meng@cs2c.com.cn OR mengsan8325150@gmail.com @ 详细使用方法查看USAGE
About
Linux Performance Test
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Python 99.0%
- Other 1.0%