没有比这更详细的-压测工具Jmeter介绍及使用了

news2024/11/17 17:37:18

一、压测工具选型

1.1、前言

压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,关于java应用的压力测试,业界常用工具为Apache Jmeter。(http://jmeter.apachne.org)。

1.2、工具概述

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

二、压测工具安装

2.1、软件版本

本次测试,选择Jmeter官方最新版本进行。由于只有windows操作系统具备Jmeter的可视化界面,因此本次选择windows版本进行安装,以方便进行压测配置。

2.2、安装步骤  

  • 下载Jmeter:https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.tgz
  • 解压到指定文件夹:D:\software\Dev-Env\Jmeter\apache-jmeter-5.5
  • 配置到环境变量:主要配置JMETER_HOME=D:\software\Dev-Env\Jmeter\apache-jmeter-5.5\bin以及CLASSPATH配置%JMETER_HOME%\bin;
  • 运行Jmeter:在安装目录下bin文件夹,找到jmeter.bat,双击运行即可。成功后显示如下:

注意该窗口的提示信息,意思就是:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。使用下面的命令来执行测试:

 

三、应用平台压测(登录接口)

3.1、配置线程池

考虑到目前的用户量,配置500个线程,循环1次。

3.2、配置请求头

在我们刚刚创建的线程组上右键 【添加】-->【配置元件】-->【HTTP请求默认值】。配置我们需要进行测试的程序协议、地址和端口。

当所有接口测试访问域名和端口都一样时,可使用该元件,一旦服务器地址变更,只需要修改请求默认值。

3.3、配置接口HTTP请求

在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】设置我们需要测试的API的请求路径和数据。Taier登录接口用的form-data,需要在请求头进行设置。

3.4、添加请求头

上一步骤中涉及到的数据请求方式等,都可以在此配置。

3.5、添加断言

在我们刚刚创建的线程组上右键 【添加】-->【断言】-->【响应断言】。根据响应的数据来判断请求是否正常。我在这里只判断的响应代码是否为200。还可以配置错误信息

3.6、添加查看结果树

在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。直接添加,然后点击运行按钮就可以看到结果了。

3.7、添加汇总报告

在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【Summary Report】。直接添加,然后点击运行按钮就可以看到结果了。

3.8、保存执行计划 

3.9、执行测试计划

前面我们说过,执行测试计划不能用GUI,需要用命令行来执行。

在命令行执行以上命令

 结束之后会在当前目录下生成压测报告、压测结果和压测日志 

  jmeter.log

resulet.txt

3.10、获取压测报告

进入压测报告文件夹,双击打开index.html即可获取压测报告详情。
总体报告:

  • 响应报告 

 

资源分享

下面这份资源,对于想学习【软件测试】的朋友来说应该是最全面最完整的备战仓库,希望也能帮助到你!

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/398628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux基础篇】一、Linux入门基础命令

一、Linux基础命令 1、Linux的目录结构 /,根目录是最顶级的目录了Linux只有一个顶级目录:/路径描述的层次关系同样适用/来表示/home/itheima/a.txt,表示根目录下的home文件夹内有itheima文件夹,内有a.txt 2、ls命令 功能&#…

数字孪生GIS智慧风场Web3D可视化运维系统

随着国家双碳目标的实施,新能源发电方式逐渐代替了污染大气层的火力发电,其中风力发电相比于光伏发电具有能量密度高、发电小时数长、生命周期达20-25年之久等独特的优势。风能取之不尽、用之不竭,在新型能源互联网下,风力发电有可…

三、GC算法垃圾回收器

文章目录(持续更新中... ...CMS and G1)概述如何判断对象存活引用计数法根可达算法GC算法(垃圾回收算法)分代收集理论标记-清除算法复制算法标记-整理算法垃圾回收器概述Serial收集器Parallel收集器Parallel Old收集器CMS收集器G1收集器常用的收集器组合…

STM32实战项目-串口打印

前言: 本小结主要实现串口打印功能,主要将上一结的状态机运行次数,通过串口在串口终端上打印出来,硬件电路上主要是TTL转USB驱动电路,软件上主要有状态机函数,串口发送函数等调试工具是串口助手。 目录 1…

机器学习学习记录1:假设空间

我们可以把学习过程看作一个在所有假设组成的空间中进行搜索的过程,搜索目标是找到与训练集"匹配" 的假设,即能够将训练集中的瓜判断正确的假设.假设的表示一旦确定,假设空间及其规模大小就确定了.对于西瓜问题,这里我们…

[MySQL索引]2.索引的底层原理(一)

索引的底层原理(一)B-树索引B树索引tips: ​ 通过使用malloc/new来申请4字节的内存,但是操作系统不是说每一次用户申请4字节内存,我就只分配4字节,这样申请次数多了就要涉及频繁的用户态和内核态的切换,开销…

AM5728(AM5708)开发实战之安装Debian 10桌面操作系统

一 环境搭建 准备一个SD卡启动卡,能够正常引导板卡启动,后续会把Debian 10镜像安装到SD卡ext4分区 准备两个U盘,一个格式化成fat32文件系统,另一个格式化成ext4文件系统 下载Debian 10镜像,镜像名字为debian-10.4.0-a…

【前端】一个更底层库React,附教程

Reat是什么?React在UI里最火的也是最好的库,React是一个做UI的库,具体来说是做UI组件的库,专注于做mvc中的v,它是一个更底层的工具库。为你应用的每一个状态设计简洁的视图,当数据变动时 React 能高效更新并…

Linux发行版本与发行版的简单的介绍

Linux linux下有很多发行的版本,或者称之为魔改版本。以下介绍一些常见的版本,以避免名词的混淆。 linux是提供了一个内核,就像是谷歌的内核一样,QQ浏览器就是使用的谷歌的内核,也算是一个发行版本。 Ubuntu&#x…

课程项目简介

一、深度学习模型入门 1&#xff0c;什么是机器学习&#xff1f; Study of algorithms that improve their performance P at some task T with experience E. 研究在某个任务T上用经验E提高其性能P的算法。 well-defined learning task:<P,T,E> 明确的学习任务&#…

手把手开发一门程序语言JimLang (2)

根据爱因斯坦的相对论&#xff0c;物体的质量越大&#xff0c;时间过得越快&#xff0c;所以托更对于我的煎熬&#xff0c;远远比你们想象的还要痛苦…今天给大家来盘硬菜&#xff0c;也是前些时日预告过的JimLang的开发过程… Let’s go !!! 语法及解析 JimLang.g4 这里我们…

轮毂要怎么选?选大还是选小?

随着改装车的越来越火爆&#xff0c;汽车轮毂可选择的款式也越来越多&#xff0c;90%的人换轮毂&#xff0c;首先选的就是外观。大轮毂的款式多&#xff0c;外形大气好看&#xff0c;运动感十足&#xff0c; 那是不是选大轮毂就可以呢&#xff1f;不是的&#xff0c;汽车轮毂要…

全面吃透Java Stream流操作,让代码更加的优雅

文章目录1 认识Stream流1.1 什么是流1.2 流与集合1.2.1 流只能遍历一次1.2.2 外部迭代和内部迭代1.3 流操作1.3.1 中间操作1.3.2 终端操作1.3.3 使用流2 学会使用Stream流2.1 筛选和切片2.1.1 用谓词筛选2.1.2 筛选各异的元素2.1.3 截短流2.1.4 跳过元素2.2 映射2.2.1 map方法2…

Java经典面试题——对比 Vector、ArrayList、LinkedList 有何区别?

典型回答 这三者都是实现集合框架中的 List &#xff0c;也就是所谓的有序集合&#xff0c;因此具体功能也比较近似&#xff0c;比如都提供按照位置进行定位、添加或者删除的操作&#xff0c;都提供迭代器以遍历其内容等。但因为具体的设计区别&#xff0c;在行为、性能、线程…

详解CRC原理以及C语言实现

CRC检验原理 CRC&#xff08;Cyclic Redundancy Check&#xff09;校验是一种常用的数据校验方法&#xff0c;它通过计算数据的校验码来检测数据在传输过程中是否出现了错误。 CRC校验的基本原理是将数据按照一定的规则进行计算&#xff0c;得到一个固定长度的校验码&#xf…

JavaScript内改变this指向

之前我们说的都是代码内 this 的默认指向 今天我们要来说一下如何能改变 this 指向 也就是说, 你指向哪我不管, 我让你指向哪, 你就得指向哪 开局 在函数的原型( Function.prototype ) 上有三个方法 call apply bind 既然是在函数的原型上, 那么只要是函数就可以调用这三个方…

React(七):Router基本使用、嵌套路由、编程式导航、路由传参、懒加载

React&#xff08;七&#xff09;一、React-Router的基本使用1.安装和介绍2.路由的配置和跳转3.Navigate的使用4.如果找不到对应的路由路径&#xff1f;二、嵌套路由的用法三、编程式路由导航1.类组件中使用useNavigate2.函数式组件中使用useNavigate四、路由跳转传参1.设置好路…

小白学Pytorch 系列--Torch API(1)

小白学Pytorch 系列–Torch API Torch version 1.13 Tensors TORCH.IS_TENSOR 如果obj是PyTorch张量&#xff0c;则返回True。 注意&#xff0c;这个函数只是简单地执行isinstance(obj, Tensor)。使用isinstance 更适合用mypy进行类型检查&#xff0c;而且更显式-所以建议使…

【计组】主存储器有关知识梳理

一、主存储器 主存储器可以直接和CPU进行通信&#xff0c;但是只能保存临时数据&#xff0c;在断电后数据就消失。还有一个特点是&#xff0c;主存储器的容量小&#xff0c;速度快&#xff0c;造价高。 1.构成 2.主存中存储体的构造 最小的存储单位是存储元&#xff0c;存储元…

近亿美元:人工心脏龙头永仁心医疗完成超大额A轮融资

近日&#xff0c;永仁心医疗器械有限公司&#xff08;以下简称“永仁心医疗”&#xff09;完成近一亿美元A轮融资&#xff0c;由北京科兴中维生物技术有限公司&#xff08;SINOVAC科兴&#xff09;领投&#xff0c;太平&#xff08;深圳&#xff09;医疗健康产业私募股权投资基…