Jmeter的简单使用
前言
对于jmeter的使用有很多内容,本章节只是简单介绍jmeter的两个方面的内容:一个是使用jmeter模拟postman发送http请求,一个是使用jmete进行压力测试。
更多的内容请参考官方文档:http://jmeter.apache.org/
一.jmeter的下载及简单使用
1.jmeter的下载
下载地址http://jmeter.apache.org/download_jmeter.cgi

本节使用的是jmeter5.0
jmeter不需要安装就可以使用,由于jmeter是使用java编写的的,所以要运行jmeter必须已经安装了jdk配置好了java的环境变量,作为开发的小伙伴,这些基本操作应该我就不啰嗦了。
下载完之后解压,打开程序有两种方法,一是进入bin目录点击jmeter.bat,即可运行jmeter客户端,打开会弹出两个窗口,一个是jmeter的命令窗口,一个是GUI窗口;二是直接进入bin目录下双击ApacheJMeter.jar即可运行GUI。对于两种方法的区别还不是特别清楚,如果有知道的小伙伴,就不要吝啬了,分享才是快乐的。
下面,我将使用第一种方法来演示。

打开界面可以选择语言为中文,但是下次打开还是英文,如果想一直都是英文,可以修改配置文件,网上有教程,我就不多说了。
二.发送http请求报文
这个相当于用postman发送请求的功能一样,也算是一个替代功能吧,如果不想使用postman的可以使用这个功能,发送之前如果是post请求的话要设置报文头和报文体,但是如果是get请求则不用设置报文体。
1.创建一个线程组
选择TestPlan,右键添加

然后就可以设置线程数了,一个线程数代表一个用户,因为这里我只模拟发送报文,所以就设置一个线程,下面的都默认即可;

2.添加一个HTTP请求

添加完成之后,可以设置要发送的ip、端口、上下文路径和请求的方法等,当然ip处也可以使用域名,端口可以不写,默认是80;

3.设置报文头

然后点击添加,添加字段和值

4.添加结果树
为了查看请求结果,需要添加请求树(右键已经创建的线程组),可以根据自己的需要,添加聚合报告等等,此处的添加的结果树可以查看一个请求返回的结果;

5.启动发送请求

6.小案例
模拟发送一个https://blog.csdn.net/zhuxy604/article/details/81012477,然后查看返回结果
a.设置线程组信息
默认即可

b.设置http请求

c.启动发送,查看返回结果

三.使用jmeter进行压力测试(重点)
前面已经讲过了怎么使用jmeter进行发送请求,这节就是在这个基础之上在升级,学会使用jmeter进行压力测试;(参考https://www.cnblogs.com/stulzq/p/8971531.html)
此节是本人查阅资料,然后实践总结出来的;遇到了很多问题也学会了如何处理这些问题;
压力测试不能使用GUI界面进行,GUI界面只是辅助,使用压力测试要从命令窗口进行。
1.使用前的准备
a.需不需要配置jmeter的环境变量?
答:不需要,但是windows打开命令窗口,输入jmeter命令会提示不是内部命令,原因是命令是在C盘的路径下,所以找不到命令,如果不配环境变量,就不能使用这种方法,解决办法是,命令窗口打开后,切换到jmeter的bin目录下,然后使用jmeter命令就可以识别了。

b.如何使用命令?
jmeter的命令有很多,此处只介绍压测时要执行的命令:
jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport
说明:
testplan/RedisLock.jmx 为测试计划文件路径
testplan/result/result.txt 为测试结果文件路径
testplan/webreport 为web报告保存路径。
这三个路径都是可以自定义的,为了方便起见,我就按照这个目录,这里是相对路径,意思就是在jmeter的路径下有个testplan的文件夹,如果没有,则要手动新建,其中RedisLock.jmx是自己要执行的测试计划文件,result.txt是自动生成的结果文件,每次会自动新建,所以每次测试完都要手动删除此文件,不然会报已经存在文件的错误,
testplan/webreport这个是压测完成之后生成报告的路径,新建好目录之后,内容也会自动生成(每次压测完还要进行下次压测,记得一定要清空此文件夹的内容),生成的内容中有一个index.html的文件就是压测结果的报告,测试完之查看此报告;注意:result和webreport不要使用一个文件夹,因为生成报告的时候要求这两个目录都为空,但是生成报告的过程是有先后顺序的,一个先生成,后生成的那个就会因为目录不为空而报错。

c.关于压测参数的说明:
(参考:https://blog.csdn.net/a656678879/article/details/80053645)
- 线程数:并发数量,能跑多少量。具体说是一次存在多少用户同时访问
- Rame-Up Period(in seconds):表示JMeter每隔多少秒发动并发。理解成准备时长:设置虚拟用户数需要多长时间全部启动。如果线程数是20,准备时长为10,那么需要10秒钟启动20个数量,也就是每秒钟启动2个线程。
- 循环次数:这个设置不会改变并发数,可以延长并发时间。总请求数=线程数*循环次数
- 调度器:设置压测的启动时间、结束时间、持续时间和启动延迟时间。
测试报告的结果(吞吐量)tps,表示同一时刻可以接受的用户数量,tps越高表示性能越好,这个和应用的优化有很大关系,单台机器的tps是有限的,生产上可以使用负载均衡来提高用户的并发访问量;下面的案例只是本机单台的压测,压测过程中,打开linux,使用top命令来查看CUP和内存的占用情况,CUP占用最高的程序将会放在第一行。
2.小案例
准备工作已经准备完毕后
1.打开Jmeter
打开自己已经保存的执行计划(注意的是此测试计划和CMD窗口命令中的测试计划一定要是同一个,要不然参数设置和执行的不是同一个测试计划),然后设置线程数、Rame-Up Period(in seconds)和循环次数的参数,记得一定要点击保存按钮,不然不生效。

2.CMD打开windows命令窗口
切换到jmeter的bin目录下

3.执行压测命令
(在说一遍:此处执行的测试计划要和窗口的测试计划是同一个)
jmeter -n -t testplan/登录-HTTP请求.jmx -l testplan/result/result.txt -e -o testplan/webreport

4.查看生成的报告


关于测试报告,网上查看说明,请自行查阅,这里就不赘述了。
Jmeter的简单使用的更多相关文章
- Jmeter教程 简单的压力测试
Jmeter教程 简单的压力测试:http://www.cnblogs.com/TankXiao/p/4059378.html
- jmeter教程--简单的做压力测试
Jmeter是一个非常好用的压力测试工具. Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 什么是压力测试 顾名思义:压力测试,就是 被测试的系统,在 ...
- 【JMeter】JMeter进行简单的数据库(mysql)压力测试
JMeter进行简单的数据库(mysql)压力测试 1.点击测试计划,再点击“浏览”,把JDBC驱动添加进来: 注:JDBC驱动一般的位置在java的安装地址下,路径类似于: \java\jre ...
- 使用jmeter做简单的场景设计
使用jmeter做简单的场景设计 Jmeter: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试.我之所以选择它,最重要的一点就是----开源 个人 ...
- Jmeter实现简单web负载测试
Jmeter实现简单web负载测试 简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. ...
- Jmeter教程 简单的压力测试【转】
Jmeter教程 简单的压力测试[转] Jmeter是一个非常好用的压力测试工具. Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 阅读目录 什么是压力 ...
- 压力测试之badboy和Jmeter的简单使用方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 所谓压力测试是指,通过确定一个系统的瓶颈或者不能接收的性能点, ...
- 使用JMeter进行简单的压力测试
一.压力测试 顾名思义:压力测试,就是 被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况). 比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速 ...
- 使用Jmeter进行简单的http接口测试
1.添加线程组:在“测试计划”上点击鼠标右键-->添加-->threads(Users)-->线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定 ...
- Jmeter的简单练习
一.安装Jmeter 1.下载Jmeter 下载地址:http://jmeter.apache.org/download_jmeter.cgi 目前最新版为2.9,其余文件如源代码等也可从如下官网下载 ...
随机推荐
- matplotlib 中其他基于Affine2DBase的类
2020-04-11 11:42:22 --Edit by yangray以下所有类(除了BboxTransformToMaxOnly )都直接继承于Affine2DBaseIdentityTrans ...
- 小程序后台隐藏后 socket 无法重新连接
小程序后台隐藏后 socket 无法重新连接 连接时 fail 回调函数的事件参数:connectSocket:fail:jsapi has no permission,event=createSoc ...
- excel中存储的时间的类型是什么
做了一个excel导入数据的功能,其中需要导入时间,默认到天.在开发过程中发现了一个问题, 导入的数据解析到的时间格式是 02-03-19,发现年份前面的两位数丢失了.这当然是导入数据 的解析包的问题 ...
- 【高并发】不废话,言简意赅介绍BlockingQueue
写在前面 最近,有不少网友留言提问:在Java的并发编程中,有个BlockingQueue,它是个阻塞队列,为何要在并发编程里使用BlockingQueue呢?好吧,今天,就临时说一下Blocking ...
- PHP安全(文件包含、变量覆盖、代码执行)
文件包含漏洞 本地文件包含 截断技巧: ../../etc/passwd%00(\x00 \0) 利用操作系统对目录最大长度的限制,可以不需要0字节而达到截断的目的.目录字符串,在windows下25 ...
- Daily Scrum 12/14/2015
Progress: Dong&Minlong: 基于Oxford Speech API成功实现语音输入的功能,但由于服务器存在访问次数的限制(每分钟6次),所以暂不准备将此功能加入ALPHA版 ...
- Linux命令与Shell
Linux 目录结构及解释 查看命令行执行完位置: echo $BASH 命令记录 mkdir mkdir命令 用来创建目录. 语法:mkdir (选项)(参数) 主要选项: -m<目标属性& ...
- 好用的mitmproxy代理抓包
安装证书 浏览器输入 `mitm.it` 下载证书有时候打不开,可能是起的服务卡死了,回车下命令行,再再网页刷新下载证书就可以了. mitmweb Chrome浏览器代理设置 打开的话,记得保存点一下 ...
- SpringBoot+Netty+WebSocket实现实时通信
这篇随笔暂时不讲原理,首先搭建起一个简单的可以实现通信的Demo.之后的一系列随笔会进行一些原理上的分享. 不过在这之前大家最好了解一下Netty的线程模型和NIO编程模型,会对它的整体逻辑有所了解. ...
- 轻量级mysql安装教程-避免采坑
1:安装包获取 安装了很多次,来来回回踩,踩出了一片光明大道,简单好用. 百度网盘获取:链接:https://pan.baidu.com/s/13frFBTODaMeADZOHj5KdJQ 提取码:a ...