🚀 作者 :“二当家-小 D”
🚀 博主简介:⭐前荔枝 FM 架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人,8 年开发架构经验,精通 java, 擅长分布式高并发架构, 自动化压力测试,微服务容器化 k8s 等
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬
🍅文末获取源码联系 配套笔记打包🍅
一、零基础掌握 Http 基础协议和解析实战
1. 浏览器的 B/S 架构和 C/S 架构你知道多少
简介:浏览器的 B/S 架构和 C/S 架构你知道多少
-
什么是 CS 架构 客户机-服务器,即 Client-Server(C/S)结构 但是缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度
-
什么是 BS 架构 B/S 架构即浏览器和服务器架构模式,是 WEB 兴起后的一种网络架构模式 WEB 浏览器是客户端最主要的应用软件 统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用
-
什么是 URL(统⼀资源定位符,获取服务器资源的一种)
- 标准格式: 协议://服务器 IP: 端⼝/路径 1/路径 N ? key1 = value1 & key2 = value2
-
例子
- https://xdclass.net/#/index
- https://xdclass.net/videoListPage?id = 1&cid = 88
- http 默认端口 80
- https 默认端口 443
-
协议:不同的协议有不同的解析⽅式
-
服务器 ip: ⽹络中存在⽆数的主机, 要访问的哪⼀台, 通过公⽹ ip 区分
-
端⼝: ⼀台主机上运⾏着很多的进程,为了区分不同进程,⼀个端⼝对应⼀个进程,http 默认的端⼝是 80
-
路径: 资源 N 多种,为了更进⼀步区分资源所在的路径(后端接⼝,⼀般称为 “接⼝路径”,“接⼝”)
-
- 标准格式: 协议://服务器 IP: 端⼝/路径 1/路径 N ? key1 = value1 & key2 = value2
2. HyperText Transfer Protocol 超文本传输协议
简介:什么是 Http 超文本传输协议
-
协议
-
协议是⼀种约定,规定好⼀种信息的格式,如果发送⽅按照这种请求格式发送信息,那么接 收端就要按照这样的格式解析数据,这就是协议
-
json 协议
{ "name":"jack", "age":23 }
-
xml 协议
<user> <name> jack </name> <age> 234 </age> <pwd> 2342423</pwd> </user>
-
http 超文本传输协议
-
-
什么是 http 协议
- 即超⽂本传送协议(Hypertext Transfer Protocol ),是 Web 联⽹的基础,也是⼿机 PC 联⽹常⽤的协议之⼀,HTTP 协议是建⽴在 TCP 协议之上的⼀种应⽤
- HTTP 连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,从建⽴连接到关闭连接的过程称为“⼀次连接”
- HTTP 请求-HTTP 响应
- 响应码:
- 1xx: 信息
- 2xx: 成功 200 OK,请求正常
- 3xx: 重定向
- 4xx: 客户端错误 404 Not Found 服务器⽆法找到被请求的⻚⾯
- 5xx: 服务器错误 503 Service Unavailable,服务器挂了或者不 可⽤
-
发展历史
- http0.9-》http1.0-》http1.1-》http2.0
- 不多优化协议,增加更多功能
-
和 https 的关系
- Hyper Text Transfer Protocol over SecureSocket Layer
- 主要由两部分组成:HTTP + SSL / TLS
- 比 HTTP 协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性, 增加破解成本
- 缺点:相同网络环境下,HTTPS 协议会使页面的加载时间延长近 50%,增加额外的计算资源消耗,增加 10%到 20%的耗电等;不过利大于弊,所以 Https 是趋势,相关资源损耗也在持续下降
- 如果做软件压测:直接压测内网 ip,通过压测公网域名,不管是 http 还是 https,都会带来额外的损耗导致结果不准确
3. 超文本传输协议 Http 消息体拆分讲解
简介:讲解 Http 协议消息体拆分讲解
-
Http 请求消息结构
- 请求行
- 请求方法
- URL 地址
- 协议名
- 请求头
- 报文头包含若干个属性 格式为“属性名: 属性值”,
- 服务端据此获取客户端的基本信息
- 请求体
- 请求的参数,可以是 json 对象,也可以是前端表单生成的 key = value&key = value 的字符串
- 请求行
- Http 响应消息结构
- 响应行
- 报文协议及版本、状态码
- 响应头
- 报文头包含若干个属性 格式为“属性名: 属性值”
- 响应正文
- 响应报文体,我们需要的内容,多种形式比如 html、json、图片、视频文件等
- 响应行
4. HTTP 的九种请求方法和响应码介绍
简介: HTTP 的九种请求方法和响应码介绍
- 浏览器请求方法
- http1.0 定义了三种:
- GET: 向服务器获取资源,比如常见的查询请求
- POST: 向服务器提交数据而发送的请求
- Head: 和 get 类似,返回的响应中没有具体的内容,用于获取报头
- http1.1 定义了六种
- PUT:一般是用于更新请求,比如更新个人信息、商品信息全量更新
- PATCH:PUT 方法的补充, 更新指定资源的部分数据
- DELETE:用于删除指定的资源
- OPTIONS: 获取服务器支持的 HTTP 请求方法, 服务器性能、跨域检查等
- CONNECT: 方法的作用就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户,网页开发基本不用这个方法,如果是 http 代理就会使用这个,让服务器代理用户去访问其他网页,类似中介
- TRACE:回显服务器收到的请求,主要用于测试或诊断
- http1.0 定义了三种:
-
Http 响应码
- 浏览器向服务器请求时,服务端响应的消息头里面有状态码,表示请求结果的状态
-
分类
-
1XX: 收到请求,需要请求者继续执行操作,比较少用
-
2XX: 请求成功,常用的 200
-
3XX: 重定向,浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的 URL 地址,这个地址可以从响应的 Location 首部中获取;
- 好处:网站改版、域名迁移等,多个域名指向同个主站导流
- 必须记住
- 301:永久性跳转,比如域名过期,换个域名
- 302:临时性跳转
-
4XX: 客户端出错,请求包含语法错误或者无法完成请求
- 必须记住
- 400: 请求出错,比如语法协议
- 403: 没权限访问
- 404: 找不到这个路径对应的接口或者文件
- 405: 不允许此方法进行提交,Method not allowed,比如接口一定要 POST 方式,而你是用了 GET
- 必须记住
-
5XX: 服务端出错,服务器在处理请求的过程中发生了错误
- 必须记住
- 500: 服务器内部报错了,完成不了这次请求
- 503: 服务器宕机
- 必须记住
-
5. Http 请求头知识点讲解
简介:讲解 http 常见请求头讲解
- http 请求分为三部分:请求行,请求头, 请求体
- 请求头
- 报文头包含若干个属性 格式为“属性名: 属性值”,
- 服务端据此获取客户端的基本信息
- 常见的请求头
- Accept: 览器支持的 MIME 媒体类型, 比如 text/html, application/json, image/webp, / 等
- Accept-Encoding: 浏览器发给服务器, 声明浏览器支持的编码类型,gzip, deflate
- Accept-Language: 客户端接受的语言格式, 比如 zh-CN
- Connection: keep-alive , 开启 HTTP 持久连接
- Host:服务器的域名
- Origin:告诉服务器请求从哪里发起的,仅包括协议和域名 CORS 跨域请求中可以看到 response 有对应的 header,Access-Control-Allow-Origin
- Referer:告诉服务器请求的原始资源的 URI,其用于所有类型的请求,并且包括:协议+域名+查询参数; 很多抢购服务会用这个做限制,必须通过某个入来进来才有效
- User-Agent: 服务器通过这个请求头判断用户的软件的应用类型、操作系统、软件开发商以及版本号、浏览器内核信息等; 风控系统、反作弊系统、反爬虫系统等基本会采集这类信息做参考
- Cookie: 表示服务端给客户端传的 http 请求状态, 也是多个 key = value 形式组合,比如登录后的令牌等
- Content-Type: HTTP 请求提交的内容类型,post 提交时才需要设置,比如文件上传,表单提交、json 等
- form 表单提交:application/x-www-form-urlencoded
- json 方式提交:application/json
6. Http 响应头知识点讲解
简介:讲解 Http 响应头知识点
- 响应头
- 报文头包含若干个属性 格式为“属性名: 属性值”
- 常见的响应头
- Allow: 服务器支持哪些请求方法
- Content-Length: 响应体的字节长度
- Content-Type: 响应体的 MIME 类型
- Content-Encoding: 设置数据使用的编码类型
- Date: 设置消息发送的日期和时间
- Expires: 设置响应体的过期时间, 一个 GMT 时间,表示该缓存的有效时间
- cache-control: Expires 的作用一致,都是指明当前资源的有效期, 控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据, 优先级高于 Expires, 控制粒度更细,如 max-age = 240,即 4 分钟
- Location:表示客户应当到哪里去获取资源,一般同时设置状态代码为 3xx
- Server: 服务器名称
- Transfer-Encoding:chunked 表示输出的内容长度不能确定,静态网页一般没,基本出现在动态网页里面
- Access-Control-Allow-Origin: 定哪些站点可以参与跨站资源共享
7. Http 常见请求/响应头 content-type 内容类型讲解
简介:讲解 Http 里面的 content-type 媒体类型讲解
-
Content-type: 用来指定不同格式的请求响应信息,俗称 MIME 媒体类型
-
常见的取值
- text/html :HTML 格式
- text/plain :纯文本格式
- text/xml : XML 格式
- image/gif :gif 图片格式
- image/jpeg :jpg 图片格式
- image/png:png 图片格式
- application/json:JSON 数据格式
- application/pdf :pdf 格式
- application/octet-stream :二进制流数据,一般是文件下载
- application/x-www-form-urlencoded:form 表单默认的提交数据的格式,会编码成 key = value 格式
- multipart/form-data: 表单中需要上传文件的文件格式类型
-
Http 知识加深文档:https://developer.mozilla.org/zh-CN/docs/Web/HTTP
二、性能测试工具 Jmeter 实战和接口环境准备
1. 性能测试分类和常见工具
简介:性能测试分类和常见工具
-
性能测试分类
-
性能测试:
- 对系统不断施压,验证系统在资源范围内【是否达到性能指标】
- 通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
-
压力测试
- 超过安全负载后对系统不断施压,直到系统崩溃,得出【系统最大承受能力】
- 通过在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响
-
负载测试
- 对系统不断施压,当 1 项以上指标达到临界值后继续加压,看【系统处理能力变化】
-
稳定性测试
- 确定软硬件配置情况下,对系统分配一定的业务压力运行一段时间,检查【系统是否稳定】
-
- 常见工具
- LoadRunner
- 性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多
- Apache AB(单接口压测最方便)
- 模拟多线程并发请求, ab 命令对发出负载的计算机要求很低,既不会占用很多 CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载, 简单 DDOS 攻击等
- Webbench
- webbench 首先 fork 出多个子进程,每个子进程都循环做 web 访问测试。子进程把访问的结果通过 pipe 告诉父进程,父进程做最终的统计结果。
- Jmeter (GUI )
- 开源免费,功能强大,在互联网公司普遍使用
- 压测不同的协议和应用
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- FTP
- Database via JDBC
- Message-oriented middleware (MOM) via JMS
- Mail - SMTP(S), POP3(S) and IMAP(S)
- TCP 等等
- 使用场景及优点
- 功能测试
- 压力测试
- 分布式压力测试
- 纯 java 开发
- 上手容易,高性能
- 提供测试数据分析
- 各种报表数据图形展示
- LoadRunner
2. 性能测试工具 Jmeter 基本介绍和使用场景
简介 性能测试工具 Jmeter 基本介绍和使用场景
-
什么是 Jmeter
- 是 apache 公司基于 java 开发的一款开源性能测试工具
- 地址: https://jmeter.apache.org/
- 特点
- 开源免费功能强大,在互联网公司普遍使用
- 压测不同的协议和应用
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- FTP
- Database via JDBC
- Message-oriented middleware (MOM) via JMS
- Mail - SMTP(S), POP3(S) and IMAP(S)
- 使用场景及优点
- 支持功能测试、单机和分布式压力测试
- 纯 java 开发
- 上手容易,高性能
- 提供测试数据分析
- 各种报表数据图形展示
- 缺点
- 不支持 html、js 渲染操作,不能做 UI 功能测试
-
文档地址:http://jmeter.apache.org/usermanual/get-started.html
-
注意
-
JMeter 不是浏览器,它在协议级别工作
-
对于 Web 服务和远程服务而言,JMeter 看起来像一个浏览器
-
JMeter 并不执行浏览器支持的所有操作,不像浏览器那样呈现 HTML 页面,不执行 HTML 页面中的 JS
-
3. 多环境快速安装 Jmeter5.x 和汉化
简介: 多环境快速安装 Jmeter5.x 和汉化
- 压测工具本地快速安装 Jmeter5.X
- 需要安装 JDK8 以上(每个人系统不一样,参考指引)
- Win10: https://blog.csdn.net/zuoyun_U/article/details/125159555
- Win11: https://blog.csdn.net/qq_36892928/article/details/122902885
- Mac 苹果:https://blog.csdn.net/qq_50846224/article/details/125925104
- Linux:https://blog.csdn.net/weixin_44130094/article/details/122807798
- 建议安装 JDK 环境,虽然 JRE 也可以,但是压测 https 需要 JDK 里面的 keytool 工具
- 快速下载 https://jmeter.apache.org/download_jmeter.cgi
- 文档地址:http://jmeter.apache.org/usermanual/get-started.html
- 需要安装 JDK8 以上(每个人系统不一样,参考指引)
- 注意
- 要安装 JDK8,因为后续有服务端接口运行需要 JDK8,不要安装最新的 JDK17、JDK21 等
- 常规企业基本都是 JDK8 或 JDK11
-
Jmeter 目录
bin:核心可执行文件,包含配置 jmeter.bat: windows启动文件(window系统一定要配置显示文件拓展名) jmeter: mac或者linux启动文件 jmeter-server:mac或者Liunx分布式压测使用的启动文件 jmeter-server.bat:window分布式压测使用的启动文件 jmeter.properties: 核心配置文件 extras:插件拓展的包 lib:核心的依赖包
-
Jmeter 语言版本中英文切换
- 控制台修改 menu -> options -> choose language
-
配置文件修改
- bin 目录 -> jmeter.properties
- 默认 #language = en
- 改为 language = zh_CN
4. 后端 HTTP 接口运行环境和部署实战
简介:后端 HTTP 接口运行环境和启动实战
-
测试没接口和文档怎么办
-
公司里面 多数都是前后端分离,项目启动后开发人员应该先定义接口文档
-
测试人员应该尽早拿到接口文档进行编写测试用例
-
没文档怎么办?
-
老旧系统:找你上司或者接手的开发人员进行获取;实在没法就只能抓包
- 如果是后端直接返回页面+数据,一次性渲染好,则没法做接口测试
- app:通过客户端 app 抓包
-
如果里面参数涉及复杂的加密逻辑且开发人员不能协助,这个就基本没戏了
-
新系统:找开发人员先定义接口,按照流程规范走,找技术负责人协调
-
-
-
学习 Jmeter 没接口怎么办?
-
我们这边提供了后端程序,直接本地启动运行即可
-
命令行进入程序所在路径启动(win、mac、linux 命令自行参考下)
java -jar xdclass-edu.jar
-
后端接口说明
- 端口 8080
接口介绍 接口路径 参数和备注 method 商品列表 /api/v1/product/list 不用参数 get 登录接口 /api/v1/user/login {“mail”: “794666918@qq.com”, “pwd”: “123456”} post 用户信息 /api/v1/user/info 需要登录,http 的 header 里面加入 token 字段 get 秒杀接口 /api/v1/product/second_kill 不用参数,用于测试接口耗时情况 get 商品详情 /api/v1/product/detail 用于可变参数压测,参数: id 和 title get
-
-
注意
- 登录账号密码,程序里面只提供一个,所以需要按照上面进行操作
- 常规就是 get、post 压测,1 个接口到 100 个接口都类似
- java -jar xdclass-edu.jar 启动不能关闭,是运行程序
5. Jmeter5.X 基础功能组件+线程组和 Sampler
简介:Jmeter5.X 基础功能组件+线程组和 Sampler
-
什么是线程组
- 就是一组线程,并发执行,每个线程可以认为是一个请求
-
添加-> threads-> 线程组(控制总体并发)
线程数:虚拟用户数。一个虚拟用户占用一个进程或线程
准备时长(Ramp-Up Period(in seconds)):全部线程启动的时长,比如100个线程,20秒,则表示20秒内 100个线程都要启动完成,每秒启动5个线程
循环次数:每个线程发送的次数,假如值为5,100个线程,则会发送500次请求,可以勾选永远循环
- 线程组-> 添加-> Sampler(采样器) -> Http (一个线程组下面可以增加几个 Sampler)
名称:采样器名称
注释:对这个采样器的描述
web服务器:
默认协议是http
默认端口是80
服务器名称或IP :请求的目标服务器名称或IP地址
路径:服务器URL
- 查看测试结果
线程组->添加->监听器->察看结果树
线程组->添加->监听器->聚合报告
位置:
放在http采集器级别,获取兄弟节点数据
放在http采样器下面,获取当前http采样器数据
- 存储
- 保存 jmx 性能测试脚本
- 打开已有 jmx 性能测试脚本
6. 完成你的 Jmeter 第一个性能测试接口实战
简介:完成你的 Jmeter 第一个性能测试接口实战
-
性能测试实战
- 打开 Jmeter 压测 http 的 get 接口
-
报告分析
- 察看结果树
-
查看结果树,响应乱码问题解决
- Jmeter 的 bin 目录下,找到 jmeter.properties 文件
#sampleresult.default.encoding=ISO-8859-1的注释去掉, 改成:sampleresult.default.encoding=UTF-8, 重启jmeter即可
7. 特殊的线程组 setUP-tearDown 和调度器实战
简介:特殊的线程组 setUP-tearDown 和调度器实战
-
特殊线程组
- setUP:最先执行,前置工作
- 线程组:中级执行,常规处理
- tearDown:最后执行,收尾工作
-
案例实战
-
线程组里面的调度器
8 Http 采样器复用和 Http 请求头管理实战
简介:Http 采样器复用和 Http 请求头管理
- 需求
- 如果有多个接口,每个接口都需要重复配置 http 协议、ip、端口等相同参数,维护起来麻烦
- 可以通过配置 http 请求默认值 进行默认配置,那对应的线程组则不用重复配置
-
后端接口说明,端口 8080
接口介绍 接口路径 参数和备注 method 商品列表 /api/v1/product/list 不用参数 get 登录接口 /api/v1/user/login {“mail”: “794666918@qq.com”, “pwd”: “123456”} post 用户信息 /api/v1/user/info 需要登录,http 的 header 里面加入 token 字段 get 秒杀接口 /api/v1/product/second_kill 不用参数,用于测试接口耗时情况 get 商品详情 /api/v1/product/detail 用于可变参数压测,参数: id 和 title get -
Http 请求头管理
- 多数 HTTP 接口请求需要添加 HTTP Header 请求头,如何添加?
- 通过 HTTP 信息头管理器即可
Content-Type: application/json
三、Jmeter 聚合报告分析和多案例断言实战
1. Jmeter 实战之压测结果聚合报告分析
简介: Jmeter 实战之压测结果聚合报告分析
-
性能测试的关键点
-
TPS
- Transactions Per Second 每秒事务数, 可以是一个接口、多个接口、一个业务流程
- 包括增删改操作
-
QPS
- Queries Per Second, 每秒查询数, 指一台服务器每秒能够响应的查询次数
- QPS 只是一个简单查询的统计,不能描述增删改等操作
- 如果只是查询操作 TPS = QPS
-
RT
- 响应时间
-
-
新增聚合报告:线程组-> 添加-> 监听器-> 聚合报告(Aggregate Report)
-
参数配置:500 线程数,20 秒持续压测
- 参数配置:3000 线程数,20 秒持续压测
-
如何得出最佳性能指标
- 500 线程 和 3000 线程,500 线程每次增加 300 个线程,持续压测得出最佳的吞吐量,此时线程数就是最佳
-
参数解读
lable: sampler的名称
Samples: 一共发出去多少请求,例如10个用户,循环10次,则是 100
Average: 平均响应时间
Median: 中位数,也就是 50% 用户的响应时间
90% Line : 90% 用户的响应不会超过该时间 (90% of the samples took no more than this time. The remaining samples at least as long as this)
95% Line : 95% 用户的响应不会超过该时间
99% Line : 99% 用户的响应不会超过该时间
min : 最小响应时间
max : 最大响应时间
Error%:错误的请求的数量/请求的总数
Throughput: 吞吐量——默认情况下表示每秒完成的请求数(Request per Second) 可类比为qps
KB/Sec: 每秒接收数据量
2. Jmeter 实战压测结果之响应断言
简介: Jmeter 实战之压测结果响应断言
-
什么是断言 assert
-
指期望用户指定的条件满足,它是当用户定义的约束条件不满足时触发异常
-
简单说:**判断程序结果是否符合预期 **
-
什么时候应该用断言
-
多数情况都可以,但是推荐使用较为简单的断言,比如响应断言
-
复杂断言会消耗压测机器的性能
-
-
-
增加断言
- 步骤: 线程组 -> 添加 -> 断言 -> 响应断言
- 测试字段(选择哪些字段进行断言)
- **响应文本 Text response: ** 响应服务器返回的文本内容
- 响应代码 Response Code: 断言 Http 响应码是否符合预期,比如 200
- 响应消息 Response Message : 验证响应消息是否按预期显示
- 响应标头 Response Headers : 断言查看特定的 HTTP 标头是否存在
- 文档(文本)Document (text): 基本不用,高负载可能会占用大量内存导致 OOM
- URL 样例 URL Sampled : 针对请求的 URL 使用以确保它符合预期
-
模式匹配的规则
-
包括 Contains: 响应内容【包含】需要匹配,支持正则表达式。
-
匹配 Matches: 响应内容要【完全匹配】需要匹配代表响应成功,大小写不敏感,支持正则表达式。
-
相等 Equals: 响应内容要【完全等于】需要匹配代表响应成功,大小写敏感,内容是字符串
-
字符串 Substring: 响应内容【包含需要匹配】的内容才代表响应成功,大小写敏感,内容是字符串
-
不相等 Not: 取反操作,不相等
-
OR: 应用 OR 组合中的每个断言,将多个断言模式进行 OR 连接
-
-
案例实战
- http 响应码断言
- 响应文本断言
3. 高并发业务下 Jmeter 压测之持续时间断言
简介: 高并发业务下 Jmeter 压测之持续时间断言
-
什么是持续时间断言 Duration to assert
-
用于判断服务器的响应时间,作用对象是服务器
-
Duration in milliseconds:响应时间设置(单位毫秒),如果响应时间大于设置的响应时间,断言失败,否则成功
-
后端接口说明,端口 8080
接口介绍 接口路径 参数和备注 method 商品列表 /api/v1/product/list 不用参数 get 登录接口 /api/v1/user/login {“mail”: “794666918@qq.com”, “pwd”: “123456”} post 用户信息 /api/v1/user/info 需要登录,http 的 header 里面加入 token 字段 get 秒杀接口 /api/v1/product/second_kill 不用参数,用于测试接口耗时情况 get 商品详情 /api/v1/product/detail 用于可变参数压测,参数: id 和 title get
-
-
应用场景
- 高并发下的,接口响应时间增加,如果超过一定时间则认为是超时
- 建议
- 断言类型很多,常规 Duration Assertion 与 Response Assertion 基本就足够使用了
- 常规业务里面会有状态码断言,还有 RT 响应时间要求,这样的话聚合报告的异常错误率就会更满足业务需求
小结
为什么要学习 性能测试 Jmeter
- 多数互联网公司里面用的技术,实现 性能测试和压力测试 的最佳技术之一
- 可以对高并发业务上线前做流量瓶颈评估,分析吞吐量关键技术
- 在多数互联网公司中,Jmeter 占有率很高,是近几年大量流行
- 有谁在用,进一线大厂(国内大厂多数都有用 )
- 国内:阿里、字节、腾讯 、微信、网易、虎牙、青云、新浪等
- 国外:谷歌、Facebook、亚马逊、苹果等
今天的文章就先分享到这里了,下次给大家分享更多性能测试干货,记得点赞关注!
资料获取📚
完整代码和笔记已经准备好,如果有问题,可以在评论区留言讨论💬
原创不易,别忘了点赞👍+收藏⭐哦!
点击下方链接即可获取完整资料压缩包🎁,快来领取吧!↓↓↓↓