JMeter性能测试基础 (1) - 安装及简单使用
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) - 安装及简单使用的更多相关文章
- JMeter性能测试基础 (3) - 使用参数文件做搜索引擎性能对比
本篇文章主要对如何在JMeter中进行URL的参数进行配置进行介绍,通过CSV文件配置参数数据,对baidu.sogou.haosou进行搜索性能对比测试. 1.建立测试计划.线程组,并在线程组下添加 ...
- JMeter性能测试基础 (2) - 变量的使用
在使用JMeter进行性能测试时,一般情况下要保证样本容量尽可能大,这样才能得到一个比较合理的结果.也就是说,我们不能只对同一个URL进行多次访问,而是要对统一模块下尽可能多的URL进行访问,以取得相 ...
- JMeter性能测试基础 (4)-使用JMeter录制测试脚本
在进行压力测试时,由于很多web页面包含了Ajax异步请求等内容,为模拟用户真实输入,除了对html的访问外,还需要将其它的访问考虑入内,这时最好的办法就是对实际访问过程中的所有请求进行录制. 例如, ...
- Jmeter性能测试基础
压力测试 压力测试分两种场景:一种是单场景,压一个接口的:第二种是混合场景,多个有关联的接口.压测时间,一般场景都运行10-15分钟.如果是疲劳测试,可以压一天或一周,根据实际情况来定. 压测任务 ...
- JMeter各个基础组件简介
刚从LoadRunner转到JMeter,对JMeter的各种概念比较懵.在这里记录下.欢迎大家关注我的个人微信号:测试杂货铺. JMeter的各个功能都是它的组件来完成或实现的,下面来对JMeter ...
- Jmeter的好搭档Badboy的安装与简单使用
前提: Windows7 64位 Jdk 1.8 1.在官网上下载badboy并安装 网址:http://www.badboy.com.au/download/add 我下载的是最新的2.2.5这个 ...
- JMeter性能测试的基础知识和个人理解
JMeter性能测试的基础知识和个人理解 1. JMeter的简介 JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常 ...
- Linux 性能测试工具 sysbench 的安装与简单使用
文章目录 Linux 性能测试工具 sysbench 的安装与简单使用 一 背景 二 实验环境 2.1 操作系统 2.2 其他配 ...
- Jmeter性能测试插件jpgc的安装
一.获取插件包 1.访问官网获取 官网地址:https://jmeter-plugins.org/install/Install/ 2.百度网盘下载 链接:https://pan.baidu.com/ ...
随机推荐
- 20155327Exp6 信息搜集与漏洞扫描
20155327Exp6 信息搜集与漏洞扫描 实验过程 一.信息搜集 whois 在kali终端输入whois 网址,查看注册的公司.服务.注册省份.传真.电话等信息. dig或nslookup域名查 ...
- 【HNOI2015】亚瑟王
题面 题解 考虑进行\(dp\). 设\(f[i][j]\)表示前\(i\)张卡中有\(j\)张被触发的概率. 我们可以知道第\(i\)张卡不被触发的概率为\((1 - p_i) ^ {r - j}\ ...
- Kubernetes学习之路(二)之ETCD集群二进制部署
ETCD集群部署 所有持久化的状态信息以KV的形式存储在ETCD中.类似zookeeper,提供分布式协调服务.之所以说kubenetes各个组件是无状态的,就是因为其中把数据都存放在ETCD中.由于 ...
- element-ui 点击行如何获取table的行索引
文档中有一个tableRowClassName方法,可以获取到当前行的index, tableRowClassName ({row, rowIndex}) { //把每一行的索引放进row row.i ...
- 团队合作开发git冲突解决方案 Intellij IDEA
https://blog.csdn.net/antony9118/article/details/52524873 注:因为我使用的是 idea 2018.1.2的版本,所以在操作上有些变化 将某些操 ...
- 使用云负载时将http的请求转发至https时报错:“ERR_TOO_MANY_REDIRECTS”!
问题描述: 新业务正式环境部署,使用云负载(有http监听也有https监听)在我向我的 Web 服务器添加重定向逻辑后,我的网站停止工作,并且我收到错误 ERR_TOO_MANY_REDIRECTS ...
- 微软Word制作自己的模板
我们在用Word的时候,很多时候需要一定的格式. 这个时候,*.dotx文件出场了!它将带给我们自己的模板. 步骤: 首先,新建一个文档,选择空白文档: 图片大就大吧,不要在意这些细节. 编辑一下,保 ...
- SQL Operations Studio的安装和使用
之前管理和访问SQL SERVER使用的自然是SSMS,功能确实很强大的一个数据库图形化管理软件,但是SSMS有个问题就是体积超级大,启动速度也就比较慢.今天我正好要学习一些T-SQL的内容,在微软的 ...
- 基于C#的机器学习--目录
转载请注明出处:https://www.cnblogs.com/wangzhenyao1994/p/10223666.html 文章发表的另一个地址:https://blog.csdn.net/wyz ...
- ubuntu下import matplotlib错误解决办法
环境:ubuntu16.04,python2.7,tensorflow1.4.0 问题: ImportError: No moudule named _tkinter, please install ...