快速入门Jmeter5.X 性能测试小白到高手这一篇就够了

news2024/11/24 12:52:28

🚀 作者 :“二当家-小 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 浏览器是客户端最主要的应用软件 统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用

image-20200523220113626

  • 什么是 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 多种,为了更进⼀步区分资源所在的路径(后端接⼝,⼀般称为 “接⼝路径”,“接⼝”)

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 的字符串

    image-20200523224136206

  • Http 响应消息结构
    • 响应行
      • 报文协议及版本、状态码
    • 响应头
      • 报文头包含若干个属性 格式为“属性名: 属性值”
    • 响应正文
      • 响应报文体,我们需要的内容,多种形式比如 html、json、图片、视频文件等

image-20200523224403332

4. HTTP 的九种请求方法和响应码介绍

简介: HTTP 的九种请求方法和响应码介绍

  • 浏览器请求方法
    • http1.0 定义了三种:
      • GET: 向服务器获取资源,比如常见的查询请求
      • POST: 向服务器提交数据而发送的请求
      • Head: 和 get 类似,返回的响应中没有具体的内容,用于获取报头
    • http1.1 定义了六种
      • PUT:一般是用于更新请求,比如更新个人信息、商品信息全量更新
      • PATCH:PUT 方法的补充, 更新指定资源的部分数据
      • DELETE:用于删除指定的资源
      • OPTIONS: 获取服务器支持的 HTTP 请求方法, 服务器性能、跨域检查等
      • CONNECT: 方法的作用就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户,网页开发基本不用这个方法,如果是 http 代理就会使用这个,让服务器代理用户去访问其他网页,类似中介
      • TRACE:回显服务器收到的请求,主要用于测试或诊断
  • 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 开发
        • 上手容易,高性能
        • 提供测试数据分析
        • 各种报表数据图形展示

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,不要安装最新的 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 和 titleget
  • 注意

    • 登录账号密码,程序里面只提供一个,所以需要按照上面进行操作
    • 常规就是 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 和 titleget
  • 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 和 titleget
  • 应用场景

    • 高并发下的,接口响应时间增加,如果超过一定时间则认为是超时

在这里插入图片描述

  • 建议
    • 断言类型很多,常规 Duration Assertion 与 Response Assertion 基本就足够使用了
    • 常规业务里面会有状态码断言,还有 RT 响应时间要求,这样的话聚合报告的异常错误率就会更满足业务需求

在这里插入图片描述

小结

为什么要学习 性能测试 Jmeter

  • 多数互联网公司里面用的技术,实现 性能测试和压力测试 的最佳技术之一
  • 可以对高并发业务上线前做流量瓶颈评估,分析吞吐量关键技术
  • 在多数互联网公司中,Jmeter 占有率很高,是近几年大量流行
  • 有谁在用,进一线大厂(国内大厂多数都有用
    • 国内:阿里、字节、腾讯 、微信、网易、虎牙、青云、新浪等
    • 国外:谷歌、Facebook、亚马逊、苹果等

今天的文章就先分享到这里了,下次给大家分享更多性能测试干货,记得点赞关注!

资料获取📚
完整代码和笔记已经准备好,如果有问题,可以在评论区留言讨论💬
原创不易,别忘了点赞👍+收藏⭐哦!
点击下方链接即可获取完整资料压缩包🎁,快来领取吧!↓↓↓↓

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

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

相关文章

如何使git提交的时候忽略一些特殊文件?

认识.gitignore文件 在生成远程仓库的时候我们会看到这样一个选项&#xff1a; 这个.gitignore文件有啥用呢&#xff1f; .gotignore文件是Git版本控制系统中的一个特殊文件。用来指定哪些文件或者目录不被Git追踪或者提交到版本库中。也就意味着&#xff0c;如果我们有一些文…

Android build.prop生成过程源码分析

Android的build.prop文件是在Android编译时刻收集的各种property【LCD density/语言/编译时间, etc.】&#xff1b;编译完成之后&#xff0c;文件生成在out/target/product/<board【OK1000】>/system/目录下&#xff1b;在Android运行时刻可以通过property_get()[c/c域] …

使用QSS实现圆角 button and widget 组合

1、实现效果 2、QSS代码 #widget {min-height : 40px;max-height : 40px;border : 4px solid white;border-top-left-radius : 24px;border-bottom-left-radius : 24px;padding : 0;background : #AAA; }QPushButton#pushButton {min-height : 40px;max-height : 40px;min-wid…

打开深度学习的锁:(0)什么是神经网络?有哪些必备的知识点准备?

PS&#xff1a;每每温故必而知新 什么是神经网络&#xff1f; 一、一个单神经元的神经网络二、多个单神经元的神经网络三、到底什么是机器学习&#xff1f;&#xff08;重点&#xff09;1&#xff1a;什么是机器学习的训练&#xff1f;2&#xff1a;什么是模型&#xff1f;权重…

一起长锈:4 默认不可变的变量绑定与引用(从Java与C++转Rust之旅)

讲动人的故事,写懂人的代码 故事梗概:在她所维护的老旧Java系统即将被淘汰的危机边缘,这位在编程中总想快速完事的女程序员,希望能转岗到公司内部使用Rust语言的新项目组,因此开始自学Rust;然而,在掌握了Rust编程知识之后,为了通过Rust项目组的技术面试,使得转岗成功而…

记一次springboot jpa更新复杂几何类型报错Only simple geometries should be used

问题&#xff1a; 更新数据时&#xff0c; 几何字段MultiPolygon类型时报错&#xff1b; java.lang.IllegalStateException: Only simple geometries should be used 几何字段Point类型时不报错&#xff1b; 新增时字段存在MultiPolygon不报错。 查看日志可知&#xff0c;…

Linux基本指令(下下)

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 本篇博客续我之前的Linux指令&#xff08;下&a…

偏微分方程算法之椭圆型方程差分格式编程示例

目录 一、示例1-五点菱形格式 1.1 C代码 1.2 计算结果 二、示例2-九点紧差分格式 2.1 C代码 2.2 计算结果 三、示例3-二阶混合边值 3.1 C代码 3.2 计算结果 本专栏对椭圆型偏微分方程的三种主要差分方法进行了介绍&#xff0c;并给出相应格式的理论推导过程。为加深对…

百度Comate:你的智能编程助手,让代码编写更高效

一、引言 随着AI和人工智能技术的快速发展&#xff0c;越来越多的行业开始尝试将AI技术应用于实际业务中&#xff0c;包括编程领域。目前逐渐有大量的IT开发工程师开始使用各类的AI工具来帮助改善编程体验、提高效率和增加代码质量&#xff0c;将极大地推动了编程行业的进步和…

虚拟机装CentOS镜像

起先&#xff0c;是先安装一个VM虚拟机&#xff0c;再去官方网站之类的下载一些镜像&#xff0c;常见镜像有CentOS镜像&#xff0c;ubantu镜像&#xff0c;好像还有一个树莓还是什么的&#xff0c;软件这块&#xff0c;日新月异&#xff0c;更新太快&#xff0c;好久没碰&#…

7个AI驱动的3D模型生成器

老子云AI生成3D模型https://www.laozicloud.com/aiModel 在快速发展的技术世界中&#xff0c;人工智能 (AI) 已经改变了游戏规则&#xff0c;尤其是在 3D 对象生成领域。 AI 驱动的 3D 对象生成器彻底改变了我们创建和可视化 3D 模型的方式&#xff0c;使该过程更加高效、准确…

【ElasticSearch】IK分词器中停用词问题

问题描述 在ES中进行部分关键词搜索时&#xff0c;搜索无结果&#xff0c;如搜索 【IT】 环境描述 中文分词插件 这里使用的是 analysis-ik 分词调试 POST test_index/_analyze {"text":"IT Manager","analyzer": "ik_max_word"…

[开发|鸿蒙] DevEco Studio编译构建(笔记,持续更新)

构建体系 编译构建是将应用/服务的源代码、资源、第三方库等&#xff0c;通过编译工具转换为可直接在硬件设备上运行的二进制机器码&#xff0c;然后再将二进制机器码封装为HAP/APP软件包&#xff0c;并为HAP/APP包进行签名的过程。其中&#xff0c;HAP是可以直接运行在模拟器…

LeetCode738:单调递增的数字

题目描述 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 332 代码 class Solution { public:int monotoneIncreasingDigits(…

个人出租房屋收入需汇算吗?柯桥会计培训

2023年度个人所得税综合所得汇算清缴正在进行&#xff0c;个人出租房屋的收入需并入汇算清缴吗&#xff1f;汇算最后一步显示免申报是什么意思&#xff1f; 1 个人出租房屋的收入需并入汇算清缴吗&#xff1f; 答&#xff1a;不用。根据《国家税务总局关于办理2023年度个人所…

2024深圳杯数学建模C题完整思路+配套解题代码+半成品参考论文持续更新

所有资料持续更新&#xff0c;最晚我们将于5.9号更新参考论文。 【无水印word】2024深圳杯A题成品论文23页mtlab(python)双版本代码https://www.jdmm.cc/file/27105652024深圳杯数学建模C题完整思路配套解题代码半成品参考论文持续更新https://www.jdmm.cc/file/2710545 深圳杯…

【海豚调度 开机启动】dophischeduler 如何开启开机自启动功能

DolphinScheduler 是一个分布式、去中心化的大数据工作流调度系统&#xff0c;支持大数据任务调度。若要设置 DolphinScheduler 开机自启动&#xff0c;通常需要将其配置为系统服务。以下是一般步骤&#xff0c;具体操作可能因操作系统的不同而有所差异&#xff1a; 在 Linux …

OpenNJet 应用引擎:在 NGINX 基础上的云原生增强

目录 一、初识OpenNJet二、系统架构三、动手实践1.CentOS 编译环境配置1.1配置yum源&#xff1a;1.2.yum安装软件包1.3.创建符号连接 2.编译代码编译 OpenNJet执行 make 四、基本使用说明1.目录结构概述:2.常用命令: 五、部署 Web 应用程序配置文件修改启动 NJet 六、总结 一、…

数据分析的数据模型

数据分析的数据模型 前言一、优化模型1.1线性优化模型1.1.1线性优化模型定义1.1.2线性优化模型求解算法1. 1.2.1图解法1. 1.2.2. 单纯形法 1.1.3 线性优化模型的应用 1.2非线性优化模型1.2.1非线性优化模型定义1.2.2非线性优化划模型求解方法1. 2.2.1有约束非线性模型算法1.2.2…

“前人种树,后人乘凉”:【薪象营】五一探访活动弘扬传统美德

在五一劳动节这一天&#xff0c;唐刚携带【唐江军】的前成员&#xff0c;前往广州开展了一场特殊的慈善探访活动。这不仅是一个简单的慈善活动&#xff0c;更是唐刚希望向新成立的【薪象营】传承的一种精神和行动典范。 精神传承与实际行动 唐刚&#xff0c;【唐江军】的发起人…