使用 JMeter 进行压力测试
一.前言
压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工具JMeter。
二.关于JMeter
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
官网:http://jmeter.apache.org/download_jmeter.cgi
这里我选用了 4.0 版本的二进制包:http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip
更多内容介绍 https://baike.baidu.com/item/Jmeter/3104456
三.准备工作
因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境,本文就不讲不如安装JAVA环境了。.
JAVA环境变量配置:https://jingyan.baidu.com/article/fd8044fa2c22f15031137a2a.html
解压下载的二进制包,进入bin目录,使用jmeter.bat
启动程序。
启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI。前面不要忽略CMD窗口的提示信息:
JMeter:
CMD窗口的提示信息
================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use NON GUI Mode:jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================
上面的意思就是:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。使用下面的命令来执行测试:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
并且修改JMeter批处理文件的环境变量:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"
更改语言为中文
官方默认为我们提供了简体中文。通过 【Options】->【Choose Language】变更为简体中文
四.创建测试
1.创建线程组
在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】。
设置线程数和循环次数。我这里设置线程数为500,循环一次。
2.配置元件
在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP请求默认值】。
配置我们需要进行测试的程序协议、地址和端口
当所有的接口测试的访问域名和端口都一样时,可以使用该元件,一旦服务器地址变更,只需要修改请求默认值即可。
3.构造HTTP请求
在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】设置我们需要测试的API的请求路径和数据。我这里是用的json
4.添加HTTP请求头
在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP信息头管理器】。
因为我要传输的数据为json,所以设置一个 Content-Type:application/json
5.添加断言
在我们刚刚创建的线程组上右键 【添加】-->【断言】-->【响应断言】。
根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息
6.添加察看结果树
在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。
直接添加,然后点击运行
按钮就可以看到结果了。
7.添加Summary Report
在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【Summary Report】。
直接添加,然后点击运行
按钮就可以看到结果了。
为了不引起不必要的争论,隐藏了TPS。此数据不具备任何价值,仅仅为文章演示。
8.测试计划创建完成
记得点保存。
五.执行测试计划
前面我们说过,执行测试计划不能用GUI,需要用命令行来执行。
我这里执行的命令为:
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报告保存路径。
Web报告如下:
六.写在最后
线程数量和循环次数将会影响最终的测试报告,请大家多多测试。
转载于:https://www.cnblogs.com/zhangfeivip/p/10456257.html
使用 JMeter 进行压力测试相关推荐
- jmeter 高并发测试报告_使用 JMeter 进行压力测试
原文连接:使用 JMeter 进行压力测试 一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率:预估系统的承载能力 ...
- JMeter 进行压力测试并发测试步骤,及文件上传并发测试演示
使用 JMeter 进行压力测试 一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率:预估系统的承载能力,使我们能 ...
- 使用JMeter进行压力测试及参数设置
使用JMeter进行压力测试(基础篇) 1.启动Jmeter 双击图中所示文件出现如下图所示即启动成功 2 新建测试计划 File------>new 2.1右键新建线程组 add-----&g ...
- 如何用Jmeter做压力测试
Jmeter是一个性能测试工具,同loadrunner类似,他功能较多,我们常用的功能是用jmeter模拟多浏览器对网站做压力测试. 我们一般的网站,在进入业务功能前先需登录,然后才能访问业务功能.下 ...
- 利用JMeter进行压力测试(1)(转)
转自:http://www.cnblogs.com/game-over/archive/2010/01/08/1642685.html 压力测试以软件响应速度为测试目标,尤其是在较短时间内大量并发用户 ...
- liunx JMeter 进行压力测试
启动脚本 jmeter.sh -n -t test.jmx -l result.jtl 参数说明 - h 帮助 -> 打印出有用的信息并退出 - n 非GUI模式 -> 在GUI模式下进行 ...
- jmeter压力测试_如何使用Jmeter进行压力测试?这篇入门讲解拿去不谢!
一.下载安装jmeter 这里不多说了,大家可以自行下载. 二.运行jmeter.bat 在bin目录下,使用管理员方式运行jmeter.bat 随之会打开jmeter的GUI界面,注意不要关闭运行的 ...
- 不会压测?没关系,手把手教你用jmeter做压力测试及结果分析
1.准备 测试之前需要先准备相关的工具,JMeter是运行在jdk下的一款压测工具,所以,要运行JMeter首选要安装jdk并配置环境变量,具体请自行百度jdk环境变量安装: 2.JMeter 是什么 ...
- Jmeter接口测试+压力测试
jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先 ...
最新文章
- AngularJS中选择样式
- Jenkins搭建的几个坑记下
- Redis 模糊匹配 SearchKeys
- c语言怎么编程dll,【C语言】编写的DLL注入工具
- angular4更改表单中显示的值_angular4 Form表单相关
- 对于linux socket与epoll配合相关的一些心得记录
- java开发分支_如何选择Java 的分支?
- python线程池超过最大数量_讨论一下Python线程池大小设置?
- 冲压模板自动标注LISP_自动标注.LSP
- python调用qq互联_实现QQ互联一键登录代码教程
- android root权限命令行,android在apk中获取root权限,并执行命令
- 夜的钢琴曲五—吉他指弹
- 怎么快速录制高清的游戏视频?电脑或手机屏幕录制
- 同义词,近义词,反义词收集
- 量化:常见策略指标合集
- 深度学习平台demo(一)- C#如何调用python文件
- 大数据高级开发工程师——Spark学习笔记(6)
- 如何实现点击按钮实现QQ在线联系客服聊天
- 【_ 記 】SpringBoot注解 (最新最全最详细)
- 2019,收获,静静等待
热门文章
- 【Android源码】AlertDialog 源码分析
- Android中使用running services查看service进程内存
- 在PHP中模拟asp的response类
- 从FCKEDITOR到ckeditor(二) 撰写自定义对话框,增加数学公式(与webEq的结合)
- 浅谈公司形象网站的设计流程
- 经典JavaScript正则表达式实战
- FPGA中的Logic Cells, Logic Slices, Configurable Logic Blocks and Gates 的定义
- 升余弦滤波器与根升余弦滤波器
- linux java 替换jre_Linux系统 无需JRE配置Java
- hbuilder能断点吗_知乎点赞破4万!这些PPT小秘密你知道吗?