1. 下载

  • 官网下载:https://jmeter.apache.org/download_jmeter.cgi
  • 本人云存储下载:https://linta0.lanzout.com/imMvp05q3ing
    密码:cyp1

下载完后,直接解压

2. 修改配置

因为JMeter默认是英文的界面,本人英文水平不好,所以将其修改为中文界面
找到图片中的文件:jmeter.properties

修改下面两个地方:

language=zh_CN

sampleresult.default.encoding=UTF-8

3. 启动

找到 bin 目录下的 ApacheJMeter.jar
再此目录下进入 cmd 模式
输入:

java -jar ApacheJMeter.jar

此时会先出现一个小黑屏,然后再出现可视化界面,可视化界面如下:

在没有修改主题的情况下,首次启动时,界面应该是黑色背景的。大家可以通过修改下图的地方来选择自己喜欢的主题

注意:启动时,小黑屏会出现“Don’t use GUI mode for load testing !, only for Test creation and Test debugging”的提示,无需理会,文章下面会进行说明。能看到上述的可视化界面即为启动成功

4. 可视化界面 - 使用教程

4.1 添加线程组

对上述添加的线程组进行配置:

  • 如果后续不进行保存的话,名称和注释可以不用管
  • 线程数:1000,表示在启动时会开启1000个线程,分别向每一个接口进行请求
  • Ramp-Up时间(秒):表示每一个线程启动之间的间隔时间,设置为0意味着并发请求
  • 循环次数:表示将上述的1000次并发请求循环3次

4.2 新建HTTP请求

配置上述新添加的HTTP请求:

根据个人的项目,配置本次HTTP请求的:

  • 服务器名称或IP
  • 端口号
  • 请求类型
  • 请求路径
  • 参数的名称和相对应的值

4.3 添加结果树


结果树用于查看发出请求后,响应的数据和结果

4.4 添加汇总报告

汇总报告和结果树的添加在同一处,此处不在以图片的形式说明

在每一个HTTP请求中添加汇总报告,此时汇总的是这一个HTTP请求的统计数据
在线程组中添加汇总报告,则是查看线程组下所有HTTP请求中的统计数据

此处展示单个HHTP请求的汇总报告

5. 命令行模式 - 使用教程

5.1 介绍

在启动JMeter时,出现”Don’t use GUI mode for load testing !, only for Test creation and Test debugging“提示。是提示我们不要在在可视化界面下进行压力测试

因为压力测试时,会消耗大量的内存,而可视化界面本身就需要占用较多的内存。所以在启动时,JMeter会提示我们不要在可视化模式下进行压力测试

真正的压力测试,应该是在可视化模式下添加好相关的线程组和所需测试的HTTP请求。然后转到命令行模式进行测试

5.2 使用

当添加好线程组和对应的HTTP请求后,将其另存为**.jmx**文件
进入bin目录,打开cmd窗口,输入如下命令:

jmeter -n -t A -l B -e -o C

解释:

  • A:.jmx 文件所在路径
  • B:生成 .jtl 测试报告文件所存放的路径
  • C:生成HTML测试报告文件所存放的路径

注意:.jtl 报告和HTML报告的存放路径必须为空

5.3 HTML报告简要分析

下面以本人一个项目中的测试报告来举例分析
在本次测试中,以并发的方式(Ramp-Up为0),给项目的57个接口分别发送了1000个请求,并循环了3次
生成后的HTML报告,目录如下:

打开上图中的index.html,首页如下:

Apdex:性能指标;取值范围为0~1;0.8表示在并发请求下,有80%的请求响应时间是满足JMeter中所设置的用户需求

Requests Summary:请求总结;表示成功与失败请求之间的占比。PASS表示请求成功,FAIL表示请求失败。图中显示在压力测试下,有99.76%的请求是成功的,只有0.24%的请求是失败的

Statistics:数据分析

  • Samples:总共发送的请求数在循环3次后为171000次
  • FAIL:失败的请求次数为413
  • Error:请求失败率为0.24%
  • Average:平均响应时间为460.72ms
  • Min:最小响应时间为3ms
  • Max:最大响应时间为6740ms
  • Median:每次请求的平均响应时间为173ms
  • 90th pct:90%用户响应不超过527ms
  • 95th pct:95%用户响应不超过700.95ms
  • 99th pct:99%用户响应不超过1251.99ms
  • Throughput:吞吐量;每秒完成请求数为1935.88次
  • Received:每秒接收到的数据量为1090.62KB
  • Sent:每秒发送的请求数为342.8

注意:在测试前,设置给每个接口1秒内发送1000个请求。但是由于服务器的资源有限,无法同时向所有的接口同时发出这么多次的请求。所以在上述测试报告的分析中,Sent的值才是每秒实际的请求量

在报告中,还存在许多图表,大家可以去该网站详细了解每个图表的意思:

https://cloud.tencent.com/developer/article/1635133

压力测试 - Apache JMeter使用教程相关推荐

  1. 什么是压测,为什么要进行压力测试?JMETER工具的使用

    这里是修真院后端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析后端知识/技能,本篇分享的是: [ 什么是压测, ...

  2. 什么是压力测试,为什么要进行压力测试?Jmeter工具的使用

    这里是修真院后端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析后端知识/技能,本篇分享的是: [什么是压力测试 ...

  3. 【修真院JAVA小课堂】什么是压测,为什么要进行压力测试?JMETER工具的使用

    大家好,我是IT修真院郑州分院第11期的JAVA学员,一枚正直纯洁善良的java程序员. 今天给大家分享一下,什么是压测,为什么要进行压力测试?JMETER工具的使用. 1.背景介绍 压测,即压力测试 ...

  4. 后端开发都应该了解点接口的压力测试(Apache Bench版)

    背景 小A:小B,最近调你的接口老是超时呀,8秒都还没返回结果,是不是有性能问题呀! 小B :我看看~~ 类似这样的对话,在现实中是时有发生的,不是特别严重的话,往往大家也不会去重视这个事. 尤其是在 ...

  5. jmeter压力测试linux,JMeter压力测试

    JMeter压力测试 整体目标: 安装虚拟机,并安装一套LAMP(Linux+Apache+Mysql+PHP)待测系统,推荐ECShop(http://www.ecshop.com),基于此进行Jm ...

  6. 图文详解压力测试工具JMeter的安装与使用

    压力测试是目前大型网站系统的设计和开发中不可或缺的环节,通常会和容量预估等工作结合在一起,穿插在系统开发的不同方案.压力测试可以帮助我们及时发现系统的性能短板和瓶颈问题,在这个基础在上再进行针对性的性 ...

  7. 【压力测试】Jmeter基础3

    Jmeter压力测试 一.概念 tps:每秒钟处理事务数 qps:响应时间(每秒钟处理的查询实物数) 二.基本操作 一般压测某个接口,比如并发多少,或者压测十几分钟,是否满足产品需求 三.查看聚合报告 ...

  8. 时间管理软件 压力测试软件JMeter 微信小程序可视化代码生成 黑客网站

    前言 毕业有三个星期了,认为自己应该有更好的时间观念,任务观念,网上搜索了好久,功夫不负有心人,终于找到了可以在window,mac,ios,android上兼容的时间管理软件.时光序 当然做为软件工 ...

  9. Golang 编写测试用例(单元测试、压力测试等)最新教程,细到极致

       Hello,各位小伙伴,我们今天来学习一下go的测试,希望给各位一点点小小的帮助    有过编程基础的,或者工作的了,应该知道,一个软件的质量,三分靠开发,七分靠测试.如果没有及时发现存在的问题 ...

  10. mysql smack_MySQL压力测试工具super-smack简单教程

    一.源码下载       下载地址:http://vegan.net/tony/supersmack/源码:二.编译及安装       编译环境:Ubuntu Server 9.10 64位配置编译选 ...

最新文章

  1. mysql本地导入导出_MySQL本地登录及数据库导入导出
  2. pytorch android
  3. android 时间转换 工具下载,时间转换器手游下载_时间转换器安卓版下载v1.09.25_3DM手游...
  4. 随便写点时间相关的模块
  5. boost::two_graphs_common_spanning_trees用法的测试程序
  6. numpy 归一化_归一化(MinMax)和标准化(Standard)的区别
  7. vscode插件开发实践与demo源码
  8. mac 二进制安装mysql_在mac下安装mysql二进制分发版的方法(不是dmg的)
  9. 浏览器内核选型列表,请大家继续补充
  10. 在苹果Mac上如何指定发送邮件的时间?
  11. 多版本Python共存的配置和使用
  12. 计算机软件企业所属行业性质,最新企业所属行业类别、分类及行业代码查询表.doc...
  13. ue4使用Niagara粒子实现下雨效果,使用蓝图调节雨量
  14. Unity实现音乐播放器
  15. WIN2000服务器安全配置(转)
  16. 红外线体温计详细制作方案
  17. 计算机图形学【GAMES-101】10、材质(BRDF)(折射、菲涅尔项、微表面模型、各向异性材质)
  18. Swagger之OAS 3.0配置
  19. 挺苹果的声音,iPhone 5s的两处进步
  20. python-树-BST_Traversal-二叉搜索树的遍历

热门文章

  1. windows10安装adb/fastboot教程
  2. Java 发送163邮件
  3. HD2500显卡驱动linux,Intel HD Graphics 4000/2500集成显卡驱动
  4. 智能陈桥五笔7.8试用编号是多少_如何设计和编写软件测试用例
  5. 使用钢片刷锡膏的一种解决方案
  6. 袖珍计算机英语手册,英语袖珍迷你系列-中考英语速记手册.pdf
  7. Vue3配置路由ERROR in [eslint]报错问题
  8. 基于flask框架的高校舆情分析系统
  9. 统计学常用的数据分析方法总结
  10. android ndk下载安装教程,NDK安装教程20180605