jmeter进行http压力测试

article/2025/9/24 6:59:21

jmeter进行http压力测试

下载地址
下载地址:http://jmeter.apache.org/download_jmeter.cgi

JMeter基于Java开发,需要系统有安装JDK环境。解压后进入bin目录,点击jmeter.bat

在这里插入图片描述

1、添加线程组:

测试计划 -> 添加 -> Threads(User) -> 线程组,添加后进入如下界面:

在这里插入图片描述

线程数:表示将模拟多少个用户进行测试。
Ramp-Up Period(in seconds):线程启动间隔,所有线程将在这个时间内依次启动。
循环次数:所有线程执行一次为一次循环。Rame-Up Period(in seconds):表示JMeter每隔多少秒发动并发。理解成准备时长:设置虚拟用户数需要多长时间全部启动。如果线程数是20,准备时长为10,那么需要10秒钟启动20个数量,也就是每秒钟启动2个线程。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。

2、添加采样器:
采样器可理解为针对前面创建的线程需要做什么事情,这里以添加HTTP请求为例。
1)线程组 -> 添加 -> Sampler -> HTTP请求,添加后进入如下界面:
在这里插入图片描述

上图为压测http的get类型接口,url中${newId}和${page}是动态参数,需要从文件中获取服务器名或ip:填写服务器ip地址(例如:192.168.1.23)路径:填写url接口剩余部分;
协议:向目标服务器发送http请求时的协议,可以是http或者是https,默认值为http
方法:发送http请求的方法,可用方法包括get、post、head、put、options、trace、delete等。
Content encoding:内容编码方式
路径:目标url路径(不包括服务器地址和端口)
自动重定向:如果选中该选项,当发送http请求后得到的响应是302/301时,jmeter自动重定向到新的页面。
Use keep Alive:当该选项被选中时,jmeter和目标服务器之间使用keep-Alive方式进行http通信,默认选中
Use multipart/from-data for http post:当发送http post请求时,使用Use multipart/from-data方法发送,默认不选中。
同请求一起发送参数:在请求中发送URL参数,对于带参数的URL、jmeter提供了一个简单的对参数化的方法。用户可以将url中所有参数设置在本表中,表中的每一行是一个参数值对(对应URL中的名称 名称1=值1 )
同请求一起发送文件:在请求中发送文件,通常,http文件上传行为可以通过这种方式模拟。

2)添加CSV Data Set Config 来参数化

在d盘简历如下data.txt文件,在variable Names中输入newId,page后,在http请求中就可以通过${newId}获取到

1,1  
11,1  
111,1  

在这里插入图片描述

3)如果是post接口,则把post数据写到parameters下面

在这里插入图片描述

3、添加监视器
监视器可以理解为针对结果的不同查看方式。JMeter里提供了多种结果表现形式。可通过 HTTP请求 -> 添加 -> 监视器 -> 察看结果树、聚合报告等等。

在这里插入图片描述

聚合报告各指标:Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,单位为毫秒。当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间Median:中位数,也就是 50% 用户的响应时间90% Line:90% 用户的响应时间Min:最小响应时间Max:最大响应时间Error%:本次测试中出现错误的请求的数量/请求的总数Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

压力测试知识说明

压力测试

压力测试分两种场景:一种是单场景,压一个接口的;第二种是混合场景,多个有关联的接口。压测时间,一般场景都运行10-15分钟。如果是疲劳测试,可以压一天或一周,根据实际情况来定。

压测任务需求的确认

压测前要明确压测功能和压测指标,一般需要确定的几个问题:

  1. 固定接口参数进行压测还是进行接口参数随机化压测?
  2. 要求支持多少并发数?
  3. TPS(每秒钟处理事务数)目标多少?响应时间要达到多少?
  4. 压服务器名称还是压服务器IP,一般都是压测指定的服务器

压测设置

  1. 线程数:并发数量,能跑多少量。具体说是一次存在多少用户同时访问
  2. Rame-Up Period(in seconds):表示JMeter每隔多少秒发动并发。理解成准备时长:设置虚拟用户数需要多长时间全部启动。如果线程数是20,准备时长为10,那么需要10秒钟启动20个数量,也就是每秒钟启动2个线程。
  3. 循环次数:这个设置不会改变并发数,可以延长并发时间。总请求数=线程数*循环次数
  4. 调度器:设置压测的启动时间、结束时间、持续时间和启动延迟时间。

压测结果查看

运行完后,聚合报告会显示压测的结果。主要观察Samples、Average、error、Throughput。

  1. Samples:表示一共发出的请求数
  2. Average:平均响应时间,默认情况下是单个Request的平均响应时间(ms)
  3. Error%:测试出现的错误请求数量百分比。若出现错误就要看服务端的日志,配合开发查找定位原因
  4. Throughput:简称tps,吞吐量,默认情况下表示每秒处理的请求数,也就是指服务器处理能力,tps越高说明服务器处理能力越好。

压测结果的分析

  1. 有错误率同开发确认,确定是否允许错误的发生或者错误率允许在多大的范围内;

  2. Throughput吞吐量每秒请求的数大于并发数,则可以慢慢的往上面增加;若在压测的机器性能很好的情况下,出现吞吐量小于并发数,说明并发数不能再增加了,可以慢慢的往下减,找到最佳的并发数;

  3. 压测结束,·登陆相应的web服务器查看CPU等性能指标,进行数据的分析;

  4. 最大的tps:不断的增加并发数,加到tps达到一定值开始出现下降,那么那个值就是最大的tps。

  5. 最大的并发数:最大的并发数和最大的tps是不同的概率,一般不断增加并发数,达到一个值后,服务器出现请求超时,则可认为该值为最大的并发数。

  6. 压测过程出现性能瓶颈,若压力机任务管理器查看到的cpu、网络和cpu都正常,未达到90%以上,则可以说明服务器有问题,压力机没有问题。

  7. 影响性能考虑点包括:数据库、应用程序、中间件(tomact、Nginx)、网络和操作系统等方面。

jmeter在linux下进行压力测试

  1. jmeter 在linux安装
      简单说下,就是要先安装jdk,同时再配置环境变量,最后再上传jmeter压缩的安装包,在linux下解压完安装包就可以使用了。推荐博客:http://blog.csdn.net/zhemeteor/article/details/51315874

  2. jmeter在linux运行
    进入jmeter下的bin目录下运行脚本,未配置jmeter环境变量的条件下,运行的命令:

./jmeter -n -t a.jmx -l res.jtl

其中a.jmx是准备好的jmeter脚本,res.jtl是测试结果文件,测试结果文件可以导入到jmeter察看结果树下查看。

jmeter添加负载机


好的文章

  • 测试报告的文章

http://chatgpt.dhexx.cn/article/WSjZgbKL.shtml

相关文章

压力测试 - HTTP压测工具stress指南

2019.03.19重新修改(之前的使用安装方式有误!) Stress安装指南 github地址:https://github.com/buaazp/stress 使用环境:macOS 或者 Linux (Windows用户请安装虚拟机或者Linux服务,如git工具…

jmeter进行http压力测试(图文小教程)

下载地址:http://jmeter.apache.org/download_jmeter.cgi JMeter基于Java开发,需要系统有安装JDK环境。解压后进入bin目录,点击jmeter.bat​​​​​​​ 1、添加线程组: 测试计划 -> 添加 -> Threads(User) -> 线程组…

如何使用Jemeter对HTTP接口压测

我们不应该仅仅局限于某一种工具,性能测试能使用的工具非常多,选择适合的就是最好的。笔者已经使用Loadrunner进行多年的项目性能测试实战经验,也算略有小成,任何性能测试(如压力测试、负载测试、疲劳强度测试等)都可以使用该工具。但我并不鼓励这样做,我们应该根据当前…

siege安装测试

Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。 1、Siege是一个多线程ht…

springboot 网页聊天室

基于springboot的网页聊天室,采用websocket通信协议,可以进行多人聊天,单人聊天,群发功能。 1:输入昵称登录 2:聊天界面 下载完成后使用maven下载资源包,运行后使用127.0.0.1/login登录可进行…

网页版多人聊天室系统

网页版多人聊天室系统 SockJSSpringSpringMVCMybatiesEasyUIMysqlTomcat7Jdk7 兼容IE8 源代码下载:https://download.csdn.net/download/u014644574/11420820

【IM-03】Web端匿名聊天

前沿 Web端主要是集成SocketIO,然后部署到服务器的一个过程,入门的一个渠道。 第一篇:即时通信解决方案 第二篇:推送解决方案 第三篇:Web端匿名聊天 第四篇:iOS集成单聊&群聊 1.Web端匿名聊天主要是功能…

java如何实现web页面聊天_Java和websocket实现网页聊天室

WebSocket protocol 是HTML5一种新的协议,它实现了浏览器与服务器全双工通信(full-duplex)。接下来将实现一个websocket的网页聊天室的demo,前端框架会使用amazeUI,后台使用Java,网页编辑器使用UMEditor。 涉及知识 网页前端(HTML…

vue + element-ui 聊天_vue网页版聊天Vue+ElementUI仿微信界面聊天实例

vue+vuex+vue-cli+vue-router+element-ui+swiper等技术开发仿微信pc端界面聊天应用,实现了发送消息+表情(动图gif)、图片/视频预览、右键长按菜单、红包/朋友圈、截图发送等功能。 技术栈 vue版本:Vue2.5.6状态管理:Vuex页面路由:Vue-routericonfont图标:阿里巴巴字体图标…

2023 人工智能在线聊天机器人网页HTML源码

测试了一下就是对接的外部接口,无加密有能力的可以二开。使用教程,上传主机,服务器后解压使用,当然了,电脑解压后点击index.html也能用。

网页进行QQ聊天简单应用

在网页上唤醒QQ聊天 ---- 网页上用到在线客服之类的解决方案 想在网页上做一个在线客服的功能,其实可以用腾讯提供的方法,只要打开链接就能进行QQ聊天 ◆腾讯提供的代码为:(腾讯官方链接: http://is.qq.com/webprese…

多语言国际版在线聊天室/匿名在线聊天室/语音聊天室/网页APP聊天室

私人聊天消息/一对一聊天 私人或一对一聊天功能可供用户无缝聊天。他们可以使用此功能私下分享任何他们想要的东西。管理员可以通过管理仪表板轻松管理私人聊天。 多语言支持 QuChat带有一个内置的语言和翻译管理器。您可以有效地添加自己的语言和翻译。QuChat可以翻译成任何…

html网页直播实时聊天,一分钟实现网页多人聊天室【Socket.IO】

socket.io是个基于node.js的快平台实时通讯框架。只用不到10行代码,就可以搭建一个简单的多人实时聊天室。 先来看看运行后的效果: socket.io多人聊天室 只要简单几步,就可以实现。在这里我们使用本机作为服务端。 安装node.js 由于socket.io使用node.js为服务端,所以必须安…

如何实现网页视频聊天?

在网页里实现文字聊天是比较容易的,但若要实现视频聊天,就比较麻烦了。这里,我们将实现一个简单的网页版视频聊天Demo,可以支持所有类型的浏览器。 本Demo除了视频聊天功能外,还包含以下功能: 1.上下线通知…

qq不加好友实现网页在线聊天(qq在线客服)

需求 再网页中添加自己的qq,方便别人联系你,但是有的时候仅仅是询问一些问题,并不需要加好友,那么此时使用qq官方的推广工具就非常方便了。 官网地址:qq推广 开通免费推广功能后,就可以直接通过点击网页上…

php源码 网页聊天_php即时在线网页聊天源码-响应式设计自适应手机端

基于PHP WebSocket即时通讯开发的在线聊天源码,使用高效优雅的 Laravel 框架进行非通讯部分开发。前台与后台自适应PC与移动端,支持一对多交流,可以自由创建新的房间与解散创建的房间,集成签到功能,等级功能&#xff0…

【亲测可运营】PHP匿名在线聊天室/语音聊天室/多国语言版在线聊天室

简介 PHP匿名在线聊天室源码/自定义群组聊天系统/可设置密码支持自适应多端访问运营版,一款支持多国语言的在线群聊系统源码,可以新建一个群组,然后设置密码,或者公开访问都可以,聊天都是匿名的,方式还是不…

Java网页版仿QQ实现在线聊天功能

疫情期间,整天闷在家里又不能聚会,大把的空余时间差点让我发霉,后来有个客户发来新年祝贺,让我突然想起了一件事情,就是他曾经提起过,要是在后台管理系统里面整合个聊天功能该多好啊,有了这个念…

基于PHP的在线聊天室(网页版)

前言 此项目免费分享(群文件中获取) 交流群:758350964(已满) 交流群2:511496356 一 项目介绍 基于PHP的在线聊天室(网页版) 技术栈 phpmysqlbootstrap 可搭建在phpstudy下快速部署 二 主要功能 1 注册/登录 2 聊天功能 3 撤回功能 4 查看群成员 三…

网页版聊天服务器,网页版在线聊天室

引言 实现网页版的在线聊天室的方法有很多,在没有来到HTML5之前,常见的有:定时轮询、长连接+长轮询、基于第三方插件(如FLASH的Socket),而如果是HTML5,则比较简单,可以直接使用WebSocket,当然HTML5目前在PC端并没有被所有浏览器支持,所以我的这个聊天室仍是基于长连接+…