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

news2025/6/15 4:48:26

目录:导读

    • 前言
    • 一、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性能测试

请添加图片描述

九、总结(尾部小惊喜)

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

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

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

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

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

相关文章

电脑自动录屏软件哪个好用 电脑自动录屏怎么设置

录屏是很多工作都需要进行的操作,很多会议、培训课程、PPT等都可能需要通过屏幕录制的方式来进行分享。但是目前市面上的录屏软件很多,想找到使用便捷且高效的软件并不容易。今天就来分享一下电脑自动录屏软件哪个好用,电脑自动录屏怎么设置。…

条码控件Aspose.BarCode入门教程(5):用Java 生成和扫描二维码

Aspose.BarCode for .NET 是一个功能强大的API,可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能,以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。 Aspose API支持流行文件格式处理&am…

学习数据结构第4天(线性表的顺序表示)

线性表的顺序表示顺序表的定义顺序表的基本操作顺序表的定义 线性表的顺序存储又称顺序表。顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储时指用一组地址连续的存储单元,依次存储线性表中的各个元素。因此线性表中任一数据元素都可…

60行代码出炫酷效果之 python语音控制电脑壁纸切换

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 电脑大家有吧!手大家有吧!今天!! 就由我带领大家用区区60行代码打造一款语音壁纸切换器程序!!! 单纯的桌面有时候会让人觉得单调&#xff0c…

vue.js实现带表情评论功能前后端实现(仿B站评论)

文章目录学习链接效果图后台建表评论表(重要)用户表实体类CommentUserCommentDTO(重要)WebConfig配置配置跨域和静态资源文件夹Mybatisplus相关类MyBatisPlusConfig 配置分页插件CommentMapperCommentMapper.xml(非常重…

git 将其它分支的文件检出到工作区

主要是使用如下命令&#xff1a; git checkout [-f|--ours|--theirs|-m|--conflict<style>] [<tree-ish>] [--] <pathspec>…​覆盖与 pathspec 匹配的文件的内容。当没有给出<tree-ish> (通常是一个commit)时&#xff0c;用 index 中的内容覆盖工作树…

高频电流探头示波器电流探头的功能检验和消磁操作

高频电流探头运用了成熟的霍尔效应技术并与示波器接口相结合。主要特点包括&#xff1a;分芯结构&#xff0c;简便地连接电路&#xff1b;AC / DC测量能力&#xff1b;精度1%5mV&#xff1b;连接的仪器上直接显示读数。 功能检验&#xff1a; 1、探头连接示波器&#xff1b; 2…

OpenAI Embedding:基于人工智能的搜索新篇章

theme: orange 本文正在参加「金石计划」 Embedding模型在许多应用场景中都有广泛的应用。在OpenAI中&#xff0c;文本嵌入技术主要用于衡量文本字符串之间的相关性。 什么是Embedding 嵌入(Embeddings)是一种将离散变量表示为连续向量的方法。它在机器学习中起到了不可或缺的作…

字节分享的软件测试《面试笔记》文档,让我直呼卧槽卧槽

我有一个朋友&#xff08;真是朋友&#xff0c;不是我啊&#xff09;&#xff0c;前几年环境好的时候入的行&#xff0c;那时候软件测试的要求真的很低&#xff0c;他那时好像是报了个班&#xff0c;然后入门的&#xff0c;但学的都是些基础&#xff0c;自动化涉及了一点&#…

天坑,后悔进那外包啊......

关于计算机专业应届生毕业之后会遇到的就业问题&#xff0c;网上已经有许多的套路&#xff0c;实际上许多人在选择专业的时候并没有考虑到之后的就业方向&#xff0c;甚至于自己所学的专业面向的工作岗位都不是特别清楚。计算机专业毕业大概率是要做程序员的&#xff0c;而目前…

【Java EE】-多线程编程(九) 锁策略CAS锁优化

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 分享&#xff1a; 主要内容&#xff1a;乐观锁VS悲观锁、轻量级锁VS重量级锁、自旋锁VS挂起等待锁、互斥锁VS读写锁、公平锁VS非公平锁、可重入锁VS不可重入锁。CAS实…

docker 执行springboot 报数据源找不到

本地运行springboot项目完全正常&#xff0c;在docker中开启容器&#xff0c;报错&#xff0c;如下&#xff1a; 解决方案&#xff1a;特别简单&#xff08;经过摸爬滚打得出来的结论&#xff09; <resources><resource><directory>src/main/resources</d…

Hum Brain Mapp | 双语者语言控制的遗传基础:一项EEG研究

双语者似乎具有一种独特的能力&#xff0c;在使用一种语言时暂时“忽略”另一种语言&#xff0c;避免无关语言不必要的干扰。这种排除干扰的过程被称为语言控制。部分研究认为双语者的语言控制是通过调用一系列执行功能&#xff0c;如抑制、注意控制、更新、冲突监测和工作记忆…

Linux 云服务器好用吗?(解读Linux云服务器的特点优势)

​  如今&#xff0c;云计算越来越受欢迎&#xff0c;许多公司正在将业务转移到那里。企业向云过渡的主要原因是它提供的众多服务&#xff0c;包括安全和充足的存储、数据库、服务器和其他关键元素。 作为相对前|沿的技术之一&#xff0c;云建立在虚拟服务器上。Linux 服务器…

2.30、守护进程(1)

2.30、守护进程&#xff08;1&#xff09;1.终端是什么2.进程组是什么3.会话是什么4.进程组、会话、控制终端之间的关系5.进程组、会话操作有哪些函数①pid_t getpgrp(void);②pid_t getpgid(pid_t pid);③int setpgid(pid_t pid, pid_t pgid);④pid_t getsid(pid_t pid);⑥pid…

【Java8】新的日期和时间API

【Java8】新的日期和时间API前言为什么要设计新的API&#xff1f;使用LocalDate、LocalTime、LocalDateTimeLocalDateLocalTimeLocalDateTime 合并日期和时间改变日期打印输出及解析日期-时间对象Date和LocalDate、LocalDateTime转换《Java8实战》读书笔记 前言 为什么要设计新…

十二载征程犹未止,看今朝星光尽闪耀丨万字长文回顾2023数据技术嘉年华

4月8日下午&#xff0c;为期两天的第十二届数据技术嘉年华&#xff08;DTC 2023&#xff09;在北京新云南皇冠假日酒店圆满落下帷幕。大会得到了工业和信息化部电子五所的支持和指导&#xff0c;围绕“开源融合数字化——引领数据技术发展&#xff0c;释放数据要素价值”这一主…

基于Spring Boot和Vue3打造一个属于自己的博客平台CodeInsight

CodeInsight是一个基于Spring Boot和Vue3技术栈的博客平台&#xff0c;为开发者和技术爱好者提供了一个专注于现代编程技术分享与学习的高质量平台。在本文中&#xff0c;我们将详细介绍CodeInsight的特点、功能模块以及付费专栏内容。 目录: 《用户体验与交互设计实践》 用户模…

AI新宠:Prompt Learning,用提示学习调教大模型

“提示学习”对于很多人来说都是新名词&#xff0c;Prompt Learning 和 Prompting 这两者之间有什么区别和联系呢&#xff1f;现在的一些大模型如何利用“提示语言”呢&#xff1f;本期直播课为大家做了详细介绍&#xff0c;从 AI 范式的一个变迁&#xff0c;到提示学习&#x…

LVGL V9.0基于VS2022仿真搭建(2)

完整Demo&#xff0c;lvgl,lvgl_drivers相关资料下载 链接&#xff1a;https://pan.baidu.com/s/1h3OKCIBQRX0Hn7KjZsynqg 提取码&#xff1a;sc2l 下载的lv_drivers中的win32drv.c及win32drv.h文件是做了修改的&#xff0c;官网下载的lv_drivers编译会报错&#xff0c;因为l…