面试必杀技:Jmeter性能测试攻略大全(第一弹)

前言

性能测试是一个全栈工程师/架构师必会的技能之一,只有学会性能测试,才能根据得到的测试报告进行分析,找到系统性能的瓶颈所在,而这也是优化架构设计中重要的依据。

第一章  测试流程:

需求分析→环境搭建→测试计划→脚本开发→执行与监控→缺陷管理→结果与报告

压力测试

1、线程组设置,这里的线程数与同步定时器的用户数量一样

2、添加HTTP cookie管理器

3、默认请求值

4、添加一个事务控制器,可以当作一个业务

5、在事务控制器下添加,同步定时器

设置用户数量,这里与线程组的线程数一样,超时时间可设置

6、添加脚本(http请求)

7、添加查看结果树

8、添加->监听器

9、在最后添加一个聚合报告,添加处:添加->监听器

第二章   负载测试实战

1、线程组的设置50个用户(持续时间:按秒计算,这里300=60*5,意思就是运行时长为5分钟)

2、添加HTTP cookie管理器

3、默认请求值

4、添加一个事务控制器,可以当作一个业务

5、在事务控制器下添加,高斯随机定时器

总的延时 = 固定延迟时间 + 高斯随机生成的偏差值(说明:单位都是毫秒,固定延迟300ms,偏差100ms,意思是时间延迟300-400ms之间)

6、添加脚本(http请求)

7、添加->监听器

8、在最后添加一个聚合报告,添加处:添加->监听器

第三章 什么是性能测试?

  • 性能是用来描述产品除功能外的所具有的速度,效率和能力的综合能力评价
  • 对产品或是物品的性能惊喜定性或是定量的量测过程
  • 在这个过程中我们使用一些工具来进行场景的模拟,从而进行性能测试

第四章  性能测试案例

测试需求:测试20个用户访问网站在负载达到30QPS时的平均响应时间

QPS:Query Per Second 每秒查询率。(一台查询服务器每秒能够处理的查询次数,作为域名服务器的性能经常用每秒查询率来衡量)

测试步骤

1、添加线程组(线程数+准备时长+循环次数)

1.1、线程数:虚拟用户数,一个虚拟用户占用一个进程或线程(设置多少个虚拟用户=设置多少个线程)

1.2、准备时长(s):设置的虚拟用户数需要多长时间全部启动。eg:线程数为20,准备时长为10,则说明需要10秒钟启动20个进程。

1.3、循环次数:每个线程发送请求的次数。eg:线程数为20,循环次数为5,那么每个线程发送5次请求,总请求数为20*5=100

2、添加HTTP请求

3、设置QPS限制:控制给定的取样器发送请求的吞吐量

4、添加监视器-聚合报告、察看结果树

5、运行脚本

6、聚合报告解析(响应时间单位:毫秒)

1)Label:每个Jmeter的element都有一个Name属性,这里显示的就是Name属性的值

2)#Sample:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

3)Average:平均响应时间-默认情况下是单个Request的平均响应时间当使用了Transaction Controller 时,也可以以Transaction为单位显示平均响应时间

4)Median:中位数,50%用户的响应时间

5)90%Line:90%用户响应时间

6)Min:最小响应时间

7)Max:最大响应时间

8)Error%:本次测试中出现错误的请求的数量/请求的总数

9)Throughput:吞吐量-默认情况下白石每秒的请求数

10)KB/sec:每秒从服务器端接收到的数据量

第五章  性能测试的分类

性能测试的分类

压力测试、负载测试、并发测试、稳定性测试

什么是压力测试?

压力测试也叫强度测试,它是指逐步给系统增加压力,测试系统的性能变化,使系统某些资源达到饱和或系统崩溃的边缘,从而确定系统所能承受的最大压力

举个例子:百米赛跑,逐步增加你的负重,直到你完不成百米的程度,也就是崩溃的边缘你所能承受的最大负重

什么是负载测试?

被测试系统正常服务的前提下,系统所能承担的最大服务负荷数量(即最大并发数量),最终分析出系统性能的瓶颈

举个例子:百米赛跑,设置必须15秒完成,负重奔跑(不断增加负重)

压力测试和负载测试的区别

压力测试要测试出系统即将崩溃时,能够承受的最大并发数

负载测试是满足系统指标要求的情况下,能够承受的最大并发数

什么是并发测试

举个例子:商场卖货,售后员根据库存表单记录表卖货

仓库管理员应该在出货时同时更新库存表单记录表,但由于用户过多,表单记录更新不及时

导致仓库已经没有货了,但是售货员看到库存表单记录表中还显示有库存,仍然在卖货,但已经发不出去货了

第六章  性能测试流程

1.分析性能需求。挑选用户使用最频繁的场景来测试,比如:登陆,搜索,下单等等。确定性能指标,比如:事务通过率为100%,TOP99%是5秒,最大并发用户为1000人,CPU和内存的使用率在70%以下

2.制定性能测试计划,明确测试时间(通常在功能稳定后,如第一轮测试后进行)和测试环境和测试工具

3.编写测试用例

4.搭建测试环境,准备好测试数据

5.编写性能测试脚本

6.性能测试脚本调优。设置检查点、参数化、关联、集合点、事务,调整思考时间,删除冗余脚本

7.设计测试场景,运行测试脚本,监控服务器,

8.分析测试结果,收集相关的日志提单给开发

9.回归性能测试

10.编写测试报告

未完待续,你的点赞是我更新的最大动力!

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

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

相关文章

《玩转smardaten | GIS地图无码化配置全方位指南》

GIS地图作为一种特殊图表,将地理位置信息和地图结合起来进行处理、管理和分析。 这些地图可以让用户以多种方式查看、分析和解释地理数据,包括创建图层、生成主题地图和执行空间分析等,更加形象完整的辅助数据可视化。常用的场景如&#x1f…

MATLAB中norm函数用法

目录 语法 说明 示例 向量模 向量的 1-范数 两个点之间的欧几里德距离 矩阵的 2-范数 N 维数组的 Frobenius 范数 常规向量范数 norm函数的功能是计算向量范数和矩阵范数。 语法 n norm(v) n norm(v,p) n norm(X) n norm(X,p) n norm(X,"fro") 说明…

Python二级 每周练习题20

练习一: 日期计算器 设计一款日期计算程序,能否实现下面的功能: (1)要求用户分别输入年、月、日(分三次输入); (2)程序自动会根据输入的年月日计算出这一天是这一年的第几天; (3)输出格式为:这…

Tomcat基础与优化

Tomcat介绍 Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,Tomcat具有处理HTML页面的功能,通常作为一个Servlet和JSP容器,单独运行…

上网行为监管软件(上网行为管理软件通常具有哪些功能)

在我们的日常生活中,互联网已经成为了我们获取信息、交流思想、进行工作和娱乐的重要平台。然而,随着互联网的普及和使用,网络安全问题也日益突出,尤其是个人隐私保护和网络行为的规范。在这个背景下,上网行为审计软件…

蜜雪冰城涨价怒赞无数 雪王张红超卷出一条阳道

作者:积溪 简评:最近雪王涨价一元登上了热搜,但评论区却是一片和谐,雪王的魅力究竟是如何养成的?#蜜雪冰城 #雪王 #张红超 #奶茶 别的品牌涨价,只有吐槽声一片;但它涨价,却是网友们…

携手低代码平台公司,创造高效率办公!

当前,什么样的平台产品可以实现高效率办公?随着社会化发展程度的推进发展,很多客户朋友希望找到更理想的平台产品,助力企业管理好内部数据,起到链接互通各部门沟通桥梁的作用。低代码开发平台就是其中一种理想的得力助…

如何看待著名游戏引擎 Unity 宣布将更改收费模式,收取「运行时费用」?这将造成哪些影响?

先下结论:Unity 的高管是不是【不友善内容,请于 24 小时内及时更改】? 简单介绍下这个收费模式:年收入大于 20w 美金且安装量大于 20w 的,每一份额外下载需要给 Unity 交 0.2 刀。 首先:听上去好像不会影响…

使用显著性检测的可见光和红外图像的两尺度图像融合(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

树结构数据在table中回显 treeselect disabled

<el-table-column label"产业认定" align"center" prop"industryIdentification"><template slot-scope"scope"><treeselectv-if"scope.row.industryIdentification"v-model"scope.row.industryIdentif…

你听说过推挽电路吗?避免交越失真

推挽电路就是用两个三级管或者场效应管构成的放大电路&#xff0c;这个电路的特点就是输出电阻小&#xff0c;能够驱动大的负载&#xff0c;从而能够使得单片机管脚直接驱动发光二极管、蜂鸣器。上面的三极管是N型三极管&#xff0c;下面的三极管是P型三极管&#xff0c; 当输入…

机器人中的数值优化|【五】BFGS算法非凸/非光滑处理

机器人中的数值优化|【五】BFGS算法的非凸/非光滑处理 往期内容回顾 机器人中的数值优化|【一】数值优化基础 机器人中的数值优化|【二】最速下降法&#xff0c;可行牛顿法的python实现&#xff0c;以Rosenbrock function为例 机器人中的数值优化|【三】无约束优化&#xff0…

Redis的高可用——主从复制、哨兵模式、Redis群集部署

目录 Redis高可用 Redis主从复制 主从复制的作用 主从复制的流程 主从复制部署 Redis哨兵模式 哨兵的核心功能 哨兵模式的作用 哨兵结构的组成 哨兵模式故障转移机制 故障转移过程 哨兵模式部署 Redis群集 集群的作用 Redis集群的数据分片 Redis集群部署 Redi…

手把手教你用 Milvus 和 Towhee 搭建一个 AI 聊天机器人!

作为向量数据库的佼佼者&#xff0c;Milvus 适用于各种需要借助高效和可扩展向量搜索功能的 AI 应用。 举个例子&#xff0c;如果想要搭建一个负责聊天机器人数据管理流程&#xff0c;Milvus 必然是首选向量数据库。那么如何让这个应用程序开发变得易于管理及更好理解&#xff…

构建自动化测试环境:使用Docker和Selenium!

随着软件开发的日益复杂和迭代速度的加快&#xff0c;自动化测试被越来越广泛地应用于软件开发流程中。它能够提高测试效率、减少测试成本&#xff0c;并保证软件质量的稳定性。在构建自动化测试环境方面&#xff0c;Docker 和 Selenium 是两个非常有用的工具。下面将介绍如何使…

cocos2dx查看版本号的方法

打开文件&#xff1a;项目根目录\frameworks\cocos2d-x\docs\RELEASE_NOTES.md 知道引擎版本号的意义&#xff1a; 1.面试中经常被问到(面试官想知道你会不会查版本号&#xff0c;你会查也不一定会去看&#xff0c;如果你去看了说明你是一个有心人&#xff0c;或者想深入研究下…

linux使用操作[3]

文章目录 版权声明环境变量$符号自行设置环境变量 上传、下载rz、sz命令 压缩、解压tar命令压缩tar解压zip 命令压缩文件unzip 命令解压文件 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马程序员或相关权利人…

如何利用人才测评系统提升企业招聘效率

公司需要的是能产出价值的员工&#xff0c;但是要想找到完全符合条件的员工&#xff0c;其实并不容易&#xff0c;尽管应聘的人数很多&#xff0c;但不是跳槽的&#xff0c;就是转行的&#xff0c;要么就只能从应届生培养开始了。 从招聘流程上&#xff0c;以现在的模式&…

SoftwareTest3 - 要了人命的Bug

软件测试基础篇 一 . 如何合理的创建一个 Bug二 . Bug 等级2.1 崩溃2.2 严重2.3 一般2.4 次要 三 . Bug 的生命周期四 . 跟开发产生争执应该怎么解决 Hello , 大家好 , 又给大家带来新的专栏喽 ~ 这个专栏是专门为零基础小白从 0 到 1 了解软件测试基础理论设计的 , 虽然还不足…

Rabbit消息的可靠性

生产者重连 消费者重试 Confirm模式简介 消息的confirm确认机制&#xff0c;是指生产者投递消息后&#xff0c;到达了消息服务器Broker里面的exchange交换机&#xff0c;则会给生产者一个应答&#xff0c;生产者接收到应答&#xff0c;用来确定这条消息是否正常的发送到Broker…