jmeter资料大全,来源网络,仅供学习参考
JMeter应用指南—1.0版.pdf Apache JMeterApache JMeter 是一个100%的纯Java桌面应用,用于压力测试和 性能测量。它最初被设计用于Web应用测试但后来扩展到其他测试领域。
我用它能做什么?
Apache JMeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,Java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器,网络 或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以 使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
它能作什么?
Apache JMeter 的特性包括:
能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
完全的可移植性和100% 纯Java。
完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
精心的GUI设计允许快速操作和更精确的计时。
缓存和离线分析/回放测试结果。
高可扩展性:
可链接的取样器允许无限制的测试能力。
各种负载统计表和可链接的计时器可供选择。
数据分析和可视化插件提供了很好的可扩展性以及 以及个性化。
具有提供动态输入到测试的功能(包括JavaScript)。
支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。 从数据库中读取数据驱动测试计划
简单点儿的办法,就是将数据库中的数据导出,一般的测试工具都支持CSV格式
的数据来驱动测试用例。当然JMeter也不例外。
那么在JMeter中是否有简单的办法呢?看看下面的附件,你也许会觉得那就是
你想要的。
附件中是一个类似 用户参数 的前置处理器。可以通过配置JDBC链接,来
从数据库中获取数据。
准备工作:
1。打开<JMETER_HOME>/lib/ext/ApacheJMeter_core.jar
2。编辑org/apache/jmeter/resources/messages.properties
3。在这个文件中添加 jdbc_user_parameters_title= JDBC User Parameters
4。重新打包<JMETER_HOME>/lib/ext/ApacheJMeter_core.jar
或者,可以下载附件中的messages.properties替换ApacheJMeter_core.jar
中的同名文件。
使用方法:
1。下载附件
2。解压到<JMETER_HOME>/lib/ext下
3。将文件尾名改为 .jar
4。下载一所使用的数据库的JDBC驱动程序
5。将JDBC驱动程序放入 <JMETER_HOME>/lib目录中
6。启动JMeter
7。在前置处理中多了一个菜单项 JDBC User Parameters JMeter 词汇表
1. Test Plan , 测试计划
测试计划在软件测试项目中是用于管理一个软件项目的测试资源配置,时间表
以及测试用例等。一般测试计划中也包括风险评估,计划开始和结束的条件等。
在JMeter中的测试计划,实际上是一个或一组测试用例。可以将线程组(Thread
Group)理解为一个测试用例,在一个测试计划中可以有多个测试线程组。
2. WorkBench , 工作台
在金山词霸中Workbench的解释是:
引用:
工作台:在上面做手工工作的坚固的桌子或长凳,如机械工人、木匠或珠宝匠的工作台
在JMeter中,可以在工作台中配置HTTP代理服务器,然后将录制的脚本存入工
作台中,进行初步编辑,然后将脚本复制/粘贴到测试计划中。
3. Thread Group , 线程组
在各种压力测试工具中都有虚拟用户的概念,在LoadRunner中叫做VUser。实际
上在这些压力测试工具实现虚拟用户的时候试用的技术就是线程,用一个线程来
模拟一个虚拟用户,在JMeter中线程组用于配置虚拟用户的数目,迭代次数等。
4. Sampler , 取样器; Sample, 样本
在JMeter中,请求时通过取样器发送的,每个请求就是一个样本,在测试运行
的时候每个虚拟用户(线程)通过取样器发送样本,样本会在运行的时候由
JMeter进行参数化。
5. Controller , 控制器
控制器分为逻辑控制器,和样本控制器也就是取样器。逻辑控制器用来模拟程序
语言的逻辑结构,如顺序,分支,循环等。
6. Listener , 监听器
7. Config Element , 配置元件
8. Pre Processor , 前置处理器
9. Post Processor , 后置处理器 如何正确的作远程测试? - JMeterFAQ
答案:这有一些注解来帮助你开始。
你应有:
一个应用服务器。你不能在这个机器上运行任何在你的被提议的或实际的产品环境上不会运行的软件(如果你运行任何其他的,包括JMeter,你会增加服务器的负载并因此影响你的测试结果)。
一个或多个运行jmeter-server的机器(JMeterEngine)。你需要将这些机器放置在适度接近(在网络方面)应用服务器。对“适度接近”我的意思是在同一个以太网段或至少在他们之间不是低速连接。JMeter用户手册提供了比较好的关于作这样事情的信息。
一个运行控制JMeterEngine机器的JMeter 图形用户界面的独立的机器。
当你在开发脚本并只是为中等程度的用户测试(假设你“接近”应用服务器)你不必引入JMeterEngine服务器。这样做的原因是:
当你不“接近”应用服务器时排出缓慢的网络连接的影响。
执行比本地机器的处理能力多的线程。
下面列出来的是可以使用jmeter-server的原因吧
1 ,你自己机器访问测试服务器速度不快,因此需要jmeter-server来排除自己机器网络访问慢的影响。
2,
jmeter-server拥有的测试线程处理能力超过你自己机器的。 在我的脚本中如何使用外部的数据文件?
答案:一种方法是创建一个用户参数前置处理器(User Parameters Pre-Processor ),在它里面列出所有你想从数据文件读取的值。然后你可以在脚本中使用变量名称。
例如:
启动JMeter
在测试计划中添加一个线程组
设置合适的线程数和迭代次数
添加 前置处理器 > 用户参数 到线程组
点击 添加变量
设置once per iteration (???)
设置 名称 为变量名称(例如:ACCOUNTID)
设置值(在User_1下)为 ${_StringFromFile(accounts.dat)}
添加取样器 > HTTP请求 到 线程组
点击 添加 按钮来给请求添加参数
名称:account_id
值: ${ACCOUNTID}
添加监听器 > 察看结果树 到 线程组
保存
创建每行包含每个账户标识(account id)account.dat 文件。[在bin目录中,除非你在_StringFromFile的参数中添加了路径]
运行 > 启动
每次迭代,变量ACCOUNTID将被设置为数据文件中的下一行,然后HTTP请求使用它的值来设置account_id参数。
当到了文件末尾,StringFromFile再次开始在文件开头读取。
注意:如果在客户机-服务器模式下用这样的脚本,确保任何数据文件都被复制到服务器主机的合适位置,由于数据文件将被服务器打开,而不是客户机。 jmeter脚本录制方法:
你可以先把你要的测试脚本录制下来。
具体方法:
1。在WorkBench里ADD--〉NON-TEST Elements-->http proxy server.
2。在Test Plan里Add-->Thread Group
3。点击WorkBench--->http proxy server,在Target Conctroler 里选择:
Test Plan>Thread Group
4。设置IE的代理为:locahost 端口:8080
5。点击http proxy server下面的Start按钮。
6。在IE里访问你要测试的网页,所有的动作会被记录在Jmeter里。
7。在录制完之后,可以把不需要的.css .jpg的行删掉
还可以添加一些变量控件,来增加脚本的灵活性。
--------------------------------------------------------------------------------
在IE里设置为localhost,端口号和JMeter中的Proxy server的端口号一致,然后启动JMeter的Proxy server。打开IE,输入要测试的网站的网址,就可以了。
录制的时候线程组中不需要设置。默认情况下录制下来的测试计划(脚本)在HTTP Proxy Server中存放,你需要拷贝到线程组中编辑,然后才能使用。
patterns to include/exclude 是用来过滤请求的,比如你不想发送对图片的请求,你就可以过滤掉。 Apache JMeter 是100%的Java桌面应用程序。用于对软件做压力测试(例如Web应用)。 它可以用于测试静态何动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。
另外,JMeter能够对应用程序做衰退测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
1.1 历史
Apache Software Foundation 的 Stefano Mazzocchi 是JMeter的最初开发人员。他编写它主要用于测试Apache JServ的性能(一个后来被Apache Tomcat项目替代的项目)。我们重新设计了JMeter,增强了它的GUI和添加了功能测试支持。
1.2 远景
我们希望看到随着开发人员利用插件架构的优势,JMeter的能力能够迅速扩展。将来开发的主要目标是使得JMeter尽可能地变成一个有用的衰退测试工具,而不损失JMeter地压力测试能力。
Jmeter使用之脚本录制回放
最近一直在用LoadRunner做测试,同时也不忘用Jmeter来实现比较复杂的场景。今天就把我使用中的一些小小技巧做一说明,以备忘。1、启动。
刚才在家里的机器上下载安装了Jmeter2.02版,启动时总是提示“Error occurred during initialization of VM Could not reserve enough space for object heap”,完了,128M的内存跑不起来一个小小的Jmeter :(。怎么办?修改Jmeter的启动参数“set HEAP=-Xms256m -Xmx256m”“
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m”,改256->56,128->28。这里只是一个小小的插曲,实际使用时不要这么改哦。好了,可以启动了:)
2、下面说Jmeter中的脚本录制。
(1)选中Test Plan单击鼠标右键,在弹出菜单中选择Add->Thread Group;
(2)接下来选中WorkBench单击鼠标右键,在弹出菜单中选择Add->Non-Test Elements->HTTP Proxy Server;
(3)在“HTTP Proxy Server”窗口中Target Controller下拉框选择Test Plan > Thread Group(表示脚本生成在这个线程组下),Grouping下拉框选择Put each group in a new controller(表示把每组脚本放到一个新的组中,避免生成的脚本杂乱且无法组织);
(4)单击窗口最下方的Start;
(5)打开浏览器,设置代理服务器的设置为localhot,端口号为8080(在“HTTP Proxy Server”窗口中设置了使用8080端口进行侦听);
(6)在地址中键入要录制页面的URL对页面进行操作,Jmeter就会自动把所进行的操作录制成为脚本了,可以看到Thread Group节点下面多了许多的子节点就是录制生成的脚本;
(7)操作完毕后在Jmeter中单击Stop先停止录制,然后把浏览器的代理设置改为原来的设置即可。
3、运行及记录结果设置
(1)完成脚本的录制后还需要定义你所需的结果设置才算完成了Test Plan的设置,首先要设置Thread Group(相当于虚拟用户组)的属性,单击Thread Group,在右边的窗口中设置Number of Thread(相当于虚拟用户数)为5,Ramp-Up Period(in seconds)为1,Loop Cout选项取消选中Forever,在右边的框中输入2。以上设置表示共有5个虚拟用户,每隔1秒运行一个,迭代2次。
(2)要查看运行的结果还需要加入Listener,选中Thread Group单击鼠标右键选择Listener->View Results in Table,通过这个视图可以查看到每个链接的执行情况,包括执行时间和成功与否,再加入Aggregate Report,通过这个视图可以查看每个Thread Group组的最大、最小和平均响应时间。加入View Results Tree,通过这个视图可以查看每个链接的执行情况,包括发出的请求和服务器返回的详细内容。
(3)OK,所有的设置暂到此结束,接下载可以运行了。
4、运行及结果查看
(1)OK,运行看看吧,由于设置运行时间较短,所以先选择View Results in Table,然后按下Ctrl+r键开始运行脚本,就可以看到每个请求的运行结果了,还可以单击其他两个结果视图实时查看运行结果。
说了这么多相信读者已经对这个工具有些感性的认识了吧,简单、便捷、跨平台、随手拈来即可使用,是它最大的有点(占内存是Java无法避免的,出现最先一幕)。不过我的本意是想说说使用使用Jmeter进行查询内容参数化的,没想到就简单使用也花费了这么多篇幅,那只有下一节再叙了。总的感觉这个工具比较“爽”。
中文站点:http://www.bonoy.com/jmeter/
本文原在我的另一个blog上,因为已经不用那个了,所以再次贴到这里来。这里再附上我使用的一段脚本——设置浏览器代理服务器的脚本,功能是设置代理服务器为localhost,端口为8080,并打开一个浏览器实例,关闭该实例则取消代理服务器的设置。注意:此脚本在我的机器上运行通过的,如果您要使用请自己修改,由于是对注册表的操作,所以请不熟悉的朋友慎用,或者使用其他有类似功能的软件。
'*******************************************************************************
'脚本说明:使用本脚本可以设置代理为localhost:8080,关闭浏览器后自动取消代理设置。
'创 建 人:wyingquan at hotmail dot com
'创建时间:2004-11-24 星期三
'*******************************************************************************
'保存当前设置
Set reg=WScript.CreateObject("WScript.Shell")
'设置浏览器使用代理,服务器名localhost,端口号8080
reg.regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable",1,"REG_DWORD"
reg.regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer","localhost:8080","REG_SZ"
reg.regwrite"HKLM\SYSTEM\ControlSet001\Hardware Profiles\Current\Software\Microsoft\windows\CurrentVersion\Internet Settings",1,"REG_DWORD"
reg.regwrite"HKLM\SYSTEM\ControlSet001\Hardware Profiles\0001\Software\Microsoft\windows\CurrentVersion\Internet Settings",1,"REG_DWORD"
reg.regwrite"HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\0001\Software\Microsoft\windows\CurrentVersion\Internet Settings\ProxyEnable",1,"REG_DWORD"
reg.regwrite"HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Microsoft\windows\CurrentVersion\Internet Settings\ProxyEnable",1,"REG_DWORD"
'获取浏览器执行文件的位置
RunMe=reg.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE\")
'等待用户输入要打开的页面
sUrl=InputBox("请输入要打开的URL地址或者取消直接在浏览器地址栏中打开:","VBS For Jmeter","http://")
'打开测试页面
Set oExec=Reg.Exec(RunMe & " " & sUrl)
'一直等待关闭浏览器为止才继续运行脚本
Do While oExec.Status = 0
WScript.Sleep 100
Loop
'撤销代理服务设置
reg.regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable",ProxyEnable,"REG_DWORD"
reg.regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer",ProxyServer,"REG_SZ"
reg.regwrite"HKLM\SYSTEM\ControlSet001\Hardware Profiles\Current\Software\Microsoft\windows\CurrentVersion\Internet Settings",0,"REG_DWORD"
reg.regwrite"HKLM\SYSTEM\ControlSet001\Hardware Profiles\0001\Software\Microsoft\windows\CurrentVersion\Internet Settings",0,"REG_DWORD"
reg.regwrite"HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\0001\Software\Microsoft\windows\CurrentVersion\Internet Settings\ProxyEnable",0,"REG_DWORD"
reg.regwrite"HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Microsoft\windows\CurrentVersion\Internet Settings\ProxyEnable",0,"REG_DWORD"
Set reg=nothing
MsgBox "OK",,"VBS For Jmeter" 受益非浅呀!多谢sincky 到处找你哦
好人呀! 顶!
向sincky 敬礼!Jmeter内存溢出现象
请问,我在用Jmeter做一个邮件服务器的性能测试时,设置并发人数为500.结果出现了内存溢出的现象。
这种现象怎么处理阿?
不错~~收到!
不错~~收到!不错~~收到!不错~~收到!不错~~收到!不错~~收到!不错~~收到!不错~~收到!不错~~收到!不错~~收到!不错~~收到!不错~~收到!不错~~收到! 这个软件到哪里下载呢????? JMeter 安装有什么特别的要求吗?loadrunner请教
我再用loadrunner录制脚本时,写好url,点击确定按钮后,出现浏览器代理服务设置的错误,请问改怎么解决啊`` 好人啊!!受益匪浅啊!!
3ks