JMeter学习笔记1

原创 2007年07月28日 09:51:00

 

JMeter学习笔记
Apache jmeter是100%纯java桌面应用程序,它可以被用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。JMeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。(来自官方网站)
1、测试计划中的元件
 
1.1 线程组
线程组元件是任何一个测试计划的开始点。在一个测试计划中的所有元件必须在某个线程组下。顾名思义,线程组元件控制JMeter执行你的测试计划时候使用的线程数。对线程组的控制允许你:
 
设置线程数
设置ramp-up period
设置测试要执行的次数
 
每个线程都会完全独立的运行测试计划,互补干扰。多线程用于模拟对服务器的并发访问。
ramp-up period 指示JMeter用于达到全部选择的线程的时间。如果选择了10个线程,并且ramp-up period是100妙,那么JMeter将使用100秒钟使10个线程启动并运行。每个线程将在前一个线程启动后10(100/10)秒后启动。如果有30个线程并且ramp-up period是120秒,那么相继的线程将间隔4秒。
 
缺省情况下,线程组被配置为不确定的循环执行它下面的元件。另外,你可以设置线程组在结束前循环的次数。如果次数设置为1,那么 JMeter在停止前只执行测试计划一次。
 
1.2监听器
监听器负责收集测试结果,同时也被告知了结果显示的方式
1.2.1理解聚合报告
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
Note:关于 50% 和 90% 并发用户数的含义,请参考下文
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,每秒吞吐量
 
2、JMeter 的主要测试组件如下:
 
2.1、测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
2.2、 线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
2.3、监听器负责收集测试结果,同时也被告知了结果显示的方式。
2.4、逻辑控制器可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
2.5、 断言可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
2.6、 配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
2.7、 前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
2.8、 定时器负责定义请求之间的延迟间隔。
 
3、创建一个web测试计划
2.1、添加用户[添加一个线程组Add --> ThreadGroup(添加->线程组)]
处理每个JMeter测试计划的第一步是:添加线程组元件。线程组告诉JMeter你想要模拟的用户数量,用户应该发送请求的频率和应该发送的数量。
添加一个线程组:首先选择这个测试计划,用鼠标右键点击然后在得到的菜单中选择添加--> 线程组。
设置线程数,比如:20
设置ramp-up period  比如:0
设置测试要执行的次数 比如:2
2.2、添加一个默认的http请求[Add --> Config Element --> HTTP Request Defaults(线程组->添加->配置元件-)http请求默认值)]
2.3[添加一个http请求Add --> Sampler --> HTTP Request(线程组->添加->取样器-)http请求)]
(1)修改http请求名称为:home Page
 (2)路径处输入:/,注意你不必要设计服务器的名称域,因为你已经在HTTP请求默认值元件中设定过了。
2.4、添加一个监听器Add --> Listener --> Graph Results(线程组->添加->监听器-)图形结果)
     最后需要给测试计划的元件是监听器 。用途是将所有的HTTP请求结果存储在一个文件中并显现出数据的可视模型。
 
需要指定一个文件路径和输出文件名。可以在文件名域中输入或选择浏览按钮并选择一个路径然后输入文件名。
2.5、添加第二个监听器Add --> Listener --> (线程组->添加->监听器-)聚合报告)
2.6、保存测试计划并运行
     保存:选择文件菜单中的"保存测试计划"来保存。
     运行:Run 菜单中选择Run。
 
4Jmeter的分布式测试功能(Windows下)
     
Jmeter是纯 JAVA应用,对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误。不过,JMeter 也可以像 LoadRunner 一样通过使用多台机器运行所谓的 Agent 来分担 Load Generator 自身的压力,并借此来获取更大的并发用户数。
 
1.在所有期望运行 JMeter 作为 Load Generator 的机器上安装 JMeter,并确定其中一台机器作为 Controller,其他的机器作为 Agent。然后运行所有 Agent 机器上的JMeter-server.bat文件——假定我们使用两台机器 192.168.0.11 和 192.168.0.12 作为 Agent;
Agent机器上必须安装jdk,并设置环境变量)
 
2.在Controller 机器的 %JMeter_home%bin下,再找到 JMeter.properties 这个文件,编辑该文件,查找“remote_hosts=”这个字符串,你可以找到这样一行“remote_hosts=127.0.0.1。其中的 127.0.0.1 表示运行 JMeter Agent 的机器,这里需要修改为“remote_hosts=192.168.0.11:1099,192.168.0.12:1099——其中的 1099为端口号。一般资料显示1644 为 JMeter 的 Controller 和 Agent 之间进行通讯的默认 RMI 端口号,但是在测试时发现设置为1644运行不成功,后来改成1099后运行通过。
 
3、启动controller机器上的jmeter.bat,双击即可,选择菜单Run中“远程启动”中的192.168.0.11:10099和192.168.0.12:1099来运行Agent。
 
 
常见问题:
1、确定在controller机器上安装jdk,版本和jmeter一致,配置环境变量:Java_home等
   Agent机器上安装jdk,配置环境变量:Java_home和JMeter_home
2、在Controller端上控制某台机器Run,提示"Bad call to remote host"。
解决方法:检查被控制机器上的jmeter-server有没有启动,或者JMeter.properties中remote_hosts的端口配置错误。
3、Agent机器启动Jmeter_server.bat时,后台提示:"could not find ApacheJmeter_core.jar"
解决方法:确定在Agent机器安装jdk,并设置环境变量:java_home、path、classpath和jmeter_home
 
 
参考文档:
1、jackei的Jmeter分布式性能测试
   http://www.cnblogs.com/jackei/archive/2006/09/14/504638.html
2、Jmeter官方网站:
   http://jakarta.apache.org/jmeter/usermanual/index.html
3、Jmeter中文网站:
http://www.bonoy.com/jmeter/
 

相关文章推荐

JMeter学习(十三)分布式部署

转自:http://www.cnblogs.com/yangxia-test/p/4016277.html  Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数...

Jmeter的Windows环境搭建及常见问题

1.下载安装jdk并设置其环境变量; 2.下载Jmeter,并解压到本地; 3.设置环境变量,新建系统变量在变量名中输入:JMETER_HOME,变量值中输入:C:\ jmeter-2.3.4,点击确...

jmeter学习笔记

  • 2016年04月15日 10:03
  • 2.37MB
  • 下载

JMeter学习笔记17-如何安装插件管理

本文介绍如何安装插件管理,不用奇怪,JMeter也是需要插件,来支持我们做一起其他的事情。我们知道,JMeter是一个Java开发的开源软件,开源的软件有一个好处就是,有很多别人开发的插件,拿过来就可...

JMeter学习笔记5-如何添加Assertion

本文介绍如何使用断言。作为测试人员,断言的概念应该听说过吧,断言就是断定测试结果的正确性。前面演示的第一个JMeter测试用例,是一个HTTP Request,也就是常听说的web API测试,中文就...

JMeter学习笔记12-如何录制WebUI脚本

本文要讨论的不是JMeter里面那个录制模板的功能,是借助Badboy录制WebUI脚本,然后在Badboy的导出.jmx格式,然后用JMeter去打开这个脚本,进行相关的性能测试。 1. 下载和安...

(十一)jmeter-集合点---学习笔记

集合点: 简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实的实现并发这感念,我们可以在需要压力的地方设置集合点,每到输入用户名和密码登录时,所有的虚...
  • zjq001X
  • zjq001X
  • 2016年11月09日 23:00
  • 5872

(十九)jmeter3.0插件管理---学习笔记

JMeter3.0_插件JMeter Plugins jemter plugins 一直以来,JMeter Plugins为我们提供了很多高价值的JMeter插件,比如: 用于服务器性能监视的P...
  • zjq001X
  • zjq001X
  • 2017年01月01日 22:45
  • 576

JMeter学习笔记7-View Results in Tables 介绍

本文来详细介绍Listeners中的View Results in Tables功能点。 1. 打开JMeter 2. 新建一个Users名称的Thread Group 3. Users的设置参...

jmeter-参数化---学习笔记

参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统。 这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JMeter学习笔记1
举报原因:
原因补充:

(最多只允许输入30个字)