`
wenson
  • 浏览: 1042175 次
  • 性别: 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 grinder 3.0安装文件

    the grinder 3.0安装文件

    Grinder-分布式测试负载

    1.grinder 是非常好用的性能测试软件,纯java 编写 可以通过编写phthon 脚本来测试软件性能,数据库性能 等等, 还可以调用java 的class 2.环境和测试脚本已打包,可直接拿来用。 3.附带一个Grinder的pdf使用指南。...

    grinder 3.2 + 源代码 + 入门指南

    grinder 是非常好用的性能测试软件,纯java 编写 可以通过编写phthon 脚本来测试软件性能,数据库性能 等等, 还可以调用java 的class

    [www.infoshare.cc]grinder-3.11.tar.gz

    [www.infoshare.cc]grinder-3.11.tar.gz

    grinder-dcr-agent-3.9.1.jar

    grinder jar需要的jar包,使用ngrinder时用到的,有需要的可以使用

    性能测试工具Grinder

    每种process的职责如下:Workerprocesses解释Jython测试脚本,并启动worker线程进行测试Agentprocesses管理workerprocessesTheconsole协调其他的processes数据的收集,处理及显示测试脚本的编辑及分发Grinder由

    grinder的使用步骤和运行命令

    环境配置好,双击就可以运行,简单操作,效率高。没有工具的或者还是不会运行的 hongzhuxuke@126.com联系我

    The Grinder3.0

    博文链接:https://gq913.iteye.com/blog/159928

    PPT 模板 grinder.pptx

    PPT 模板 grinder 精美模板,仅供参考 内有详图,仅供参考 PPT 模板 grinder PPT 模板 grinder

    用Grinder进行性能测试

    详细介绍用Grinder3进行性能测试的步骤

    grinder安装使用说明文档

    NULL 博文链接:https://stranger2008.iteye.com/blog/2254765

    Grinder入门介绍

    Grinder入门介绍:简单介绍了Grinder中进程、脚本、网络通讯等概念。

    grinder.dart:Dart工作流程,自动化

    要创建一个简单的grinder脚本,请运行: pub run grinder:init 通常,grinder脚本如下所示: import 'package:grinder/grinder.dart' ;main (args) => grind (args);@DefaultTask ( 'Build the project.' )build ()...

    grinder:Grinder是一个用于自动模糊Web浏览器和管理大量崩溃的系统

    Grinder Server提供了一个中心位置来整理崩溃,并通过Web界面允许多个用户登录和管理由所有Grinder节点生成的所有崩溃。 系统要求 磨床节点需要32/64位Windows系统和Ruby 2.0(也支持Ruby 1.9,但您无法对64位目标...

    Grinder用户手册

    Grinder用户手册:详细介绍了Grinder 3的新特性、脚本编写方法和统计数据等。

    grinder:简单的C ++事件循环库

    Grinder是一个简单的C ++库,提供“异步”事件循环。 要在项目中使用Grinder,只需将所需的.cpp和.h文件复制到项目中。 这些文件使用标准的C ++ 11以及一些POSIX风格的API。 Grinder/Linux目录包含一些有用的特定于...

Global site tag (gtag.js) - Google Analytics