以下内容亲测,如果不对的地方,欢迎留言指正,不甚感激。^_^祝工作愉快^_^
Jmeter是一个非常好用的压力测试工具。 Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好。
压力测试,就是被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况)
比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站是否会崩溃。
做压力测试,一般要使用工具, 人工是没办法做的。最常用的工具是LoadRunner, 但是LoadRunner毕竟是收费软件,而且使用上也比较复杂。 现在越来越多的人开始使用Jmeter来做压力测试。 免费, 而且使用上非常简单。
一个简单的压力测试步骤:
1. 写脚本
2. 场景设计
3. 使用控制器,来控制模拟多少用户。
4. 使用监听器, 查看测试结果
本章目的让读者学会使用jmeter进行简单的接口测试和压力测试的一些方法。
作为一个Linux新手,在使用jdk时,或许会安装配置多次仍然导致无法使用情况,请按如下步骤一步一步安装并配置
相关软件下载地址
JDK:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html?ssSourceSiteId=ocomen
JMeter:http://jmeter.apache.org/download_jmeter.cgi
JMeter插件:http://jmeter-plugins.org/downloads/all/
3.1.1 JDK的安装和环境变量配置
1、JDK版本选择
JDK:在作者编写该书时JDK版本已经更新到9(不支持jmeter3),本书就以jdk8版本为例,该版本即可以支持jmeter3也支持最新版jmeter4,如下图:
点击图标2按钮页面跳转到下载页面。
选择Linux版本的tar.gz文件点击下载到指定目录。
如果需要下载早期版本,在JDK下载页面中下拉到页面底部选择早起版本下载链接选在自己需要的版本:
2、查看下载JDK文件
Ubuntu系统下载文件默认放在“下载”目录中,即:
进入下载目录后查看已经下载完成的文件:jdk-8u151-linux-x64.tar.gz
3、安装JDK并配置环境变量
进入终端查看已经下载完成的文件:使用ctr+alt+t打开终端,进入终端。
1)在终端完成如下操作:
root@ranxf:/home/ranxf/下载# tar -zvxf jdk-8u151-linux-x64.tar.gz # 解压文件到当前目录;
root@ranxf:/opt# tar -zvxf jdk-8u151-linux-x64.tar.gz -C /opt/ # 解压文件到指定目录,加参数-C,在此说明,我喜欢将新安装的文件放置在opt下,可根据个人喜好新建目录。
2)查看解压后的JDK目录:
3)配置环境变量:
进入vim编辑器后,按键盘“i”键为编辑模式,输入上面内容,保存前退出编辑按冒号“:wq”。
让环境变量立即生效:
总结,本节内容主要讲解安装JDK和在Ubuntu中配置jdk的环境变量,同时熟悉Ubuntu系统下的相关操作。
3.1.2 Jmeter的安装和目录解析
1、版本选择:
目前Jmeter版本已经更新到4.0版本了。
核心改进:
JMeter现在支持JAVA 9,
新的边界提取元素可用于提供更好的性能提取容易;
新的JSON声明元素可用于在JSON响应中声明;
新的精确的吞吐量计时器元素可以产生具有给定恒定吞吐量的到达;
JMS点对点采样器通过读取,浏览和清除选项得到了增强;
新添加的控制器现在默认使用Expression,这是性能最佳的选项。
UI也有了改变
有兴趣的同学可以到官网查看更多的内容。
为了在学习过程中,读者能找到更多的资料,本书将采用jmeter3.1版本为例:
到上面下载链接下载二进制文件apache-jmeter-3.1 .tgz到下载目录。
在终端直接解压apache-jmeter-3.1 .tgz到/opt/目录下即可安装成功:
看见以上内容已经安装成功。
2、jmeter目录解析
bin 包含启动、配置等相关命令
docs 官方本地文档目录
extras 辅助库
lib 核心库,包含JMeter用到的各种基础库和插件
licenses 包含non-ASF软件的许可证
printable_docs 可打印版本文档目录
LICENSE JMeter许可说明
NOTICE JMeter简单信息说明
README.mdJMeter官方基本介绍
下面我们重点看一下bin目录
bin目录下我们最关注几个文件:
jmeter.properties JMeter核心配置文件,各种配置基本在这完成
log4j.conf JMeter日志配置管理
jmeter.log JMeter运行日志记录,什么输出信息、警告、报错都在这里进行了记录
jmeter.sh linux下jmeter启动文件
shutdown.sh Linux下jmeter关闭文件
stoptest.sh Linux下jmeter测试停止文件
jmeter-server Linux下jmeter服务器模式启动文件
注:每一个.sh文件都对应一个.cmd文件,.cmd是Windows下的对应功能的文件。
3.1.3 Jmeter组件介绍
在jmeter中提供了一系列的不同的组件,每一种组件都提供了某类功能的实现,用于支持性能测试的实施。
学习、研究jmeter之前,深入了解jmeter的基本组件及其作用是必须的。接下来我们开始讨论基于jmetere进行性能测试必须掌握的组件,以便大家逐步掌握jemter的核心基本能力。
下面的几个组件是入门jmeter必须掌握的:
Thread Group
线程组是一系列线程的集合,每一个线程代表着一个正在使用应用程序的用户。在jmeter中,每个线程意味着模拟一个真实用户向服务器发起请求。
在jmeter中,线程组组件运行用户设置线程数量、初始化方式等等配置。
例如,如果你设置线程数为100,那么jmeter将创建并模拟测试100个用户请求到服务器端。
Samplers
我们常用的jmeter测试有HTTP、FTP、JDBC协议,以及其他各种支持的协议。
我们已经知道线程组件用于模拟用户请求至服务器端。
如何在线程组件中实现某种请求类型(比如如何发起HTTP请求?)。
我们将如何利用Samplers组件的元素来实现各类请求类型。
我们先看一下在jmeter中Samplers组件已经实现了哪些协议的支持。
HTTP Request
HTTP Request提供了HTTP/HTTPS协议的测试支持能力。
下面我们一起看看HTTP Request元素的基本配置说明,了解下基本的功能。
FTP Request
FTP Request元素提供了测试ftp服务器的能力,这个元素让我们能够去测试ftp的上传、下载功能。
下面我们看一下ftp元素的基本配置说明:
Listeners
在jmeter中Listeners提供了执行结果生成和显示能力的支持,提供了树形结构、图形结构、表结构和聚合模式。
树形结构:
图形结构:
表结构:
聚合报告:
聚合报告里面的值足以作为测试报告中的值了,期待吧……
Configuration
配置元件包含了Samplers下各种Sampler的默认配置设置,如果有配置默认配置,在Sampler下对应的sampler就会使用该默认配置。
3.1.4 jmeter安装插件管理
从http://www.jmeter-plugins.org/install/Install/ 下载插件管理包,如图:
将下载的包放至jmemter解压根目录的lib/ext下即可。插件安装后的内容后期补上,初学者可以进入下一节。
总结
本次就jmeter相关软件的安装和配置及关键配置项进行了说明,大家可以在掌握基本功能后深入的去研究下其他的一些配置,以便进一步的熟悉jmeter的原理和应用,初学者可以暂时不用考虑插件的功能,等待理清jmeter的基本接口测试之后再回头添加插件的一些高级功能。