- 浏览: 1051841 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
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 1243如果打算做cluster/replicate的备份,se ... -
haproxy的日志问题
2012-08-21 12:45 2077在haproxy.cfg的global里添加日志配置: lo ... -
gluster3.2.x的安装配置
2012-04-19 19:00 4186一、 GlusterFS ... -
varnish下使用acl限制ip地址访问
2011-12-29 17:43 1952第1步:定义ACL,我们使用一个外部文件存储IP地址 acl ... -
解决Linux操作系统下AES解密失败的问题:javax.crypto.BadPaddingException: Given final block not p
2011-12-14 00:56 6457现象描述: windows上加解密 ... -
svn的恢复与删除操作
2011-10-19 20:05 2449svn的恢复与删除操作—— 一、本地删除 本地删除, ... -
svn的兩個錯誤解決記錄
2011-08-31 12:05 13731、405 Method Not Allowed 开始 ... -
扫盲:什么是ARP ?
2010-11-03 10:28 1222ARP,即地址解析协议 ,实现通过IP地址 得知其物理地址 ... -
看到一大堆人在发帖找工作,而我们却招不到人
2010-07-09 12:17 1613每天在JE里看到一大堆人发帖找工作,什么晒简历,谈面试经历,似 ... -
HTTP 1.1状态代码及其含义
2010-02-08 18:12 1402下表显示了常见的HTTP 1. ... -
解决java.net.SocketException: Invalid argument or cannot assign requested address
2010-01-23 18:04 11727今天发现facebook app读取facebook上的api ... -
使用X-UA-Compatible来设置IE8兼容模式
2009-12-21 07:50 1491英文原文:http://msdn.microsoft.co ... -
你能靠自己脑筋玩通关这游戏你就真聪明绝顶了!
2008-12-08 15:27 1563你能靠自己脑筋玩通关这游戏吗?别Google、Baidu哦! ... -
OSCache使用介紹
2008-10-16 15:21 2999一.OSCache简介 OSCache是OpenSym ... -
java字符串转换器
2008-07-01 01:13 3433无论是对程序的本地化还是国际化,都会涉及到字符编码的 ... -
说说Java接口的通俗理解
2008-01-20 02:52 3199今天在Chinajavaworld中看到一则对Java接口理解 ... -
DNS解析错误解决办法
2007-11-26 11:31 12488我們在上網过程中可能会遇到DNS解析错误的问题 ... -
我们是白领吗?
2007-11-05 15:52 3893刚看到一则新闻,说是对白领的标准定义的—— 所谓的金领、白领、 ... -
终端服务器超出最大允许连接数的解决办法
2007-10-17 15:58 2354服务器终端服务器超出最大允许连接数时,以前考虑用冷启动服务器, ... -
Tomcat訪問MS SQL被拒絕的問題
2007-09-28 00:36 2347這兩天架設一個項目,使用tomcat,需要連接MSSQL,一直 ...
相关推荐
控制器则管理测试运行,包括启动和控制测试节点,收集和分析测试结果。 在“测试报告”中,可能包含了The Grinder 3.0在实际项目中的应用案例,详细描述了如何设置测试场景,如何录制和编辑测试脚本,以及如何解读...
### Grinder入门介绍 #### 1. Grinder 进程 Grinder 是一个强大的框架,用于在多台机器上运行测试脚本。该框架由三种类型的进程组成:Worker 进程、Agent 进程以及控制台(Console)。每种进程的具体职责如下: -...
控制台进程协同其他进程工作并收集统计数字。the Grinder作为一种负载生成工具,可以请求、购买或租借大量的测试客户机来测试运行在服务器上的应用程序。 the Grinder作为一个开源工具,除了具有良好的功能、易用性...
它基于Java的Grinder框架,提供了图形化的控制台,使得用户可以轻松创建、执行和分析压力测试。这个版本3.5.8是一个稳定且经过优化的版本,确保了测试的稳定性和准确性。ngrinder不仅能够模拟大量并发用户对系统进行...
接着收集资料,了解对方的需求和期望;然后进行整体性考量,全面评估情况;最后提供技巧或方法作为建议。这个模式有助于提高沟通的成功率。 3. **TOTE模式**:TOTE代表测试-操作-测试-退出,这是模拟人类内在决策...
基于jython / grinder(http://grinder.sf.net)的HTTP功能和非功能(负载和性能)工具包...包括支持以下功能:SOA服务,REST,json / xml编码,AES和WS安全性...和一个用来收集请求的存根
Oracle 通过类似于OCCI的API为Dart提供Oracle...Dart垃圾收集了许多常用类的OCCI包装器。 支持: 基本类型(字符串,数字等) 日期和时间戳记为Dart DateTime类型 BLOB CLOB 执照 与自由软件一样免费。 LGPL v
3. WebCapacityAnalysisTool (WCAT):WCAT是一个轻量级负载生成实用工具,可以重现对Web服务器或负载平衡服务器场的脚本HTTP请求,并收集性能统计数据。它支持多线程,可以从单个源控制多个负载测试客户端,模拟...
Java中有一些现成的压力测试框架,如JMeter、Grinder等。如果此程序是自行实现的,那么开发者可能参考了这些框架的设计理念。 9. **线程池的使用**: 使用线程池(如`Executors`类)可以有效管理并发线程,避免...
4. **性能测试工具**:Java性能测试常使用的工具有JMeter、LoadRunner、 Gatling、Grinder等。这些工具可以创建虚拟用户来模拟真实用户负载,监控系统性能,并生成详细的测试报告。 5. **JVM调优**:Java虚拟机...
8. **监控和日志**:通过监控工具(如MySQL的Performance Schema或第三方工具如Prometheus、Grafana)收集数据库的运行状态和性能指标,同时记录日志以进行问题排查。 9. **测试设计和分析**:根据业务场景设计测试...
常见的Java压力测试工具有Apache JMeter、 Gatling、Grinder等。它们可以模拟不同的请求类型,如HTTP、HTTPS、JDBC等,生成负载并收集性能指标。 2. **监控**:在压力测试过程中,监控至关重要。它包括CPU使用率、...
当涉及到性能测试工具的比较时,JMeter与其他性能测试工具如LoadRunner、WebApplicationStressTool、Grinder-nGrinder等都有着各自的优势和不足。在选择使用时,可以根据实际项目的需求和团队的熟悉程度来决定。 在...
- **Grinder (Java)**:一个基于Java的开源负载测试框架。 - **Apache JMeter (Java)**:一款流行的开源工具,用于测试静态或动态资源的性能。 - **非免费软件**: - **Borland SilkPerformer**:一款商业化的...
- **Grinder**:轻量级的Java性能测试框架。 #### 三、性能测试的类型 根据不同的测试目标和场景,性能测试可以分为以下几类: - **负载测试**:通过逐步增加系统负载来观察系统性能的变化,并确定系统在满足...
4. **执行测试**:运行测试脚本,收集数据。 5. **结果分析**:分析测试结果,识别瓶颈。 6. **优化调整**:根据测试结果进行系统优化。 7. **回归测试**:重新测试以确认改进效果。 #### 七、性能测试的过去、现在...
- **Grinder**:轻量级Python框架,用于编写并运行Java虚拟机上的性能测试。 #### 性能测试工具对比 - **商业工具**优点:功能全面,易于使用,提供良好的技术支持和服务保障。 - **商业工具**缺点:成本较高。 -...
Java的开源工具如JMeter和Grinder可以用来执行这样的测试,它们允许自定义脚本,模拟不同的用户行为并分析结果。 3. **安全评估**:检查网络服务的安全漏洞,如SQL注入、跨站脚本攻击等。Java可以用于编写扫描器,...