JMeter简单的使用(3.0+)-性能测试(压力)

JMeter简单的性能测试使用介绍

工作需要,写了一份JMeter简单使用的文档,删改部分工作相关的图,应该没大影响。

下载JMeter

下载原始Jmeter文件

最新的3.1的下载地址如下

Windows下:

http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-3.1.zip

Linux下:

http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-3.1.tgz
下载后解压文件即可,注意JMeter需要java环境。

安装必要插件jmeter-plugins(windows下)

下载插件管理器

http://www.jmeter-plugins.org/get/
将下载所得的jar包放在{jmeter}/bin/lib/ext目录下

打开GUI模式下的jmeter下载所需插件

选择菜单栏中的“选项”,选择“Plugings Manager”,如图
这里写图片描述

选择所需插件安装

打开插件管理器后选择Available Plugings,勾选3 Basic Graph 以及Custom Thread Groups,点击Apply Changes and Restart JMeter,等待下载完成重启JMeter即可。
这里写图片描述

安装必要插件jmeter-plugins(Linux下)

查找并复制jar包

在windows的界面下,安装好插件后,根据上图的Review Changes中的信息,在{jmeter}/bin/lib/ext中找到新增jar包,复制到linux上。

使用JMeter测试

GUI模式下测试接口

添加线程组

在GUI模式,打开JMeter。右键点击“测试计划”,选择“添加”→“Threads(Users)”→“线程组”,如图所示:
这里写图片描述

添加HTTP请求

线程组属性不做修改,右键点击新添加的“线程组”,选择“添加”→“Sampler”→“HTTP请求”,如图所示:
这里写图片描述

完成HTTP请求

根据请求信息,完成“HTTP请求”:修改名称;注意IP和端口号,在路径栏补齐除ip端口号的剩余路径;Implementation使用httpClient4;使用https的协议需要在协议栏填写https;选择请求的方法,多数为POST或这GET;若请求体中含有中文,最好在content encoding中填写utf-8;请求参数可以选择Parameters或者Body Data,Parameters的参数更加直观,Body Data的更加方便参数修改且参数以parameter1=value1&mmeter2=value2形式。

添加查看结果数

右键点击“HTTP请求”,选择“添加”→“监听器”→“查看结果树”,如图所示:
这里写图片描述

添加证书文件

协议为Https的请求还需要加载证书,如果为https协议,在没有加载证书的情况下,进行了测试,最好保存测试计划,然后重启JMeter,重启后先加载证书,再进行测试,否则,报错。选择“选项”→“SSL管理器”,如图所示:
这里写图片描述

选择pkcs12的证书文件

使用pkcs12的证书文件,jks直接用是不行的,需要java打包下

启动测试

点击“启动”按钮,启动测试,如图所示
这里写图片描述

输入pcks12的密码

启动测试后,弹出“KeyStore Password”,输入pcks12生成时用的密码。
这里写图片描述

测试后查看结果树

测试结束后,点击“查看结果树”,可以看到当前测试运行了一个实例,选中该结果,点击“响应数据”查看响应的文本,检查文本是否为正确的响应数据,JMeter会把所有响应码200的回复都当成成功,一些服务例如查询等,可能会设置查询失败下返回提示语句但响应码依旧是200。此时需要查看响应文本中正确响应的关键词,方便压测时设置响应断言。

GUI模式下创建压力测试计划

添加Concurrency Thread Group

可以新建一个测试计划,也可以在原先接口测试的测试计划上修改。本例直接修改原先的接口测试,右键“测试计划”,选择择“添加”→“Threads(Users)”→“Concurrency Thread Group”,如图所示:
这里写图片描述

设置Concurrency Thread Group

根据需求完成线程组的设置,需要填写“Target Concurrency”,为压力测试预期的并发压力(注意Jmeter采用线程模拟并发的策略,大并发意味着大量线程,测试机性能会大量消耗,甚至影响测试结果,所以需要大并发的情况下,建议采用分布式部署Jmeter进行测试);“Ramp Up Time”,为测试并发数启动所需时间(注意测试并不是所有并发启动后才运行,在启动过程中,先启动的线程会先运行请求);“Ramp Up Steps Counts”,为是否将启动线程分阶段的启动,例如10即为分10次阶段性的启动一部分线程,可以为空;“Hold Target Rate Time”,为并发达到要求后再运行多久时间;“Time Unit”,时间单位,非常重要,有分和秒,不要选择错误。
这里写图片描述

添加Http请求

直接复制之前接口测试时的http请求,删去查看结果树即可。

添加聚合报告

右键http请求,选择“添加”→“监听器”→“聚合报告”。如图所示
这里写图片描述

聚合报告中保存测试数据

在聚合报告的“文件名”栏,填入./*-${__time(yyyyMMdd-HHmmss,)}.jtl,表示在当前目录生成jtl(jmeter的数据文件格式),${__time(yyyyMMdd-HHmmss,)}为jmeter的时间函数,生成测试的年月日分钟秒,方便后期管理测试数据。
这里写图片描述

添加响应断言

右键http请求,选择“添加”→“断言”→“响应断言”,如图所示:
这里写图片描述

配置响应断言

不同请求配置不同的断言。根据之前的接口测试,点击添加,输入判断文本,不同模式匹配规则,自行百度
这里写图片描述

保存测试计划

删除接口测试的线程组,点击“文件”,选择“保存测试计划为”,保存测试计划。压测计划创建完成。注意3.1版本“保存测试计划为”下面是“选中部分保存为”,旧版就是“保存为”,会保存选中的部分,然后实际测试的时候因为测试计划不完整是没法跑测试的,会报Error in NonGUIDriver java.lang.RuntimeException: Could not find the TestPlan class!,这雷旧版很容易踩上。
这里写图片描述

NO-GUI模式下启动压力测试

Windows下

打开cmd,目录切换到测试计划(jmx)所在的目录,证书放在同一目录下,输入{jmeter}/bin/jmeter -Djavax.net.ssl.keyStore=*.pkcs12 -Djavax.net.ssl.keyStorePassword=* -n -t *.jmx
{jmeter}为jmeter的安装目录
-Djavax.net.ssl.keyStore=**.pkcs12 是证书文件
-Djavax.net.ssl.keyStorePassword=** 是证书文件生成时的密码
-n 为nogui模式
-t 后面为测试计划文件(jmx)

linux下(推荐)

目录切换到测试计划(jmx)所在的目录,证书放在同一目录下,输入{jmeter}/bin/jmeter -Djavax.net.ssl.keyStore=*.pkcs12 -Djavax.net.ssl.keyStorePassword=* -n -t .jmx |tee -a .out
{jmeter}为jmeter的安装目录
-Djavax.net.ssl.keyStore=**.pkcs12 是证书文件
-Djavax.net.ssl.keyStorePassword=** 是证书文件生成时的密码
-n 为nogui模式
-t 后面为测试计划文件(jmx)
tee -a 参数后为文本文件,用于保存测试时输出summarize数据
若是为http的,Djavax.net.ssl.keyStore=*.pkcs12 -Djavax.net.ssl.keyStorePassword=* 直接省去

使用JMeter查看数据

在GUI模式下

选择报表

打开Jmeter,右击测试计划,选择“添加”→“监听器”→“聚合报告”;“添加”→“监听器”→“Response Times Over Time”;“添加”→“监听器”→“Transactions per Second”(有其他图表需要可以自行下载插件安装),如图所示:
这里写图片描述

加载数据

选择聚合报告,点击文件名栏后的浏览,选择jtl文件,加载数据(其余监听器类似),如图所示:
这里写图片描述

其他:

http会产生cookie的,需要删除或者其他操作的,需要添加cookie管理器。
默认jtl数据不保存响应文本,需要保存错误文件的信息,可以添加监听器中的保存响应到文件,勾选Save Failed Responses only(不推荐有较多错误的情况去保存文本,容易卡住)。
Bin目录下有个templates文件夹,里面有些JMeter用法的例子,可以看看。
NOGUI模式下可以使用jmeter -g result.jtl -o ./ResultReport生成一个html的报表(3.0版本以上)

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值