- 浏览: 1042175 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
wenson:
lzjzy520 写道 求 项目完整元代码已经够清楚了,看不懂 ...
使用Spring JavaMail发送邮件总结 -
lzjzy520:
求 项目完整元代码
使用Spring JavaMail发送邮件总结 -
xiejx618:
能提高多大的性能? 不能用数据来说话吧希望你能用jmeter做 ...
利用APR本地库提高Tomcat性能 -
mrwalter:
学习了,挺好用的,局域网内速度很快
ssh远程文件传输命令scp -
wcily123:
不错
ssh远程文件传输命令scp
什么是 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 )。
在进行负载测试时,应该在每个测试 机上启动一个代理线程。代理进程启动的所有 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 消息体的内容长度统计。
每个测试有两种可能结果:
- Success.
- Error.
其中 Total , Mean , 以及 Standard Deviation 都是基于成功的测试进行计算的。
如何启动
Grinder
开始测试
?
启动
Grinder
进行测试包括以下步骤:
该文件指定一般的控制信息(例如:
worker process
如何与
console
通信,使用的
worker process
数等),以及要执行的
Jython
测试脚本。
java
net.grinder.Console
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
·
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%
·
call (path to
setGrinderEnv.cmd)
\setGrinderEnv.cmd
·
echo %CLASSPATH%
·
java -cp %CLASSPATH%
net.grinder.Grinder %GRINDERPROPERTIES%
·
call (path to
setGrinderEnv.cmd)
\setGrinderEnv.cmd
·
java -cp %CLASSPATH%
net.grinder.Console
·
call (path to
setGrinderEnv.cmd)
\setGrinderEnv.cmd
·
java -cp %CLASSPATH%
net.grinder.TCPProxy -console -http > grinder.py
Unix
·
#!/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
·
#!/usr/bin/ksh
·
. (path to
setGrinderEnv.sh)
/setGrinderEnv.sh
·
java -cp $CLASSPATH
net.grinder.Grinder $GRINDERPROPERTIES
·
#!/usr/bin/ksh
·
. (path to
setGrinderEnv.sh)
/setGrinderEnv.sh
·
java -cp $CLASSPATH
net.grinder.Console
·
#!/usr/bin/ksh
·
. (path to
setGrinderEnv.sh)
/setGrinderEnv.sh
·
java -cp $CLASSPATH
net.grinder.TCPProxy -console -http > grinder.py
发表评论
-
glusterfs2配置要点(动态增加client)
2012-10-25 11:12 1199如果打算做cluster/replicate的备份,se ... -
haproxy的日志问题
2012-08-21 12:45 2035在haproxy.cfg的global里添加日志配置: lo ... -
gluster3.2.x的安装配置
2012-04-19 19:00 4125一、 GlusterFS ... -
varnish下使用acl限制ip地址访问
2011-12-29 17:43 1908第1步:定义ACL,我们使用一个外部文件存储IP地址 acl ... -
解决Linux操作系统下AES解密失败的问题:javax.crypto.BadPaddingException: Given final block not p
2011-12-14 00:56 6408现象描述: windows上加解密 ... -
svn的恢复与删除操作
2011-10-19 20:05 2407svn的恢复与删除操作—— 一、本地删除 本地删除, ... -
svn的兩個錯誤解決記錄
2011-08-31 12:05 13361、405 Method Not Allowed 开始 ... -
扫盲:什么是ARP ?
2010-11-03 10:28 1187ARP,即地址解析协议 ,实现通过IP地址 得知其物理地址 ... -
看到一大堆人在发帖找工作,而我们却招不到人
2010-07-09 12:17 1569每天在JE里看到一大堆人发帖找工作,什么晒简历,谈面试经历,似 ... -
HTTP 1.1状态代码及其含义
2010-02-08 18:12 1356下表显示了常见的HTTP 1. ... -
解决java.net.SocketException: Invalid argument or cannot assign requested address
2010-01-23 18:04 11580今天发现facebook app读取facebook上的api ... -
使用X-UA-Compatible来设置IE8兼容模式
2009-12-21 07:50 1426英文原文:http://msdn.microsoft.co ... -
你能靠自己脑筋玩通关这游戏你就真聪明绝顶了!
2008-12-08 15:27 1529你能靠自己脑筋玩通关这游戏吗?别Google、Baidu哦! ... -
OSCache使用介紹
2008-10-16 15:21 2967一.OSCache简介 OSCache是OpenSym ... -
java字符串转换器
2008-07-01 01:13 3405无论是对程序的本地化还是国际化,都会涉及到字符编码的 ... -
说说Java接口的通俗理解
2008-01-20 02:52 3168今天在Chinajavaworld中看到一则对Java接口理解 ... -
DNS解析错误解决办法
2007-11-26 11:31 12452我們在上網过程中可能会遇到DNS解析错误的问题 ... -
我们是白领吗?
2007-11-05 15:52 3811刚看到一则新闻,说是对白领的标准定义的—— 所谓的金领、白领、 ... -
终端服务器超出最大允许连接数的解决办法
2007-10-17 15:58 2322服务器终端服务器超出最大允许连接数时,以前考虑用冷启动服务器, ... -
Tomcat訪問MS SQL被拒絕的問題
2007-09-28 00:36 2317這兩天架設一個項目,使用tomcat,需要連接MSSQL,一直 ...
相关推荐
the grinder 3.0安装文件
1.grinder 是非常好用的性能测试软件,纯java 编写 可以通过编写phthon 脚本来测试软件性能,数据库性能 等等, 还可以调用java 的class 2.环境和测试脚本已打包,可直接拿来用。 3.附带一个Grinder的pdf使用指南。...
grinder 是非常好用的性能测试软件,纯java 编写 可以通过编写phthon 脚本来测试软件性能,数据库性能 等等, 还可以调用java 的class
[www.infoshare.cc]grinder-3.11.tar.gz
grinder jar需要的jar包,使用ngrinder时用到的,有需要的可以使用
每种process的职责如下:Workerprocesses解释Jython测试脚本,并启动worker线程进行测试Agentprocesses管理workerprocessesTheconsole协调其他的processes数据的收集,处理及显示测试脚本的编辑及分发Grinder由
环境配置好,双击就可以运行,简单操作,效率高。没有工具的或者还是不会运行的 hongzhuxuke@126.com联系我
博文链接:https://gq913.iteye.com/blog/159928
PPT 模板 grinder 精美模板,仅供参考 内有详图,仅供参考 PPT 模板 grinder PPT 模板 grinder
详细介绍用Grinder3进行性能测试的步骤
NULL 博文链接:https://stranger2008.iteye.com/blog/2254765
Grinder入门介绍:简单介绍了Grinder中进程、脚本、网络通讯等概念。
要创建一个简单的grinder脚本,请运行: pub run grinder:init 通常,grinder脚本如下所示: import 'package:grinder/grinder.dart' ;main (args) => grind (args);@DefaultTask ( 'Build the project.' )build ()...
Grinder Server提供了一个中心位置来整理崩溃,并通过Web界面允许多个用户登录和管理由所有Grinder节点生成的所有崩溃。 系统要求 磨床节点需要32/64位Windows系统和Ruby 2.0(也支持Ruby 1.9,但您无法对64位目标...
Grinder用户手册:详细介绍了Grinder 3的新特性、脚本编写方法和统计数据等。
Grinder是一个简单的C ++库,提供“异步”事件循环。 要在项目中使用Grinder,只需将所需的.cpp和.h文件复制到项目中。 这些文件使用标准的C ++ 11以及一些POSIX风格的API。 Grinder/Linux目录包含一些有用的特定于...