简介

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. 前台传JSON到后台

    现在,有一个需求,我需要将表格中选中行的数据中的一部分传直接传到控制器中,然后保存到另外一张表中.一开始,我就想到在前台使用ajax构造json数据,然后控制器直接通过list接收. 选中界面中的行, ...

  2. 当你使用LINQ做底层时,最好设计一个工厂,不要把LINQ的动作暴露给业务层

    1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: ...

  3. [办公自动化]企业网IE多版本引发的网页无法访问

    今天同事的某个网页无法打开,但是在我的计算机上该网站确实又能打开. 去看了一下,他的其他网站都正常.确认网络本身没有问题. 最后,看了一下IE版本,IE11. 只好尝试一下兼容性视图的设置. 设置了一 ...

  4. Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE

    解决方法: http://my.oschina.net/u/242764/blog/375909 当我们安装好Genymotion后,把Android运用部署到上面调试时,console 控制台会报错 ...

  5. 打造字符界面的多媒体Linux系统

    0 环境与目标 硬件:ThinkPad R52笔记本一台. 目标:字符界面的Linux系统,同时可以看图片,听音乐,看视频,无线上网,重要的是可以听着音乐编程了! 注意:本文打造的系统主要是供一个工程 ...

  6. 定时任务 bash 对远程数据库 备份 读写

    1g表 每行都有可能被更新,故全表备份 检测备份是否在进行 [root@hadoop1 ~]# netstat --numeric-ports | grep 3306tcp        0      ...

  7. CRM 2011 开发中遇到的问题小结

    1.将Retrive 方法改成 RetrieveMultiple时 如果指定的ColumnSet 没有指定主键(entiryname+id),要显示增加实体的主键.否则在调用 Retrieve方法时返 ...

  8. problem in Sourcetree

    1.The date is commit date not the date of author 2.The log line is ordered  by time, actually it sho ...

  9. 第十八周 Leetcode 72. Edit Distance(HARD) O(N^2)DP

    Leetcode72 看起来比较棘手的一道题(列DP方程还是要大胆猜想..) DP方程该怎么列呢? dp[i][j]表示字符串a[0....i-1]转化为b[0....j-1]的最少距离 转移方程分三 ...

  10. hdu 1284

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...