Coder Social home page Coder Social logo

lpts's Introduction

                ###################################################
               #                                                   #
               #           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  :[email protected]
                   OR
           [email protected]




###############################################################################################################
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  :[email protected] 
	   	   OR 
	   [email protected]

  @ 详细使用方法查看USAGE

lpts's People

Contributors

gaominyang avatar scemoon avatar zhangbeauty avatar zuohanxu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.