jmeter进行性能测试实践

news2024/9/30 22:01:04

设置场景接口

一、通过抓取一个场景的接口(抓包)

自己抓取需要的接口,进行依赖

流程:1.在网页上F12抓取登录页面和登出页面的URL。2.在jemeter设置线程组,添加http请求输入URL等。3.查看结果数

二、通过boday录制

1、下载badboy 包,下载。进行安装badboyinstaller-2.2.5.exe

2、安装的工程:点击同意

3、修改存储位置,点击install

4、close关闭页面

5、找到下载位置找到应用程序,设置桌面快捷方式

6、显示图标

6、双击图标打开

输入网址:

http://cms.duoceshi.cn/manage/login.do

点击箭头运行

7、录制后脚本导出成后缀jmx的文件,再在左上角文件右击export to JMeter导入到jmetere中

8、将录制号的脚本导入到jmerte中。在jemeter-打开文件

第三种方法:反向代理录制脚本

在jmeter中进行录制

1、新建一个线程(用来接收接口)存放录制的接口

2、工作台中添加代理服务器

工作台-右击-添加非测试元件-http代理服务器

填写端口号,比如8888-检查端口号是否占用-目标控制器选择录制存放的地址 ---启动

查询查看端口是否占用:

 命令:netstat  -aon|findstr "8888"  空白说明没有占用

排除模式:

.*\.(js|css|PNG|jpg|ico|png|gif|html).*  排除模式,排除不需要的文件类型

再到谷歌浏览器中设置

谷歌的设置中:==高级==代理==使用代理服务器==写三个:127.0.0.1,ipconfig查看locahost、IP地址

录制好的数据就没有多余的HTML等类型的

对数据参数化

一、jmeter 进行(一个接口,多个用户压测)

1、在项目中新建用户(100个或1000个)

(1)新增用户:点击新增,新增接口(线程数10000),数据库中用户表存储过程造数(10000)

(2)jmeter新增登录接口,账号,密码设置成变量

新建线程组,加入http请求没输入web服务器协议和IP以及http请求方式和路径,添加名称和值

(3)前置处理器的用户参数

(4)设置线程组数,查看结果

二、并发测试(同一时间,同一个点发送接口)

1、准备两个接口:登录接口,一个用户查询接口

登录 接口

查询接口(在网页F12抓数据)

运行结果不是统一的

并发测试

右击添加定时器,选择Synchronizing Timer  集合点

集合点的概念:loadrunner中集合点可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作实现性能测试的最终目的。jmeter
中使用Synchronizing Timer实现Lr中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求。

1、线程组右键 -> 定时器 -> Synchronizing Timer
2、参数设置
a. Number of Simulated Users to Group by: 此处填写并发数量
b. Timeout in milliseconds: 超时时间设置
Jmeter默认没有超时时间,如果没有设置,一旦没有达到集结数量的请求系统就一直
等待。
计算超时时间方法参考: 并发数量 * 1000毫秒/( 线程数/在多少时间启动这么多线程)
10*1000/(10/10)=10000

定时器作用域:
作用于该定时器之后的所有请求,也就是说定时器实在请求执行前起作用的并发数和线程数一致时,并发启动时间,一定要大于线程组启动,如果小于这个时间,并发数量不准确。
(注意:线程组整理的启动时间单位是秒,定时器里的等待时间是:毫秒 ,哟啊注意单位换算,1秒=1000毫秒)

上边填并发数,下面设置超时时间

最大并发数:

最佳并发数:

三、稳定性测试

(1)设置开始时间--结束时间,选择循环次数:一直运行

(2)设置持续时间

四、基准测试

最大压测1000个用户,现在用10个用户压测,基准测试

一、性能插件的安装

1、下载jar包

2、将jar存放路径:

路径:

3、启动插件

显示:

4、重启jmeter,显示以下的插件,表示安装插件成功

二、性能插件的认识:


@gc - Active Threads Over Timeip 活动线程时间

@gc - AutoStop Listener 自动停止侦听器

@gc - Bytes Throughput Over Timejp 字节吞吐量随时间变化

@gc -Composite Graph 综合图

@gc - Connect Times Over Timejp 连接时间

@gc -Console Status Loggerjp 控制台状态记录器

@gc - DbMon Samples Collectorjp (DbMon Collectorjp样品收集器

@gc -Flexible File Writer 监听器之灵活的文件写入

@gc - Graphs Generatorjip 图形发生器

@gc - Hits per Second 每秒点击次数

@gc -JMXMon Samples Collectorjp (JMXMon样品收集器

@gc - Page Data Extractor 页面数据提取器

@gc - PerfMon Metrics Collectorjip 性能指标收集器

@gc - Response Codes per Secondjip 每秒响应数

@gc - Response Latencies Over Timejip 随时间间隔变化的响应延迟

@gc - Response Times Distributionjip 响应时间分布图

@gc - Response Times Over Time 随时间变化的响应时间

@gc - Response Times Percentilesjip 响应时间百分位数

@gc - Response Times vs Threadsjp 响应时间vs线程

@gc - Synthesis Report (filtered) 综合报告(过滤)

@gc - Transaction Throughput vs Threadsjip 整个线程的事务

@gc - Transactions per Second 每秒事务数

三、实战插件指标

1、设置压力测试1000:

2、添加所有插件:

注意点:不要添加jp@gc - PerfMon Metrics Collector,会报错

其他全部添加,收集信息

四、解释每一个性能插件的信息:了解各个插件的功能

https://www.cnblogs.com/xiaolehong/p/18142818 性能插件

图片

五、熟悉性能指标

https://www.cnblogs.com/xiaolehong/p/18142797 性能指标

https://www.cnblogs.com/xiaolehong/p/16786225.html tps

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

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

相关文章

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-29

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-29 在这一期中,我们对大语言模型在软件开发中的跨学科应用的几个工作做简要的介绍。相关内容涵盖软件测试时的问题报告,问题分类,测试生成,和软件测试中的AI应用: …

【宝藏篇】加密软件有哪些?10款好用的加密软件推荐!

小明:嘿,小华,你知道有哪些好用的加密软件吗?我最近需要保护一些敏感数据。 小华:当然,小明!现在市场上有很多优秀的加密软件,可以帮助你保护数据安全。我正好有10款宝藏级的加密软件…

【RocketMQ】RocketMQ应用难点

🎯 导读:本文探讨了RocketMQ中消息重复消费的问题及其解决方案,尤其是在CLUSTERING模式下的扩容影响。文章分析了重复消费的原因,如广播模式、负载均衡模式下的多consumerGroup消费、消费者组内的动态变化及网络延迟等&#xff0c…

基于单片机的催眠电路控制系统

** 文章目录 前言一 概要功能设计设计思路 软件设计效果图 程序文章目录 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主…

动手学深度学习(李沐)PyTorch 第 3 章 线性神经网络

3.1 线性回归 线性回归是对n维输入的加权,外加偏差 线性回归可以看作是单层神经网络 回归问题中最常用的损失函数是平方误差函数。 平方误差可以定义为以下公式: 常数1/2不会带来本质的差别,但这样在形式上稍微简单一些 (因为当…

【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧

文章目录 C模板进阶编程前言第一章: 非类型模板参数1.1 什么是非类型模板参数?1.1.1 非类型模板参数的定义 1.2 非类型模板参数的注意事项1.3 非类型模板参数的使用场景示例:静态数组的实现 第二章: 模板的特化2.1 什么是模板特化?2.1.1 模板…

YOLO11关键改进与网络结构图

目录 前言:一、YOLO11的优势二、YOLO11网络结构图三、C3k2作用分析四、总结 前言: 对于一个科研人来说,发表论文水平的高低和你所掌握的信息差有着极大的关系,所以趁着YOLO11刚刚发布,趁热了解,先人一步对…

与我免费ai书童拆解《坚持》创作历程

插科打诨的海侃胡闹,调侃舒展《坚持》诗创的灵魂盛宴之旅。 (笔记模板由python脚本于2024年09月30日 19:11:42创建,本篇笔记适合喜欢python和诗歌的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free&#x…

如何让ollama本地模型使用code-interpreter(代码解释器)?

代码解释器通常都需要在GPU的环境下使用原生的模型通过transformer来实现,且本身还需要模型本身支持,ollama本地蒸馏过的模型占用的资源比较小,也方便本地使用,但是如果想用这些模型的代码解释器,即让大模型写程序并执…

小巧机身,但强劲动力实现千元级净须,未野迷你剃须刀测评

剃须刀是很多朋友每天都要用的工具,在选择上非常丰富,就便捷性和可靠性来说,电动剃须刀还是更方便一些。以前多数人用的都是飞利浦等传统品牌。近几年国产剃须刀也开始崛起,但是也存在很多令人不够满意的产品,比如说&a…

Redis入门第三步:Redis事务处理

欢迎继续跟随《Redis新手指南:从入门到精通》专栏的步伐!在本文中,我们将探讨Redis的事务处理机制。了解如何使用事务来保证一系列操作的原子性和一致性,这对于构建可靠的应用程序至关重要 1 什么是Redis事务🍀 ​ R…

高效学习工作SMART原则

S代表Specific(明确具体的),意味着你需要清晰地定义你的目标,并确保它是具体而明确的。例如,如果你的目标是“提高销售”,那么这个目标就不是足够具体。更好的表述可能是:“在接下来的三个月内&…

【Python报错已解决】 ModuleNotFoundError: No module named ‘lime‘

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

828华为云征文 | 利用FIO工具测试Flexus云服务器X实例存储性能

目录 一、Flexus云服务器X实例概要 1.1 Flexus云服务器X实例摘要 1.2 产品特点 1.3 存储方面性能 1.4 测评服务器规格 二、FIO工具 2.1 安装部署FIO 2.2 主要性能指标概要 三、进行压测 3.1 测试全盘随机读IO延迟 3.2 测试全盘随机写IO延迟 3.3 测试随机读IOPS 3.4…

《后端程序猿 · Spring事务失效场景》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

如何使用ssm实现钢铁集团公司安全管理系统的构建与实现

TOC ssm748钢铁集团公司安全管理系统的构建与实现jsp 研究背景与现状 时代的进步使人们的生活实现了部分自动化,由最初的全手动办公已转向手动自动相结合的方式。比如各种办公系统、智能电子电器的出现,都为人们生活的享受提供帮助。采用新型的自动化…

SpringBoot教程(三十一) | SpringBoot生成Docker镜像包

SpringBoot教程(三十) | SpringBoot生成Docker镜像包 前提方式一:spring-boot-maven-plugin 方式方式二:Dockfile 方式(推荐) 前提 如果你在 Windows 上,确保 Docker Desktop 已经启动并正在运…

Java常用三类定时器快速入手指南

文章目录 Java常用三类定时器快速入手指南一、序言二,Timer相关1、概念2、Timer类3、TimerTask类4、ScheduleExecutorService接口 三,Scheduled相关1、配置1.1 SpringMVC配置1.2 SpringBoot配置(1)单线程(2&#xff09…

python 如何引用变量

在字符串中引入变量有三种方法: 1、 连字符 name zhangsan print(my name is name) 结果为 my name is zhangsan 2、% 字符 name zhangsan age 25 price 4500.225 print(my name is %s%(name)) print(i am %d%(age) years old) print(my price is %f%(pric…

【数字图像处理】小白也能懂,最浅显方式手撕直方图均衡化(附python实现)

文章目录 1 概念2 原理2.1 数学原理 3 python代码实现4 测试效果5 结论 1 概念 直方图均衡化,同伽马变换一样,也是增强图像对比度的一种工具。区别在于,直方图均衡化是一种自适应的工具,即自动工具。也就是说,我们只需…