• nGrinder性能测试平台搭建(LVS压力测试)


    1、 nGrinder是什么
    nGrinder是一个免费的、开放源代码的Web性能测试平台。运行在应用中间件服务器中运行。它由一个控制端和多个代理端组成。通过控制端(浏览器访问)建立测试场景,然后通过分发到代理端进行压力测试,是一个分布式的测试场景。
    测试过程是基于Jython脚本来模拟浏览器或其他终端使用HTTP协议访问站点来完成的。测试过程中采集的数据将通过动态图和数据表的形式展示出来。用户可以方便的看到tps、以及测试目标机器的cpu和内存等情况。
      nGrinder依赖的其他开源项目:
     Grinder一个开源的Java负载测试框架,它通过很多负载注射器来为分布式测试提供了便利。支持用于执行测试脚本的Jython脚本引擎。
      Cubrid是一个全面开源,且完全免费的关系数据库管理系统。CUBRID为高效执行Web应用进行了高度优化,特别是需要处理大数据量和高并发请求的复杂商务服务。通过提供独特的最优化特性,CUBRID可以支持更多的并发请求,更少的响应时间。
      Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。 Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它提供了对其实现语言的一切存 取。所以Jython不仅给你提供了Python的库,同时也提供了所有的Java类。这使其有一个巨大的资源库。
      Spring是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的 开发。从简单性、可测试性和松耦合的角度而言,任何  Java应用都可以从Spring中受益。
      2、 windows平台的nGrinder配置
      2.1 前提条件
      nGrinder下在:http://sourceforge.net/projects/ngrinder/files/ngrinder-3.2.3/。本次演示使用了tomcat因此需要下载ngrinder-controller-3.2.3-with-tomcat.zip和ngrinder-core-3.2.3-agent-package.zip。
      jdk1.6:下载地址http://www.java.net/download/jdk6/6u10/promoted
    /b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe
      tomcat 6 下载地址:http://tomcat.apache.org/

      2.2 配置控制端
      安装jkd1.6和tomcat 在这就不再累述,配置JAVA_HOME和JRE_HOME,放到系统环境变量的最前面。然后将ngrinder-controller-3.2.3- with-tomcat.zip加压缩后,放入webapps文件夹下,运行该文件夹下的 startup.bat。将如下图启动成功:

      在浏览器中输入http://localhost:8080/ ngrinder-controller ,进入登录页面,输入用户名密码(用户名admin,密码admin),进入系统,点击右上角admin下拉菜单,选择系统配置,如下图所示:
     

     

    修改配置如下:
     
    # Set verbose to print the detailed log
    #verbose=true
     
    # testmode makes some several constraints not applied.
    # if testmode is true, security and pluginsupport is disabled.
    #testmode=false
     
    # true if enabling security manager. The default value is false
    #security=true
     
    # false if disabling ngrinder usage report. it will send host ip and executed tests number to Goolge Analytics.
    # The default value is true
    #usage.report=false
     
     
    # true if the plugin is enabled.
    # This is not the option applied on the fly. You need to restart the controller.
    #pluginsupport=true
     
    # false if you want to make the user profile fields not mandatory.
    # Default value is true.
    #user.security=false
     
    # the maximum number of agents which can be attached into one test.
    #agent.max.size=10
     
    # the maximum number of vusers which can be initiated per one agent
    #agent.max.vuser=2000
     
     
    # the maximum runcount of test per one agent
    #agent.max.runcount=10000
     
    # the maximum running hour of one test.
    #agent.max.runhour=8
     
     
    # the listener port of monitor.
    monitor.listen.port=13243
     
    #provide the base URL of the ngrinder.
    #ngrinder.http.url=
     
    # the starting port number of consoles which will be mapped to each test.
    # This is not the option applied on the fly. You need to reboot to apply this.
    #ngrinder.console.portbase=12000
     
    # the port number for the agent connection.
    ngrinder.agent.control.port=8088
     
    # The count of allowed concurrent tests.
    #ngrinder.max.concurrenttest=10
     
    # How many milliseconds console will wait until all agents are connected.
    #ngrinder.max.waitingmilliseconds=5000
     
    # select the ip for controller to use.
    ngrinder.controller.ipaddress=192.168.68.134
     
    # validation timeout in the unit of sec.
    #ngrinder.validation.timeout=100
     
    # To be compatible with old agents (before 3.1.1), please set following to true.
    # If you use the latest version agent, just set it false.
    ngrinder.dist.logback=false
     
    # From 3.1.1, nGrinder doesn't check the file distribution result to speed up the test execution.
    # If your agent is located in the far places or you distribute big files everyday, you'd better to change this to true.
    ngrinder.dist.safe=false
     
     
     
     
    # If some region has the slow network, it may need the safe distribution by force
    #ngrinder.dist.safe.region=
     
    # Set the safe distribution threshold to enable safe distribution for specific transfer size by force.
    # ngrinder.dist.safe.threshold=1000000
     
    # You can point your own rss page on the ngrinder first page.
    #ngrinder.frontpage.rss=http://www.cubrid.org/wiki_ngrinder/rss
     
    # If you want to provide your own custom help page. please modify this
    #ngrinder.help.url=http://www.cubrid.org/wiki_ngrinder/entry/user-guide
     
    # language default en/kr/cn is available.
    #ngrinder.langauge.default=en
     
    # The monitor port is configurable. The default port is 13243.
    #monitor.listen.port=13243
     
    ######################################################################################
    # clustering configuration.
    # This is not the option applied on the fly. You need to reboot to apply this.
    ######################################################################################
    # These should be very carefully set.
    # You can refer http://www.cubrid.org/wiki_ngrinder/entry/controller-clustering-guide
     
    # if you want to enable ngrinder controller clustering. please enable below.
    #ngrinder.cluster.mode=false
     
    # cache cluster uri of all clustered controller servers.
    #ngrinder.cluster.uris=192.168.1.1;192.168.2.2;192.168.3.3
     
    # cache cluster listener port.
    #ngrinder.cluster.listener.port=40003
     
     
    # region setting of this controller.
    # When running ngrinder as cluster mode, the ${NGRINDER_HOME} should be shared by multiple controllers.
    # We expect this to be done by running ${NGRINDER_HOME} on NFS.
    # However this option is not to set here. Because each controller in cluster must have system-ex.conf
    # which should be stored in ${NGRINDER_EX_HOME} in the local so that each node cluster looks different value. 
    # Please locate followings this on the ${NGRINDER_EX_HOME}(by default .ngrinder_ex)/system-ex.conf
    # ngrinder.cluster.region=Beijing

      2.3 配置代理端
       将ngrinder-core-3.2.3-agent-package.zip解压,建立环境变量NGRINDER_AGENT_HOME,变量值为C:DOCUME~1ADMINI~1.grinder_agent。
     运行代理文件夹下的startuo.bat后,进入C:Documents and SettingsAdministrator.ngrinder_agent,修改agent.conf如下:
     

    #start.mode=monitor
    #monitor.listen.port=13243
    # If you want to monitor bind to the different local ip not automatically selected ip. Specify below field.
    #monitor.host=hostname_or_ip
     
    start.mode=agent
    agent.console.ip=192.168.68.134
    agent.console.port=8088
    #agent.region=
    #agent.hostid=
    #agent.servermode=true
     
    # provide more agent java execution option if necessary.
    #agent.javaopt=
    # set following false if you want to use more than 1G Xmx memory per a agent process.
    #agent.useXmxLimit=true
    #agent.same.console.host=true
    # please uncomment the following option if you want to send all logs to the controller.
    #agent.send.all.logs=true

    其中agent.console.ip为控制端ip,agent.console.port为控制端监听端口。
      3、 应用
      启动nGrinder控制端和代理端,通过http://localhost:8080/ ngrinder-controller 进入登录页输入用户名密码,进入nGrinder平台。在快速测试的url地址框中输入www.cstc.org.cn,点击开始测试。进入如下页面:
     

      在代理里面输入1,虚拟用户中点击右侧 按钮,输入2个进程,5可形成后,点击右上角的保存并开始测试,测试开始了

    等待测试结束后,可以对其进行一下结果的导出等操作。

  • 相关阅读:
    【代码笔记】Web-CSS-CSS Display
    【代码笔记】Web-CSS-CSS 分组和嵌套
    【代码笔记】Web-CSS-CSS Padding(填充)
    【代码笔记】Web-CSS-CSS Margin(外边距)
    【代码笔记】Web-CSS-CSS Border(边框)
    【代码笔记】Web-CSS-CSS盒子模型
    【代码笔记】Web-CSS-CSS Table(表格)
    【代码笔记】Web-CSS-CSS样式列表(url)
    【代码笔记】Web-CSS-CSS 链接(link)
    【代码笔记】Web-CSS-CSS Fonts(字体)
  • 原文地址:https://www.cnblogs.com/itcomputer/p/5003985.html
Copyright © 2020-2023  润新知