`
wenson
  • 浏览: 1051841 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Grinder资料收集

阅读更多

什么是 Grinder

Grinder 是一个 JavaTM 负载测试框架,支持分布式测试,且是开源的。

有关 grinder 的最新消息,下载以及其他情况可 以从以下网站获取: SourceForge.net .

 

The Grinder processes

Grinder 是一个将测试脚本运行在多个机器 上的框架。 Grinder 框架由三个 process( program )组成 : worker processes , agent processes , console . 每种 process 的职责如下:

  • Worker processes
    • 解释 Jython 测试脚本,并启动 worker 线程进行测试
  • Agent processes
    • 管理 worker processes
  • The console
    • 协调其他的 processes
    • 数据的收集,处理及显示
    • 测试脚本的编辑及分发

Grinder Java 编写,其中的每个 processes 都是一个 java 虚拟机( JVM )。

Grinder(更新中。。。) - Linsa.Liu - Fly to the Sky!

 

 

在进行负载测试时,应该在每个测试 机上启动一个代理线程。代理进程启动的所有 worker 进程都可以由同一个控制台进行控制 和监视。在每个测试机上都启动多个代理进程是非常没有必要的,但是如果你愿意也可以这样做。

 

Tests and test scripts 测试及测试脚本

在一个典型的测试场景中,测试脚本 会被执行很多遍。每个工作进程都包含若干个工作线程,每个工作线程都会调用测试脚本若干次。测试脚本的一次单独执行称作一个 run

测试脚本的获取有两种方式:

1.        手工编写 grinder 测试脚本 。参考: Script Gallery

2.        TCP 代理录制测试脚本

Ø        启动代理命令: net.grinder.TCPProxy –console –http > grinder.py

Ø        设置 IE 代理:

IE 中打开设置窗口: Tools -> Internet Options -> Connections ->

Local Area Network Settings->advanced... 按上面控制台输出的信息填入代理。

Ø        打开要测试的网站或工程,对网站或工程的操作会被自动记录到当 前目录的 grinder.py 脚本中。

 

Network communication 网络通讯

Ø        每个 worker process 都会与 console 建立一个网络连接来报告统计数据。

Ø        每个 agent process 都与 console 建立一个连接来接收命令,然后传递给它的 worker process

Ø        Console 通过一个特殊的地址和端口来监听这 两种连接。默认情况下,地址是运行 console 的机器的本地地址,端口是 6372

如果 agent process 连接 console 失败,或者 grinder.useConsole 属性被设置为 false agent 将不需要 console 的控制而独立地运行,并自动启动 worker process 开始测试。 Worker process 运行至完成都不再向 console 报告。如果你不想受 console 的干扰而快速的开始测试,上面的方式是非常有用的。

Note

更改 console 地址的方法:设置 grinder.properties 文件中的 grinder.consoleHost grinder.consolePort

 

输出

每个 worker process 都会写日志信息到文件 out-host-n.log 中,其中 host 是主机名, n worker process 数量。

Error 信息在文件 error-host-n.log 中。如果没有 error 产生,将不会创建该文件。

测试结果在文件 data-host-n.log 中。该文件可以导入电子表格工具 中,例如 Microsoft ExcelTM ,以便进一步的分析。

最后的统计汇总数据( out-* 文件中)形式如下:

Final statistics for this process:

 

   Successful  Errors   Mean Test  Test Time Standard                     

   Tests                                 Time(ms)    Deviation (ms)   

Test 0      25        0       255.52     22.52

Test 1      25        0       213.40      25.15

Test 2      25        0       156.80     20.81       "Image"

Test 3      25        0       90.48      14.41

Test 4     25        0       228.68     23.97      "Login page"

Test 5     25        0       86.12      12.53  "Security check"

Test 6     25         0       216.20     8.89

Test 7     25        0       73.20      12.83

Test 8     25        0       141.92     18.36

Test 9     25        0       104.68     19.86     "Logout page"

 

Totals        250           0             156.70       23.32

测试过程中, Console 会动态显示简单的统计信息。另外, plug-in 和高级测试脚本可以提供额外的数 据统计,例如: HTTP plug-in 添加了对 response 消息体的内容长度统计。

每个测试有两种可能结果:

  1. Success.
  2. Error.

其中 Total , Mean , 以及 Standard Deviation 都是基于成功的测试进行计算的。

如何启动 Grinder 开始测试 ?

启动 Grinder 进行测试包括以下步骤:

  1. 创建 grinder.properties 文件 .

该文件指定一般的控制信息(例如: worker process 如何与 console 通信,使用的 worker process 数等),以及要执行的 Jython 测试脚本。

  1. 设置系统环境变量: CLASSPATH 包含 grinder.jar 文件, 该文件应该在 lib 文件夹下。
  2. 在其中一个测试机上启动 console :

java net.grinder.Console

  1. 对每一个测试机,执行步骤 1 和步骤 2 ,然后启动一个 agent process:

       java net.grinder.Grinder

Ø       agent 将会在本地文件夹中寻找 grinder.properties 文件。

Ø       Jython 脚本通常存放在properties 文件同级目录下。

Ø       另外,可以通过参数的方式明确指定properties 文 件,例如:

java net.grinder.Grinder myproperties

 

Note

如果对 console 比较熟悉,可以通过 console 来编辑以及分发 properties 文件和测试脚本,这样就不必将他们分别拷贝到每个测试机上。

 

下面的一些脚本是在 Unix/Linux 下,用来启动 grinder agents, console 录制 HTTP 脚本的 TCPProxy

Windows

  • setGrinderEnv.cmd:

·                      set GRINDERPATH=(full path to grinder install directory)

·                      set GRINDERPROPERTIES=(full path to grinder.properties) \grinder.properties

·                      set CLASSPATH=%GRINDERPATH%\lib\grinder.jar;%CLASSPATH%

·                      set JAVA_HOME=(full path to java install directory)

·                      PATH=%JAVA_HOME%\bin;%PATH%

  • startAgent.cmd:

·                      call (path to setGrinderEnv.cmd) \setGrinderEnv.cmd

·                      echo %CLASSPATH%

·                      java -cp %CLASSPATH% net.grinder.Grinder %GRINDERPROPERTIES%

  • startConsole.cmd:

·                      call (path to setGrinderEnv.cmd) \setGrinderEnv.cmd

·                      java -cp %CLASSPATH% net.grinder.Console

  • startProxy.cmd:

·                      call (path to setGrinderEnv.cmd) \setGrinderEnv.cmd

·                      java -cp %CLASSPATH% net.grinder.TCPProxy -console -http > grinder.py

Unix

  • setGrinderEnv.sh:

·                      #!/usr/bin/ksh

·                      GRINDERPATH=(full path to grinder install directory)

·                      GRINDERPROPERTIES=(full path to grinder.properties) /grinder.properties

·                      CLASSPATH=$GRINDERPATH/lib/grinder.jar:$CLASSPATH

·                      JAVA_HOME=(full path to java install directory)

·                      PATH=$JAVA_HOME/bin:$PATH

·                      export CLASSPATH PATH GRINDERPROPERTIES

  • startAgent.sh:

·                      #!/usr/bin/ksh

·                      . (path to setGrinderEnv.sh) /setGrinderEnv.sh

·                      java -cp $CLASSPATH net.grinder.Grinder $GRINDERPROPERTIES

  • startConsole.sh:

·                      #!/usr/bin/ksh

·                      . (path to setGrinderEnv.sh) /setGrinderEnv.sh

·                      java -cp $CLASSPATH net.grinder.Console

  • startProxy.sh:

·                      #!/usr/bin/ksh

·                      . (path to setGrinderEnv.sh) /setGrinderEnv.sh

·                      java -cp $CLASSPATH net.grinder.TCPProxy -console -http > grinder.py

分享到:
评论

相关推荐

    The Grinder3.0

    控制器则管理测试运行,包括启动和控制测试节点,收集和分析测试结果。 在“测试报告”中,可能包含了The Grinder 3.0在实际项目中的应用案例,详细描述了如何设置测试场景,如何录制和编辑测试脚本,以及如何解读...

    Grinder入门介绍

    ### Grinder入门介绍 #### 1. Grinder 进程 Grinder 是一个强大的框架,用于在多台机器上运行测试脚本。该框架由三种类型的进程组成:Worker 进程、Agent 进程以及控制台(Console)。每种进程的具体职责如下: -...

    论文研究-基于the Grinder的性能测试及应用 .pdf

    控制台进程协同其他进程工作并收集统计数字。the Grinder作为一种负载生成工具,可以请求、购买或租借大量的测试客户机来测试运行在服务器上的应用程序。 the Grinder作为一个开源工具,除了具有良好的功能、易用性...

    ngrinder3.5.8资源集合

    它基于Java的Grinder框架,提供了图形化的控制台,使得用户可以轻松创建、执行和分析压力测试。这个版本3.5.8是一个稳定且经过优化的版本,确保了测试的稳定性和准确性。ngrinder不仅能够模拟大量并发用户对系统进行...

    实用有效的NLP思考模式介绍.doc

    接着收集资料,了解对方的需求和期望;然后进行整体性考量,全面评估情况;最后提供技巧或方法作为建议。这个模式有助于提高沟通的成功率。 3. **TOTE模式**:TOTE代表测试-操作-测试-退出,这是模拟人类内在决策...

    HTTP, Quality Assurance Toolkit-开源

    基于jython / grinder(http://grinder.sf.net)的HTTP功能和非功能(负载和性能)工具包...包括支持以下功能:SOA服务,REST,json / xml编码,AES和WS安全性...和一个用来收集请求的存根

    oracle.dart:Dart本机扩展为Oracle提供数据库访问

    Oracle 通过类似于OCCI的API为Dart提供Oracle...Dart垃圾收集了许多常用类的OCCI包装器。 支持: 基本类型(字符串,数字等) 日期和时间戳记为Dart DateTime类型 BLOB CLOB 执照 与自由软件一样免费。 LGPL v

    web压力测试工具_动力节点Java 学院整理

    3. WebCapacityAnalysisTool (WCAT):WCAT是一个轻量级负载生成实用工具,可以重现对Web服务器或负载平衡服务器场的脚本HTTP请求,并收集性能统计数据。它支持多线程,可以从单个源控制多个负载测试客户端,模拟...

    网站压力测试程序----附带java源码

    Java中有一些现成的压力测试框架,如JMeter、Grinder等。如果此程序是自行实现的,那么开发者可能参考了这些框架的设计理念。 9. **线程池的使用**: 使用线程池(如`Executors`类)可以有效管理并发线程,避免...

    关于Java软件的性能测试分析.zip

    4. **性能测试工具**:Java性能测试常使用的工具有JMeter、LoadRunner、 Gatling、Grinder等。这些工具可以创建虚拟用户来模拟真实用户负载,监控系统性能,并生成详细的测试报告。 5. **JVM调优**:Java虚拟机...

    mysql_tools.rar

    8. **监控和日志**:通过监控工具(如MySQL的Performance Schema或第三方工具如Prometheus、Grafana)收集数据库的运行状态和性能指标,同时记录日志以进行问题排查。 9. **测试设计和分析**:根据业务场景设计测试...

    java压力测试监控程序

    常见的Java压力测试工具有Apache JMeter、 Gatling、Grinder等。它们可以模拟不同的请求类型,如HTTP、HTTPS、JDBC等,生成负载并收集性能指标。 2. **监控**:在压力测试过程中,监控至关重要。它包括CPU使用率、...

    JMeter入门指引.pdf

    当涉及到性能测试工具的比较时,JMeter与其他性能测试工具如LoadRunner、WebApplicationStressTool、Grinder-nGrinder等都有着各自的优势和不足。在选择使用时,可以根据实际项目的需求和团队的熟悉程度来决定。 在...

    ArcGIS 性能测试

    - **Grinder (Java)**:一个基于Java的开源负载测试框架。 - **Apache JMeter (Java)**:一款流行的开源工具,用于测试静态或动态资源的性能。 - **非免费软件**: - **Borland SilkPerformer**:一款商业化的...

    软件测试 性能测试实践

    - **Grinder**:轻量级的Java性能测试框架。 #### 三、性能测试的类型 根据不同的测试目标和场景,性能测试可以分为以下几类: - **负载测试**:通过逐步增加系统负载来观察系统性能的变化,并确定系统在满足...

    性能测试实践与展望

    4. **执行测试**:运行测试脚本,收集数据。 5. **结果分析**:分析测试结果,识别瓶颈。 6. **优化调整**:根据测试结果进行系统优化。 7. **回归测试**:重新测试以确认改进效果。 #### 七、性能测试的过去、现在...

    性能测试实践及其展望

    - **Grinder**:轻量级Python框架,用于编写并运行Java虚拟机上的性能测试。 #### 性能测试工具对比 - **商业工具**优点:功能全面,易于使用,提供良好的技术支持和服务保障。 - **商业工具**缺点:成本较高。 -...

    带来网络评估

    Java的开源工具如JMeter和Grinder可以用来执行这样的测试,它们允许自定义脚本,模拟不同的用户行为并分析结果。 3. **安全评估**:检查网络服务的安全漏洞,如SQL注入、跨站脚本攻击等。Java可以用于编写扫描器,...

Global site tag (gtag.js) - Google Analytics