简介

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. unable to instantiate activity...

    Activity跳转到Activity,后来由于项目需要将第二个Activity改成继承FragmentActivity,跳转报错...无法初始化Activity,找不到class云云.. 最后是将b ...

  2. 设计模式-(9)中介者模式(swift)

    在对象去耦合的模式中,有两种模式:中介者模式,观察者模式 一,概念 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 这个 ...

  3. CentOS 7.2更改网卡名称

    背景 没啥背景,就是VMWare装的CentOS虚拟机的自带网卡名有点乱,想重新定义一下. 环境 1.VMWare虚拟机 6张网卡 2.系统 [root@localhost ~]# cat /etc/ ...

  4. bzoj1934: [Shoi2007]Vote 善意的投票&&bzoj2768:[JLOI2010]冠军调查

    get到新姿势,最小割=最大流,来个大佬的PPT 这道题的做法是将st和1的xpy连,0的xpy和ed连,xpy之间jy连双向边,然后呢答案就是最小割. #include<cstdio> ...

  5. VMware克隆虚拟机后网络配置

    修复克隆虚拟机文件 # vi /etc/udev/rules.d/70-persistent-net.rules # PCI device 0x8086:0x100f (e1000) SUBSYSTE ...

  6. Windows7下安装golang语言开发环境和revel框架

    1.下载先去下载32位或64 golang window 安装包 并安装下载地址:https://www.golangtc.com/download 本人更改了安装地址为 D:\GO\Go 2. go ...

  7. VS2013插件开发

    一.功能描述 项目中有一个AppSettings.xml文件,当这个文件有添加新元素的时候,将该添加的内容自动同步到其他目录下的AppSettings.xml文件. 二.插件模板选择 要开发VS插件需 ...

  8. Gerrit+apache+H2数据库简单安装配置及建库流程

    Gerrit 是一个基于 Web 的代码评审和项目管理的工具,面向基于 Git 版本控制系统的项目.因此需要Apache.Mysql.GIT等相关软件的支持 系统配置: 新装的UBANTU LINUX ...

  9. asp.net MVC Model 类的主键 int类型、string类型、GUID类型。

    在使用asp.net mvc进行定义 模型类的时候,一般情况下,我们都会定义一个属性为 int iD{get;set;} 或为int ClassNameID {get;set;},在这种情况下 1.I ...

  10. TS数据流PAT和PMT分析(转载)

    转自:http://www.cnblogs.com/hjj801006/p/3837435.html TS流,是基于packet的位流格式,每个packet是188个字节或者204个字 节(一般是18 ...