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接口测试案例实践(一)

1.1. 接口介绍 本次测试的接口采用内网中的通讯录查询接口进行测试,接口参数如下: 1.2. 使用Jmeter进行接口测试 1.2.1. 打开Jmeter 下载好Jm...
  • Vincy_Zhao
  • Vincy_Zhao
  • 2017年04月19日 11:38
  • 2671

JMeter工具简单介绍

一、JMeter介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,...
  • a136332462
  • a136332462
  • 2017年02月06日 15:47
  • 1245

使用Jmeter进行登录操作

学习Jmeter很久了,还没有什么进步,写篇关于Jmeter的博客做备忘,以一个登陆后提交表单的流程为示例,我们需要先做登录操作,登录之后才可以提交表单: 1、打开Jmeter,新建线程: ...
  • Beauty_shimei
  • Beauty_shimei
  • 2016年12月21日 14:44
  • 8303

jmeter实践

本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自己动手对系统进行自动压测和模拟用户操作访问请求。最后还用linux下的压测工具ab做了简单对比。 1.    ...
  • UltraNi
  • UltraNi
  • 2012年12月17日 23:45
  • 57700

(Jmeter 二)使用JMeter进行FTP测试

win7环境下搭建FTP服务器(ftp://10.92.4.53/movie/) http://wenku.baidu.com/link?url=nW5ZLPG59yM4BX2Qo3v4MT9H2Oo...
  • fanxiyanhong
  • fanxiyanhong
  • 2016年05月18日 14:15
  • 2690

jmeter.bat启动时提示:'findstr' 不是内部或外部命令,也不是可运行的程序或批处理文件。

学习中遇到的问题: 'findstr' 不是内部或外部命令,也不是可运行的程序或批处理文件。 Not able to find Java executable or version. Please...
  • lsande
  • lsande
  • 2017年06月28日 11:37
  • 3245

JMeter学习笔记15-如何用JMeter做接口测试

本文介绍JMeter如何做web service测试,一般来说web服务,一般指的是HTTP请求相关的内容。这里就介绍一下如何利用JMeter做基于HTTP的web接口测试。接口也叫API(Appli...
  • u011541946
  • u011541946
  • 2017年05月02日 21:21
  • 6679

jmeter之关联

名称解释关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据具体方法jmeter关联有两种方法:Xpath、正则表达式 方法一:Xpath主要用于响应是格式是xml...
  • testdeveloper
  • testdeveloper
  • 2016年06月03日 15:16
  • 4294

jmeter测试http接口

早前测试接口都是用chrome的插件postman,一般用着还不错,只不过涉及参数化和脚本复用方面就不太方便了。 有朋友推荐使用jmeter测试性能,可能因为jmeter在对接口支持上比较好,所...
  • silencemylove
  • silencemylove
  • 2015年07月22日 14:02
  • 5274

压力测试工具JMeter入门教程

 1.Jmeter 概要描叙 jmeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台。多数情况下是用作压力测试,该测试工具在阿里巴巴有着广泛的使用,估计是不要钱吧,哈哈,功能上来说...
  • chenleixing
  • chenleixing
  • 2015年02月02日 22:14
  • 207973
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JMeter学习笔记1
举报原因:
原因补充:

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