当前位置: 首页 > news >正文

全网最详细,Jmeter性能测试-性能基础详解,终成测试卷王(一)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

发起请求

发起HTTP、HTTPS协议请求就不多说了。比较基础的了

写脚本的注意事项:
1、用Jmeter发起请求,必须写上协议,不然会向http和https各发起一次请求
2、填域名或者IP时,不能有“/”
3、填路径时,不要把IP或者域名填进来
4、注意路径前后是否有空格,有的话要删掉,不然会把空格转换为%20(urlencode编码)一起发起请求
5、内容编码一般默认是utf8,如果出现乱码可以查看本页最底下的场景异常。
6、注意请求体的选择

参数与消息体的选择

在编写HTTP请求时,请求体的内容可以在参数和消息体数据中二选一。
但这两者并不是随便选的,参数里面的值是会跟在Url后面的,而消息体数据的值则是放在请求体内的。

参数
1、GET请求只能使用参数的方式;
2、Post请求要看Content-Type是什么值,如果是x-www-from-urlencoded则是使用参数;
3、如果Post请求不指名请求体类型,也是使用参数传值

消息体数据

1、Post请求的Content-Type的值是application/json就是用的消息体数据;
2、xml格式的请求体是在消息体数据里面写;

重定向

HTT取样器这里有几个很容易忽略的地方

请添加图片描述

自动重定向
不会显示中间重定向过程,无法从过程中提取信息。

跟随重定向
会自动显示重定向过程,能从过程中提取想要的信息,可用于后面接口请求。

KeepAlive
保持连接、长连接。由于现在使用的HTTP版本是1.1就是长连接,所以默认是勾选KeepAlive。
但是在性能测试中,我们会根据需要去掉这个勾。因为在性能测试会产生大量的请求,每个请求会使用一个本机的端口,如果这些请求一直保持着连接,也会影响到本机的资源,所以在部分场景下会需要缩短连接的时间,不勾选KeepAlive。
大部分场景下上面所说的不需要改动,保持默认即可。

查看结果树

查看结果数中,绿色只是代表网络成功,不代表结果是否准确;
红色代表失败,但失败的原因也有很多种,具体情况具体分析。

结果树中的显示顺序是根据收到响应的先后顺序显示,所以在多用户的场景下,查看结果树的结果顺序未必是相同的。

配置原件执行顺序

配置原件的执行顺序很重要,请牢记!
1、测试计划是根目录,肯定是最先执行的,这里不解释了。
2、线程组中有setup和teardown线程组,setup线程组是所有线程组之中最先执行的;teardown则是所有线程组执行完成后才执行的。
3、其余线程组之间是并行的。

断言

在接口测试、自动化测试脚本中一定会添加断言,断言的目的是判断是否有bug。但是断言这个元件在执行时会消耗资源,虽然消耗的资源都是来自于本机的,但在性能测试中还是不推荐加断言。

在性能测试时,本机的资源也会影响性能测试的结果。
例如原本机器能发起1000个并发,但由于加了断言,实际可能只达到了900个并发,但你设置的并发却是1000个,这样你得到的性能结果就并不准确了。

聚合报告

请添加图片描述

要看聚合报告有个提前条件:

1、没有网络瓶颈

因为在很多时候,在看聚合报告时会把吞吐量的值等价为TPS的值,但实际上吞吐量是衡量网络的指标值,在网络中传递事务的数量有多少个;
而Tps是服务器每秒处理的事务数。

举个例子:一个药厂每天可以生成10000支疫苗,但因为运输的问题,每天只有8000支疫苗运出,那这难道就能说这个药厂的Tps是8000吗?

如果要判断性能瓶颈,可以看聚合报告最后两列,它们是吞吐率。通过这个可以看出是否存在网络带宽。

平常讲带宽时,讲的百兆带宽,它的单位是100Mb,但再去看聚合报告里面的,它的单位是KB。这里面小写b和大写B是不相等的,它们之间是8倍的关系。 100Mb = 100 * 1024kb = 102400kb/8 = 12800KB。然后如果是1兆的带宽那就是 1Mb= 1 * 1024kb = 1024kb/8=128KB。

基于上述的公式,结合自己的带宽再来看看聚合报告,如果接受和发送的KB没有接近理论值,那就是没有网络瓶颈。

补充一点,企业级的带宽与民用带宽不一样,企业级的带宽上行比较宽,下行比较窄,而民用带宽则是相反。

2、并发用户数不变

负载测试时,并发用户数会随着时间变化而变化,而聚合报告是计算的平均值,一旦并发用户数发生变化,那值就不准确了。

聚合报告中每一行都是一种事务

每一列的意思:
样本:在运行过程中,所有并发用户数在一段时间内总共发起的请求数
单独看样本是无法知道并发用户数、执行时长,但并发用户数和执行时长可以在线程组里面看。

然后当并发用户数、执行时长、样本是已知时,那就可以计算出Tps:
并发用户数® * 时长(S) * 频率§ = 样本数
10R * 60S * P = 500
P ≈ 0.83 意思就是每个用户每秒钟发起0.83个请求,那10个用户就是每秒钟8.3个请求

平均值、中位数、…最小值:这些都是响应时间,单位是毫秒ms
其中90%、95%、99%的意思是总共的样本里有百分之90、95、99的请求小于等于聚合报告里的值。
90%~95%是比较有参考价值的。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要你仍有梦想,你就还有机会。不管你现在处于什么位置,只要你拥有勇气与毅力,就能够战胜困难。无论前方会遭遇怎样的挑战,我们都要坚持走下去,为了理想而奋斗。

只有勇敢面对挑战,才能收获胜利的喜悦;只有不断努力奋斗,才能谱写人生最美妙的篇章。

只有在努力奋斗的过程中,我们才能真正感受到生命的存在。每一份汗水都是成就的铸造,每一次坚持都是梦想的践行。让我们怀揣着信念,不断向前,勇往直前。

相关文章:

全网最详细,Jmeter性能测试-性能基础详解,终成测试卷王(一)

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 发起请求 发起HTTP…...

人工智能概述

一、人工智能发展必备三要素 算法 数据 算力 CPU、GPU、TPU 计算力之CPU、GPU对比: CPU主要适合I\O密集型任务GPU主要适合计算密集型任务 什么样的程序适合在GPU上运行? 计算密集型的程序 所谓计算密集型(Compute-intensive)的程序,就是…...

API接口安全—webservice、Swagger、WEBpack

API接口安全—webservice、Swagger、WEBpack1. API接口介绍1.1. 常用的API接口类1.1.1. API接口分类1.1.1.1. 类库型API1.1.1.2. 操作系统型API1.1.1.3. 远程应用型API1.1.1.4. WEB应用型API1.1.1.5. 总结1.1.2. API接口类型1.1.2.1. HTTP类接口1.1.2.2. RPC类接口1.1.2.3. web…...

从前M个字母中取N个的无重复排列 [2*+]

目录 从前M个字母中取N个的无重复排列 [2*+] 程序设计 程序分析 从前M个字母中取N个的无重复排列 [2*+] 输出从前M个字母中取N个的无重复字母排列 Input 输入M N 1<=M=10, N<=M Output 按字典序输出排列 Sample Input 4 2 Sample Output A B A C A D B A B C B …...

ES forceMerge 强制段合并为什么会提升检索性能?

根据以前的测试&#xff0c;forceMerge段合并&#xff0c;将段的个数合并成一个。带来了将近一倍的性能提升&#xff0c;测试过程文档&#xff08;请参考我的另外一篇文章&#xff09;&#xff1a;ES优化实战- forceMerge搜索提升测试报告_es forcemerge_水的精神的博客-CSDN博…...

macOS Ventura 13.3.1 (22E261) Boot ISO 原版可引导镜像

本站下载的 macOS 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U 盘安装&#xff0c;或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 macOS Ventura 13.3.1 为 Mac 提供下…...

html+css+JavaScript+json+servlet的社区系统(手把手教学)

目录 课前导读&#xff1a; 一、系统前期准备 二、前端代码的编写 三、登陆页面简介 四、注册页面 五、社区列表页 六、社区详情页 七、社区发帖页 八、注销 九、访问链接 登陆页面http://175.178.20.77:8080/java106_blog_system/login.html 总结&#xff1a; 课前…...

UI Toolkit(1)

UI ToolkitUI Toolkit界面画布设置背景制作UI布局UI Toolkit界面 在Unity 2021LTS版本之后UI Toolkit也被内置在Unity中&#xff0c;Unity有意的想让UI Toolkit 成为UI的主要搭建方式&#xff0c;当然与UGUI相比还是有一定的差别。他们各有有点&#xff0c;这次我们就开始介绍…...

vLive带你走进虚拟直播世界

虚拟直播是什么&#xff1f; 虚拟直播是基于5G实时渲染技术&#xff0c;在绿幕环境下拍摄画面&#xff0c;通过实时抠像、渲染与合成&#xff0c;再推流到直播平台的一种直播技术。尽管这种技术早已被影视工业所采用&#xff0c;但在全民化进程中却是困难重重&#xff0c;面临…...

初谈 ChatGPT

引子 最近&#xff0c;小编发现互联网中的大 V 突然都在用 ChatGPT 做宣传&#xff1a;“ChatGPT不会淘汰你&#xff0c;能驾驭ChatGPT的人会淘汰你”、“带领一小部分人先驾驭ChatGPT”。 确实&#xff0c;ChatGPT这个新生事物&#xff0c;如今被视为蒸汽机、电脑、iPhone 般的…...

JAVA练习103-螺旋矩阵

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 4月9日练习内容 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、题目-螺…...

RecvByteBufAllocator内存分配计算

虽然了解了整个内存池管理的细节&#xff0c;包括它的内存分配的具体逻辑&#xff0c;但是每次从NioSocketChannel中读取数据时&#xff0c;应该分配多少内存去读呢&#xff1f; 例如&#xff0c;客户端发送的数据为1KB , 应该分配多少内存去读呢&#xff1f; 例如&#xff1a;…...

图数据结构与算法

什么是图数据的结构 图是由顶点和边组成的非线性数据结构。顶点有时也称为节点,边是连接图中任意两个节点的线或弧。更正式地说,图由一组顶点 ( V ) 和一组边 ( E ) 组成。该图由 G(E, V) 表示。 图的组成部分 顶点:顶点是图的基本单位。有时,顶点也称为顶点或节点。每个节…...

科普:c语言与C++的区别

C语言和C语言是两种广泛使用的编程语言&#xff0c;尽管它们非常相似&#xff0c;但它们在某些方面也存在不同之处。本文将详细介绍C语言和C语言的区别。 1. 编程范式 C语言是一种过程式编程语言&#xff0c;它的设计目标是为了编写操作系统和其他系统级编程。C语言是一种面向…...

流量整形(GTS和LR)

Generic Traffic Shaping通用流量整形 通用流量整形(简称GTS)可以对不规则或不符合预定流量特性的流量进行整形,以保证网络上下游之间的带宽匹配,避免拥塞发生。 GTS与CAR一样,都采用了令牌桶技术来控制流量。GTS与CAR的主要区别在于:利用CAR进行报文流量控制时,…...

Java接口详细讲解

目录 Java接口概念 Java接口主要有以下特点 Java接口的具体作用 定义接口 实现接口 接口继承 默认方法 静态方法 Java接口概念 Java编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。 …...

元宇宙地产暴跌,林俊杰亏麻了

文/章鱼哥出品/陀螺财经随着元宇宙的兴起&#xff0c;元宇宙地产曾一度被寄予厚望&#xff0c;成为各大投资者追捧的对象。然而&#xff0c;最近的一次元宇宙地产价值暴跌再次提醒我们&#xff0c;高收益背后可能伴随着高风险。根据元宇宙分析平台WeMeta的数据显示&#xff0c;…...

什么是瀑布流布局?瀑布流式布局的优缺点

瀑布流又称瀑布流式布局&#xff0c;是一种多列等宽不等高的一种页面布局方式。 视觉表现为参差不齐的多栏布局。随着页面滚动条向下滚动&#xff0c;这种布局会不断加载数据并附加至当前的尾部。 是一种多列等宽不等高的一种页面布局方式&#xff0c;用于图片比较复杂&#…...

给您的 MongoDB 定期做个体检:MongoDB 诊断

新钛云服已累计为您分享739篇技术干货接下来的一些列文章会为大家介绍日常工作中常用的 NoSQL 产品 MongoDB。主要涉及到&#xff1a;MongoDB 的安装及基本使用 MongoDB 文档查询 MongoDB 复制集 MongoDB 分片集群的介绍及搭建 MongoDB 安全加密 MongoDB 诊断我们会用…...

【云原生进阶之容器】第五章容器运行时5.8--容器热迁移

《云原生进阶之容器》专题索引: 第一章Docker核心技术1.1节——Docker综述第一章Docker核心技术1.2节——Linux容器LXC第一章Docker核心技术1.3节——命名空间Namespace第一章Docker核心技术1.4节——chroot技术第一章Docker核心技术1.5.1节——cgroup综述...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...