目录:
一、Jmeter下载及安装部署
二、Jmeter基本使用
三、认识Jmeter简单的词含义
四、参数化的几种方法
五、Jmeter一些常用的插件
六、性能指标
七、测试结果分析
写在前面:性能测试辅助工具:
1、fiddler抓包工具,通过抓包工具可以得到请求方法、URL、参数、cookie和session值等信息。当然这些信息可以是开发给或者是参考性能需求文档。fiddler也可以通过放入插件,生成 .jmx文件,用Jmeter打开脚本,然后去除一些没有的脚本就可以跑起来。这个操作比较简单,我们可以通过百度获取插件及操作流程。
2、Badboy录制脚本是极其方便的脚本获得方式。便捷性易用性是录制的极大优点。
下载地址:http://www.badboy.com.au/。下面将讲到如何使用Badboy进行录制脚本。
一、Jmeter下载及安装部署
下载地址: http://jmeter.apache.org/download_jmeter.cgi
JMeter解压之后,…\apache-jmeter-4.0\bin\jmeter.bat,打开直接使用,无需安装。
下载安装JDK
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
注意根据Jmeter要求的Java版本来下载对应的JDK。如下图。
环境变量设置
jdk设置:
系统变量新建JAVA_HOME,值为:jdk安装目录,如:C:\Program Files\Java\jdk1.8.0_152
系统变量新建CLASSPATH,值为: %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
修改系统变量“Path”的值,开始处加上:%JAVA_HOME%/bin
Jmeter设置
系统变量新建JMETER_HOME, 值为Jmeter路径,如:D:\apache-jmeter-4.0
修改CLASSPATH,添加:%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar
二、Jmeter基本使用
1、Jmeter初次使用,如果设置较大的线程,工具容易卡死,导致压测很容易无法完成。
解决办法:修改jmeter安装目录中的bin目录下的jmeter.bat文件,调整内存大小,修改完成后,关闭文件,重启jmeter即可
这部分将以实例来切入,以如何设计一个基本的Jmeter测试脚本,需要解决的几个问题展开:
如何发HTTP请求?
首先添加线程组,之后添加以下三项:
HTTP请求默认值 (Add->Config element)
HTTP信息头管理器 (Add->Config element)
HTTP请求 (Add->Sampler)
添加HTTP信息头管理器,这个录制的时候会自动生成。如果为非录制,可以通过抓包工具(如Fiddler查看),也可以通过浏览器查看(F12)。
HTTP请求默认值可以设置其作用范围内的所有HTTP的默认值,包括HTTP请求的host、端口、协议等
当然,如果http请求需要有登录授权做前提,可以添加一个HTTP授权管理器。(Config Element-> HTTP Authorization Manager)
到此处,一个基本的HTTP请求已经配置完了,简单总结下,a)就是HTTP请求需要设置server信息,包括请求的协议(http),请求地址,端口号,HTTP请求的方法(get,post)及请求路径,同时根据需求来设置随请求发送的参数。b)进一步如果一个线程组下设置了多个HTTP请求,这些请求都共享一个Server地址,则可以添加HTTP请求默认值,用来统一设置server信息,主要是协议,server地址,端口号。 c) 最后就是根据请求头(request headers),来设置一个HTTP信息头管理器。
三、认识Jmeter简单的词含义
1、添加监听器,常用的:线程组->监听器->聚合报告
Label – Sample的标签.
Average – 平均响应时间
Median – 50%的请求所用的时间不超过该值
90% Line - 90%的请求所用的时间不超过该值
Min – 最小响应时间
Max – 最大响应时间
Error % - 错误率
Throughput – 吞吐量,即每秒多少请求
Sent Kb/sec – 吞吐量,每秒多少Kb
还可添加其他监听器:
查看结果树
表格方式查看结果
总结报告
响应时间图
2、如何进行断言
常用断言:线程组->添加断言->响应断言
注意点:
当模匹配规则为“包括”和“匹配”时,支持正则表达式;当为“Equals”或“Substring”时是完全匹配。
四、参数化的几种方法
(一)CSV Data Set Config的设置(从csv文件导入参数)
1.创建一个csv文件,内容为参数的值集,每一个参数占一列,第一行就开始写参数值,不要写参数名,“测试用户.csv”的首列内容为usename,第二列为password
2.在测试计划右键添加一个配置元件“config element”->“CSV Data Set Config”
3.Filename处填写csv文件的完整路径
4.Virable Names中填写变量名,如果csv文件中有多个变量,则用逗号隔开
(二)从数据库获取,这个暂未用到,后面再学习。
(三)Jmeter自带的随机生成函数
1、操作步骤如下,如果操作类型为登录操作,那么我们需要从数据库获取用户名和密码,这种随机生成的方法就不合适使用。这种方法适用的类型,比如手机号码,值填入132${__Random(00000000,99999999,),前面三位数字固定(手机号码校验规则),后面8位数字随机生成。
五、Jmeter一些常用的插件
下载地址:jmeter-plugins.org
安装:下载后文件为plugins-manager.jar格式,将其放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可。
启动jemter,点击选项,最下面的一栏,如下图所示:
Installed Plugins(已安装的插件):即插件jar包中已经包含的插件,可以通过选中勾选框,来使用这些插件;
Available Plugins(可下载的插件):即该插件扩展的一些插件,可以通过选中勾选框,来下载你所需要的插件;
Upgrades(可更新的插件):即可以更新到最新版本的一些插件,一般显示为加粗斜体,可以通过点击截图右下角的Apply Changes and Restart Jmeter按钮来下载更新;
二、Transactions per Second
即TPS:每秒事务数,性能测试中,最重要的2个指标之一。该插件的作用是在测试脚本执行过程中,监控查看服务器的TPS表现————比如整体趋势、实时平均值走向、稳定性等。
jmeter本身的安装包中,监视器虽然提供了比如聚合报告这种元件,也能提供一些实时的数据,但相比于要求更高的性能测试需求,就稍显乏力。
三、Response Times Over Time
即TRT:事务响应时间,性能测试中,最重要的两个指标的另外一个。该插件的主要作用是在测试脚本执行过程中,监控查看响应时间的实时平均值、整体响应时间走向等。
使用方法如上,下载安装配置好插件之后,重启jmeter,添加该监视器,即可实时看到实时的TRT数值及整体表现。
四、PerfMon Metrics Collector
即服务器性能监控数据采集器。在性能测试过程中,除了监控TPS和TRT,还需要监控服务器的资源使用情况,比如CPU、memory、I/O等。该插件可以在性能测试中实时监控服务器的各项资源使用。
下载地址:http://jmeter-plugins.org/downloads/all/或链接:http://pan.baidu.com/s/1skZS0Zb 密码:isu5
其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端的插件,ServerAgent是服务端的插件。
下载成功后,复制JmeterPlugins-Extras.jar和JmeterPlugins-Standard.jar两个文件,放到jmeter安装文件中的lib/ext中,重启jmeter,即可看到该监视器插件。
将ServerAgent-2.2.1.jar上传到被测服务器,解压,进入目录,Windows环境,双击ServerAgent.bat启动;linux环境执ServerAgent.sh启动,默认使用4444端口。
给测试脚本中添加jp@gc - PerfMon Metrics Collector监听器,然后添加需要监控的服务器资源选项,启动脚本,即可在该监听器界面看到资源使用的曲线变化。如下图所示:如果出现提示响应超时,我们可以尝试修改端口。
六、性能指标
1、参考性能测试需求文档
2、常用指标:响应时间、吞吐量、TPS、内存监控各项数据。
七、测试结果分析
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190430115043391.?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1YW5nWmhvbmdZdTUyMA==,size_16,color_FFFFFF,t_70