压力测试是目前大型网站系统的设计和开发中不可或缺的环节,通常会和容量预估等工作结合在一起,穿插在系统开发的不同方案 。压力测试可以帮助我们及时发现系统的性能短板和瓶颈问题,在这个基础在上再进行针对性的性能优化,也可以帮助我们预估系统的承载能力,使我们能根据其做出一些应对措施 。
JMeter简介

文章插图
JMeter是一个使用JAVA开发的Apache开源软件,用于软件的性能评估和压力测试 。它最初是为测试Web应用程序而设计的,但此后又扩展到其他测试功能 。
JMeter可用于静态和动态资源、Web动态应用程序的性能测试,例如:HTTP、 HTTPS、LDAP、TCP、FTP、SMTP、POP3、IMAP、Shell脚本、数据库、Java 对象,也可以用于对服务器、服务器组、网络或对象上的巨大负载,以测试在不同强度的压力测试下它们的强度和整体性能 。
另外,JMeter还可以对应用程序做功能回归测试,通过创建带有断言的脚本来验证你的程序是否返回了你期望的结果 。为了最大限度的灵活性,JMeter还支持使用正则表达式创建断言 。
下载JMeter访问JMeter的官网:https://jmeter.apache.org/download_jmeter.cgi,下载最新版本的JMeter,如下图:

文章插图
运行JMeter在运行JMeter之前,需要安装JDK8,详细安装步骤见图文详解在windows系统中安装JDK 。
解压压缩包以后,进入bin目录,双击运行jmeter.bat,首先启动一个CMD窗口,如下图:

文章插图
然后又启动了JMeter的GUI,如下图:

文章插图
其中,注意CMD窗口中的提示:
================================================================================Don't use GUI mode for load testing !, only for Test creation and Test debugging.For load testing, use CLI Mode (was NON GUI): 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 fileCheck : https://jmeter.apache.org/usermanual/best-practices.html================================================================================英文看着不是顺畅,作为一个资深暖男给大家翻译一下:不要使用GUI运行压力测试!GUI仅用于压力测试的创建和调试 。执行压力测试使用CLI模式,就是非GUI 。使用下面的命令来执行测试:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]并且在批处理文件中修改当前环境变量:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"JMeter默认是英文的,也可以修改为简体中文,通过点击Options->Choose Language进行修改,如下图:
文章插图
创建第一个压力测试为了演示写了一个网站,URL为http://127.0.0.1:8080/hello,当QPS大于100时HTTP状态码返回429(使用 Alibaba Sentinel实现 ) 。
1.添加线程组右键测试计划,点击添加-->线程(用户)-->线程组,如下图:

文章插图
【图文详解压力测试工具JMeter的安装与使用】
设置线程数为10,Ramp-Up时间(秒)为10,循环次数为100,如下图:

文章插图
线程数:一个用户占一个线程,10个线程就是模拟10个用户 。
Ramp-Up时间(秒): 设置线程需要多长时间全部启动 。如果线程数为10,准备时长为10,那么需要1秒钟启动1个线程 。也就是每秒钟启动1个线程 。
循环次数:每个线程发送请求的次数 。如果线程数为10,循环次数为100,那么每个线程发送100次请求 。总请求数为10*100=1000。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本 。
推荐阅读
- OPPO|1099元起!OPPO A55s发布:系统30个月流畅无压力
- dos命令cd图文教程,改变当前目录路径chdir命令,bat批处理脚本
- 豆腐时蔬饼的做法
- 抹茶原味棋格脆饼的做法
- 苏泊尔电压力锅漏气是怎么回事呢?苏泊尔电压力锅使用时一直漏气?
- 局域网共享图文教程,电脑手机共享文件夹,多台计算机互相访问
- 销量|3月皮卡销量排名:长城有点压力、大变局刚刚开始!
- 枸杞泡玫瑰花茶的功效,详解玫瑰花茶的功效
- 详解linux多线程——互斥锁、条件变量、读写锁、自旋锁、信号量
- 五大实例详解,携程 Redis 跨机房双向同步实践
