Apache JMeter是一款开源性能测试工具,全部功能使用Java编写,可用于进行性能测试。JMeter最初被设计用于Web应用测试,之后被扩展至多个测试领域。

Apache jmeter 可以用于对静态资源的和动态资源(包括WebServices(SOAP/REST)、动态Web语言(PHP、Java、ASP.NET、文件、及其它内容)、Java对象、数据库及数据查询、FTP服务器等等)进行性能测试。它可以用于对服务器、集群,网络 或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

本篇文章主要介绍一下JMeter的安装及基本使用方法。

1.安装

JMeter的官方网址为http://jmeter.apache.org/

下载地址为http://jmeter.apache.org/download_jmeter.cgi

JMeter目前的最新版本为2.13,对应的Java版本需要至少为Java6。下载完成后,直接解压缩,在jmeter的bin目录下,找到jmeter.bat文件,双击运行

主界面如图所示

2.基础知识

程序运行以后,我们可以看到,JMeter是以测试计划的形式组织测试的。在测试计划上点击右键,选择“添加”,我们可以看到,JMeter主要包含了以下内容的组件:

线程组(Threads) - 代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,所有请求均需要被线程组包含。

测试片段(Test Fragment) - 测试片段是一种特殊类型的控制器,它在测试计划中与线程组同级。测试片段与线程组的区别在于:在一个测试计划中,线程组自身是会被执行的,而测试片段自身并不会被执行。只有当测试片段被一个模块控制器引用,或被包含在一个控制器中时,才会被执行。简单的说,我们可以将线程组理解为入口函数,将测试片段理解为私有函数,测试片段只有在被调用时,才会被执行。

配置元件 – 配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。

定时器 -定义请求之间的延迟间隔。

前置处理器、后置处理器 - 负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。

断言 - 用来判断请求响应的结果是否如用户所期望的。它可以用来检查测试的有效性,隔离问题域,在确保功能正确的前提下执行压力测试。

监听器 - 负责收集测试结果,同时以多种方式进行显示。

我们先添加一个线程组,右键进行查看,线程组下包含了另外两个组件:

逻辑控制器 - 可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。

采样器(Sampler) - 用于发送各种请求,并以该请求为基础,进行性能测试。

3.简单示例

下面我们以单一网址的并发访问为例,使用JMeter进行一个简单的性能测试。

1)建立线程组

在建立好测试计划后,首先我们建立一个线程组,并进行如下设置

其中,

线程数-表示JMeter将发起多少个线程进行目标访问

Ramp-Up Period – 表示JMeter将在多长时间(以秒为单位)内将这些线程发起完毕

循环次数 – 表示JMeter将对当前的线程组进行多少次循环访问

2)建立采样器(Sampler)

向线程组中添加一个Http请求的采样器

配置如下(JMeter的大量并发访问会被某些网站认定为恶意攻击而进行屏蔽,这里建议选用自己的网站或在localhost上进行操作)

3)添加监听器

这里我们添加一个“图形结果”和一个“用表格查看结果”。

4)运行测试,查看结果

运行测试,查看图形结果,我们可以看到所有访问的数据量、访问时间平均值、中值、访问的偏离量(访问时间与中值时间的差)、吞吐量。

查看表格结果,我们可以看到我们所发起的线程、开始时间、采样时间、状态(是否访问成功)、访问传输的数据量、访问延时、以及访问时间等内容。

5)结果分析

通过监听器获得的结果,可以进行导出,之后我们再对这些结果做进一步的数据分析,即可估算衡量我们网站的性能情况。

下一篇文章,将对如何使用变量对被访问url进行配置做介绍。

JMeter性能测试基础 (1) - 安装及简单使用的更多相关文章

  1. JMeter性能测试基础 (3) - 使用参数文件做搜索引擎性能对比

    本篇文章主要对如何在JMeter中进行URL的参数进行配置进行介绍,通过CSV文件配置参数数据,对baidu.sogou.haosou进行搜索性能对比测试. 1.建立测试计划.线程组,并在线程组下添加 ...

  2. JMeter性能测试基础 (2) - 变量的使用

    在使用JMeter进行性能测试时,一般情况下要保证样本容量尽可能大,这样才能得到一个比较合理的结果.也就是说,我们不能只对同一个URL进行多次访问,而是要对统一模块下尽可能多的URL进行访问,以取得相 ...

  3. JMeter性能测试基础 (4)-使用JMeter录制测试脚本

    在进行压力测试时,由于很多web页面包含了Ajax异步请求等内容,为模拟用户真实输入,除了对html的访问外,还需要将其它的访问考虑入内,这时最好的办法就是对实际访问过程中的所有请求进行录制. 例如, ...

  4. Jmeter性能测试基础

    压力测试   压力测试分两种场景:一种是单场景,压一个接口的:第二种是混合场景,多个有关联的接口.压测时间,一般场景都运行10-15分钟.如果是疲劳测试,可以压一天或一周,根据实际情况来定. 压测任务 ...

  5. JMeter各个基础组件简介

    刚从LoadRunner转到JMeter,对JMeter的各种概念比较懵.在这里记录下.欢迎大家关注我的个人微信号:测试杂货铺. JMeter的各个功能都是它的组件来完成或实现的,下面来对JMeter ...

  6. Jmeter的好搭档Badboy的安装与简单使用

    前提: Windows7  64位 Jdk 1.8 1.在官网上下载badboy并安装 网址:http://www.badboy.com.au/download/add 我下载的是最新的2.2.5这个 ...

  7. JMeter性能测试的基础知识和个人理解

    JMeter性能测试的基础知识和个人理解 1. JMeter的简介   JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常 ...

  8. Linux 性能测试工具 sysbench 的安装与简单使用

    文章目录 Linux 性能测试工具 sysbench 的安装与简单使用        一 背景        二 实验环境            2.1 操作系统            2.2 其他配 ...

  9. Jmeter性能测试插件jpgc的安装

    一.获取插件包 1.访问官网获取 官网地址:https://jmeter-plugins.org/install/Install/ 2.百度网盘下载 链接:https://pan.baidu.com/ ...

随机推荐

  1. sqlserver 索引优化 CPU占用过高 执行分析 服务器检查

    原文:sqlserver 索引优化 CPU占用过高 执行分析 服务器检查 1. 管理公司一台服务器,上面放的东西挺多的.有一天有个哥们告诉我现在程序卡的厉害.我给他说,是时候读点优化的书了.别一天到晚 ...

  2. vmware虚拟机中的系统(例如kali),输入内容有延迟和卡顿的解决方案

    实际上是因为内存在vmware里设置小了,设置得大点即可, 比如我的kali之前是2gb,然后之前倒是没出过这种问题,但是这次更新系统后可能出了一些问题就变得卡了, 所以我就把kali的内存从2gb调 ...

  3. vue复习(一)

    一.认识Vue 定义:一个构建数据驱动的Web界面的渐进式框架 优点: 1.可以完全通过客户端浏览器渲染页面,服务器端只提供数据 2.方面构建单页面应用程序(SPA) 二.引入Vue <!DOC ...

  4. python之进程池与线程池

    一.进程池与线程池介绍 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 当并发的任务数远远超过了计算机的承受能力时,即无法一次性开启过多的进程数或线程数时就应该 ...

  5. Android中使用MediaCodec硬件解码,高效率得到YUV格式帧,快速保存JPEG图片(不使用OpenGL)(附Demo)

    MediaCodec的使用demo: https://github.com/vecio/MediaCodecDemo https://github.com/taehwandev/MediaCodecE ...

  6. Winfrom Panel Scroll End 的实现

    场景:在一个panel里面有非常多的自定义绘制的控件,在拖拉滚动条的时候,控件的画面上有残影 不知道大家遇到过这种情况没,一直做web的winform经验太少,有更好的解决办法请贡献 首先放出我的解决 ...

  7. 15-RUN vs CMD vs ENTRYPOINT

    RUN.CMD 和 ENTRYPOINT 这三个 Dockerfile 指令看上去很类似,很容易混淆.本节将通过实践详细讨论它们的区别. 简单的说: RUN 执行命令并创建新的镜像层,RUN 经常用于 ...

  8. ssh连接超时自动断掉的解决办法

    最近开始使用阿里云服务器ECS,系统是CENTOS7.4 ,通过SSH连接上自动创建的实例后,几分钟不操作,就自动断开,提示“信号灯时间已到”,非常影响工作. 解决办法: 默认镜像创建的实例,SSH服 ...

  9. alibaba/canal 阿里巴巴 mysql 数据库 binlog 增量订阅&消费组件

    基于日志增量订阅&消费支持的业务: 数据库镜像 数据库实时备份 多级索引 (卖家和买家各自分库索引) search build 业务cache刷新 价格变化等重要业务消息 项目介绍 名称:ca ...

  10. docker 部署 zookeeper+kafka 集群

    主机三台172.16.100.61172.16.100.62172.16.100.63Docker 版本 当前最新版 # 部署zk有2种方法 ## 注意 \后不要跟空格 一 . 端口映射 172.16 ...