简介

Apache JMeter是100%纯java桌面应用程序,被设计用来测试C/S结构的软件(例如web应用程序)。它可以被用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。JMeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。
另外,JMeter能够用断言创造测试脚本来验证应用程序是否返回了我们期望的结果,从而帮助我们进行回归测试。为了得到最大的灵活性,JMeter允许我们使用正则表达式创建断言。

安装

windows版本

下载最新版本
http://jmeter.apache.org/download_jmeter.cgi

编写本文时最新版本 2.12 (要求 Java 6 或更高)

解压zip/tar文件到任意目录。

确保正确安装JRE/JDK并且设置环境变量JAVA_HOME。

避免在一个有空格的路径安装 Jmeter,这将导致分布式测试出现问题。

运行

用户界面模式

运行 bin 目录中的 JMeter (for Unix) 或者 JMeter.bat (for Windows) 文件。

服务器模式

为了分布测试 ,可以使用服务器模式运行JMeter,然后通过用户界面/或命令行控制每一台服务器。

运行 bin 目录中的 jmeter-server (for Unix) 或者 jmeter-server.bat (for Windows) 文件。

命令行

使用命令行运行:jmeter -n -t filename.jmx
-n 这是指定JMeter在非用户界面模式运行
-t [包含测试计划的JMX文件的名字]

作为分布式的其中一台主机:jmeter-server -H my.proxy.server -P 8000
-H [代理服务器主机名或者ip地址]
-P [代理服务器端口,默认1099]
控制分布式主机执行脚本:jmeter -n -t filename.jmx -R 192.168.101.116:1099,192.168.101.113:1099

通过代理服务器连接网络:jmeter -H my.proxy.server -P 8000
-H [代理服务器主机名或者ip地址]
-P [代理服务器端口]

测试计划

一个测试计划描述了一系列JMeter运行时要执行的步骤。一个完整的测试计划包含一个或者多个线程组(thread groups),逻辑控制(logic controllers),取样发生控制(sample generating controllers),监听器(listeners)定时器(timers),断言(assertions)和配置元件(configuration elements)。

添加和删除元件 ( Elements )

在一个树上通过右击可以添加元件到一个测试计划 ,从“add”列表中选择一个新元件。或者通过选择“open”选项从文件加载。

删除元件,确保元件被选中,在元件上右击,然后选择"remove"选项。

加载和保存元件

从文件加载元件,右击目标元件,选择“open”选项,然后选择你的元件保存文件。JMeter将载入文件中的所有元件。

保存树元件,在一个元件上右击,选择“save”选项。JMeter会保存已选的元件,加上所有下面的子元件。用这种方法,你能够保存测试树的一段、单独元件、或者整个测试计划。

运行一个测试计划

运行一个测试计划,从“run”菜单项选择“start”。停止你的测试计划,从同样的菜单选择“stop”。

线程组

线程组是任何一个测试计划的开始点. 所有的测试计划中的元件都要在一个线程组中。

如名字显示那样,线程组控制了一组线程, JMeter使用这些线程来执行你的测试,你可以做如下操作:

  • 控制thread group
  • 设置线程的数量
  • 设置ramp-up周期
  • 设置测试执行的循环次数

每一个线程都会完全和独立的执行测试计划而不影响其他线程。多线程可以用于模拟到你的服务器程序的并发连接。

Ramp-up period 告诉JMeter需要多长时间来“ramp-up”去装载全部的线程,如果30个线程被使用,而ramp-up period为120秒,那么JMeter会花120秒来使得所有的30个线程运行,每个线程将在上个线程开始后4秒开始。延迟时间=ramp-up period时间数/线程数

默认的,一个thread group被设置为不限定的循环。你可以设置thread group循环的次数,如果设置为一次,那么JMeter将执行测试一次然后停止。

Controllers

JMeter有两种controller:Samplers和Logical Controllers

Samplers告知JMeter发送请求到服务器。 例如,如果你想JMeter发送一个HTTP请求,就添加一个HTTP Request Sampler。当然你也可以定制一个请求,在Sampler中添加一个或多个Configuration Elements。

Logical Controllers使你可以定制JMeter发送请求的逻辑。例如,你可以添加一个Interleave Logic Controller来控制交替使用两个HTTP Request Samplers。同样,一个特定的Logic controller,作为Modification Manager,可以让你修改请求的结果。

Samplers

Sampler 告知JMeter发送请求到server端。JMeter现在有如下的samplers:

  • FTP Request
  • HTTP Request
  • JDBC Request
  • Java Object Request
  • LDAP Request
  • SOAP/XML-RPC Request
  • Web Service (SOAP) Request (Alpha Code)

每个sampler都有一些可以设置的properties。 你也可以在一个sampler中添加Configuration Elements来做更多的设置。当然, 值得注意的是JMeter按照request在tree中添加的次序来发送请求。

如果你想同时发送多个并发的同一种类的request,例如HTTP request,到同样一台服务器。可以考虑使用一个Defaults Configuration Element。每个Controller拥有一个或多个默认元素。

Listeners提供了获取在JMeter运行过程中搜集到的信息的访问方式。最简单的Listener,Graph Results Listener图示出了响应时间。Listeners提供了一种图型化的方式来查看JMeter运行过程中产生的数据。

另外, Listeners能够直接将搜集的到数据存入到文件中以备后用。任何一个listener都拥有一个设置该文件存储地址的域。

Listener能够加到测试中的任何位置。他们将仅仅收集同级别和所有低级别的elements产生的数据。

Windows下使用JMeter的更多相关文章

  1. windows下安装jmeter

    windows下安装jmeter post by rocdk890 / 2012-8-19 16:08 Sunday windows技术 发表评论 JMeter是Apache软件基金会的产品,用于对静 ...

  2. Windows下配置Jmeter环境变量

    一.安装SDK 1.下载并安装sdk,安装目录为D:\Program Files (x86)\Java\jdk1.7.0_01 2.配置环境变量 1)新建系统变量:JAVA_HOME = D:\Pro ...

  3. [Jmeter]jmeter之初体验(windows下的jmeter)

    一.环境准备 1.安装JDK(传送门:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...

  4. [Jmeter]jmeter之脚本录制与回放,优化(windows下的jmeter)

    一.录制脚本: 1.启动jmeter 2.添加线程组 3.添加http代理 4.配置代理 a.jmeter侧(注意:lest plan content这里需要选择目标控制器,本文即测试计划中需要选择的 ...

  5. windows 下 修改jmeter ServerAgent端口

    from:https://blog.csdn.net/wanglha/article/details/51281462 如果想修改UDP和TCP的端口该如何做呢,可以采用如下的方式: CMD命令进入S ...

  6. windows下Jmeter压测端口占用问题

    https://blog.csdn.net/weixin_43757847/article/details/88188091 1 前情提要人脸识别项目中,云平台新增了人脸识别的校验接口.考虑到存在大量 ...

  7. Linux下运行Jmeter测试所遇问题汇总

    一.安装及启动Jmeter  本文原创,专为光荣之路公众号所有,欢迎转发,但转发请务必写出处!  0.下载及安装 下载地址及Linux命令 wget http://mirrors.cnnic.cn/a ...

  8. 【后台测试】Linux下小试jmeter

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处.  转载请注明出处:http://www.cnblogs.com/by-dream/p/5784288.html 前言 上一篇主要讲了在Window ...

  9. Linux下搭建jmeter

    最近做性能测试,Windows下跑jmeter,并发跑不到100,CPU就100%,这还是在命令行模式下,真心头大.没办法,只好搞个Linux来跑了,下面说下如何玩转的. 1.下载Ubuntu操作系统 ...

随机推荐

  1. eclipse中将web项目部署到tomcat

    eclipse中将web项目部署到tomcat. myeclipse部署WEB项目到tomcat比较方便,但eclipse貌似默认是不会替你将web自动部署到tomcat下的.你Run as该web项 ...

  2. 2016/05/25 empty() 与 isset()的区别

    对于初学php的人来说,empty()和和isset()用法的区别是很难搞清楚的,他们的用法的差别不仔细去琢磨的话确实很难弄清楚. 先说一下他们的共同点: 都可以判定一个变量是否为空: 都返回bool ...

  3. Deep Learning 28:读论文“Multi Column Deep Neural Network for Traffic Sign Classification”-------MCDNN 简单理解

    读这篇论文“ Multi Column Deep Neural Network for Traffic Sign Classification”是为了更加理解,论文“Multi-column Deep ...

  4. java对象序列化的理解

    1.java中的序列化时transient变量(这个关键字的作用就是告知JAVA我不可以被序列化)和静态变量不会被序列          化(下面是一个测试的例子) (实体带versionUUID,便 ...

  5. poyla计数问题

    关于poyla定理,首先推荐两篇很好的文章阅读 2001-----符文杰<poyla原理及其应用> 2008-----陈瑜希<poyla计数法的应用> 在然后就是自己的学习笔记 ...

  6. .NET CORE技术路线图

    分享一张图.来自微信.不做解释.

  7. bind: Invalid argument

    出现此问题在于,listen函数在socket函数和bind函数之间. 例: /*客户端程序开始建立sockfd描述符*/ listenfd = socket(AF_INET,SOCK_STREAM, ...

  8. 实验 - cut的应用

    题目一: 1.1 创建一个通讯录 vi phone.txt #进行编辑 cat phone.txt #查看内容 2.1 取出手机号码 cut -f phone.txt 3.1 取出手机前三位 cut ...

  9. TRACE Method 网站漏洞,你关闭了吗[转]

    危险:该漏洞可能篡改网页HTML 源码 最近采用360 web scan 对服务器进行扫描.发现漏洞.TRACE Method Enabled 安全打分98分.前一阵有网页JS被人篡改,可能就是从这个 ...

  10. JDK与JRE、JVM三者间的关系及JDK的安装部署

    JDK与JRE.JVM三者间的关系及JDK的安装部署 一.JDK与JRE.JVM三者间的关系 JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了 ...