Jmeter5.X性能测试

Jmeter5.X性能测试


文章目录

  • Jmeter5.X性能测试
  • 一、掌握Http基础协议
    • 1.1 浏览器的B/S架构和C/S架构
    • 1.2 HyperText Transfer Protocol 超文本传输协议
    • 1.3 超文本传输协议Http消息体拆分讲解
    • 1.4 HTTP的九种请求方法和响应码介绍
    • 1.5 Http请求头/响应头
    • 1.6 Http常见请求/响应头content-type内容类型
  • 二、性能测试工具Jmeter使用
    • 2.1 Jmeter5.X基础功能组件+线程组
    • 2.2 Jmeter聚合报告分析和多案例断言
    • 2.3 CSV可变参数实战
    • 2.4 高并发业务下Jmeter集合点应用实战
  • 三、Jmeter二次开发之BeanShell实战
    • 3.1 BeanShell的作用
    • 3.2 BeanShell的使用
    • 3.3 BeanShell响应JSON处理和自定义断言
    • 3.4 Jmeter压测post方式接口和关联接口场景
  • 四、BeanShell使用外部Java文件
  • 五、Jmeter性能测试之html可视化压测报告


一、掌握Http基础协议

1.1 浏览器的B/S架构和C/S架构

  • 什么是CS架构 客户机-服务器,即Client-Server(C/S)结构 但是缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度

  • 什么是BS架构 B/S架构即浏览器和服务器架构模式,是WEB兴起后的一种网络架构模式 WEB浏览器是客户端最主要的应用软件 统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用

在这里插入图片描述

  • 什么是URL(统⼀资源定位符,获取服务器资源的一种)

标准格式: 协议://服务器IP:端⼝/路径1/路径N ? key1=value1 & key2=value2
https://editor.csdn.net/md/?articleId=142419810

1.2 HyperText Transfer Protocol 超文本传输协议

什么是Http超文本传输协议

协议是⼀种约定,规定好⼀种信息的格式,如果发送⽅按照这种请求格式发送信息,那么接 收端就要按照这样的格式解析数据,这就是协议

JSON

{"name":"xiaoming","age":23
}

xml协议

<user><name> xiaoming </name><age> 12 </age>
</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,服务器挂了或者不 可⽤

  • 和https的关系

Hyper Text Transfer Protocol over SecureSocket Layer
主要由两部分组成:HTTP + SSL / TLS
比 HTTP 协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性,增加破解成本
缺点:相同网络环境下,HTTPS 协议会使页面的加载时间延长近 50%,增加额外的计算资源消耗,增加 10%到 20%的耗电等;不过利大于弊,所以Https是趋势,相关资源损耗也在持续下降
如果做软件压测:直接压测内网ip,通过压测公网域名,不管是http还是https,都会带来额外的损耗导致结果不准确

1.3 超文本传输协议Http消息体拆分讲解

Http请求消息结构

  • 请求行
    • 请求方法
    • URL地址
    • 协议名
  • 请求头
    • 报文头包含若干个属性 格式为“属性名:属性值”,
    • 服务端据此获取客户端的基本信息
  • 请求体
    • 请求的参数,可以是json对象,也可以是前端表单生成的key=value&key=value的字符串
      在这里插入图片描述

Http响应消息结构

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

1.4 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: 服务器宕机

1.5 Http请求头/响应头

  • HTTP请求头(Request Headers)
    • 请求头包含在HTTP请求的消息头部分,用于向服务器提供客户端的请求上下文和其他相关信息。请求头的一些常见字段包括:

      • Accept: 表示客户端可以接受的内容类型。例如,Accept: text/html 表示客户端可以接收HTML格式的内容
      • Accept-Language: 表示客户端首选的语言。例如,Accept-Language: en-US 表示客户端首选语言是美国英语
      • Accept-Encoding: 表示客户端支持的编码方式。例如,Accept-Encoding: gzip, deflate 表示客户端支持GZIP和DEFLATE压缩编码
      • Authorization: 包含用于认证的信息。例如,在使用Basic认证时,会包含一个Base64编码的用户名和密码
      • Content-Length: 表示请求体的长度(单位为字节)。例如,Content-Length: 1024 表示请求体长度为1024字节
      • Content-Type: 表示请求体的MIME类型。例如,Content-Type: application/json 表示请求体是JSON格式的数据。
      • Cookie: 包含客户端的cookie信息,用于识别客户端的身份
      • User-Agent: 描述发送请求的应用程序的信息。例如,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) - AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3 描述了发送请求的浏览器信息
      • If-Modified-Since: 请求资源是否自某个日期以来已被修改
      • Referer: 请求的来源页面的URL
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1

  • HTTP响应头(Response Headers)
    • 响应头包含在HTTP响应的消息头部分,用于向客户端提供服务器的响应上下文和其他相关信息。响应头的一些常见字段包括:

      • Content-Type: 表示响应体的MIME类型。例如,Content-Type: text/html 表示响应体是HTML格式的数据
      • Content-Length: 表示响应体的长度(单位为字节)
      • Content-Encoding: 表示响应体使用的编码方式。例如,Content-Encoding: gzip 表示响应体经过GZIP压缩。
      • Date: 服务器生成响应的日期和时
      • Server: 服务器软件的名称和版本
      • Set-Cookie: 用于设置客户端的cookie
      • Expires: 响应过期的日期和时间
      • Cache-Control: 控制缓存的行为,如Cache-Control: no-cache 表示不允许缓存
      • Last-Modified: 资源最后一次被修改的时间
      • Location: 用于重定向的情况,提供新的URL
      • Content-Disposition: 指示客户端如何处理响应体,如Content-Disposition: attachment; filename=“example.pdf” 表示响应体应当作为附件下载
      • Content-Language: 响应体的语言
      • Vary: 表示响应的内容可能因请求中的某些头字段而变化
HTTP/1.1 200 OK
Date: Fri, 25 Oct 2019 13:00:00 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html; charset=UTF-8
Content-Length: 1778
Connection: close
Set-Cookie: session_id=d41d8cd98f00b204e9800998ecf8427e; Path=/; HttpOnly
Last-Modified: Wed, 23 Oct 2019 11:45:33 GMT
Expires: Thu, 26 Oct 2019 13:00:00 GMT
Cache-Control: max-age=86400

1.6 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: 表单中需要上传文件的文件格式类型

二、性能测试工具Jmeter使用

2.1 Jmeter5.X基础功能组件+线程组

什么是线程组

  • 就是一组线程,并发执行,每个线程可以认为是一个请求

特殊线程组

  • setUP:最先执行,前置工作
  • 线程组:中级执行,常规处理
  • tearDown:最后执行,收尾工作

在这里插入图片描述

Sampler(采样器)
在这里插入图片描述
查看测试结果

查看结果树
位置:
放在http采集器级别,获取兄弟节点数据
放在http采样器下面,获取当前http采样器数据

在这里插入图片描述

Http采样器复用和Http请求头管理

  • 需求
    • 如果有多个接口,每个接口都需要重复配置http协议、ip、端口等相同参数,维护起来麻烦
    • 可以通过配置 http请求默认值 进行默认配置,那对应的线程组则不用重复配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
Http请求头管理

  • 多数HTTP接口请求需要添加HTTP Header请求头,如何添加?
  • 通过HTTP信息头管理器即可

在这里插入图片描述

2.2 Jmeter聚合报告分析和多案例断言

性能测试的关键点

  • TPS

    • Transactions Per Second 每秒事务数, 可以是一个接口、多个接口、一个业务流程
    • 包括增删改操作
  • QPS

    • Queries Per Second, 每秒查询数, 指一台服务器每秒能够响应的查询次数
    • QPS 只是一个简单查询的统计,不能描述增删改等操作
    • 如果只是查询操作 TPS = QPS
  • RT

    • 响应时间


      在这里插入图片描述

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连接

高并发业务下Jmeter压测之持续时间断言

  • 什么是持续时间断言Duration to assert

    • 用于判断服务器的响应时间,作用对象是服务器
    • Duration in milliseconds:响应时间设置(单位毫秒),如果响应时间大于设置的响应时间,断言失败,否则成功

在这里插入图片描述

在这里插入图片描述

  • 应用场景

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

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

2.3 CSV可变参数实战

Jmeter性能测试之CSV多个可变参数压测实战

  • 需求

    • 业务开发里面参数一般不是固定方式,而是采用可变参数进行压测
    • 比如压测商品详情,查看id从1~100 的商品详情

解决方案 CSV可变参数

在这里插入图片描述
在这里插入图片描述

2.4 高并发业务下Jmeter集合点应用实战

  • 性能测试

    • 是多用户并发测试,但真正的并发其实是不存在的,用工具模拟并发
    • 前面的测试“线程数”是并发用户数,启动需要时间,不是并发同一时刻访问
    • 常规压测需要模拟全部用户同一时刻访问,比如 秒杀 案例场景
    • 需求:先让全部请求 同时集合在一起,然后再一起访问,实现真正的并发

解决方式 :Jmeter的同步定时器

  • 将多个请求同步并发操作,同步定时器又可称之为“集合点”
  • 将需要做并发的请求集合在一起后再进行请求

在这里插入图片描述
注意事项

  • 设置的值不能大于线程组 数量
  • 最好的情况是 【线程组】 可以被 【用户组】整除
  • 超时时间以毫秒为单位:指定人数 多少毫秒没集合到算超时
  • 超时时间是0则无限等待,如果是大于0,则未达到集合的【用户组】数量,会在超时后执行

三、Jmeter二次开发之BeanShell实战

3.1 BeanShell的作用

什么是BeanShell

  • 用Java写成的 小型、免费的Java源代码解释器
  • 可以执行标准Java语句和表达式,完全符合java语法的java脚本语言(需要会javase语言)
  • 包括一些脚本命令,有自己的一些语法和方法,是一种松散类型的脚本语言(这点和JS类似)
  • 用于一些复杂的个性化需求,使用更灵活,功能更强大
  • 官网地址:http://www.beanshell.org

BeanShell常用分类

  • 采样器BeanShell
  • 前置处理器 BeanShell PreProcessor:提前对参数处理比如加密编码
  • 后置处理器 BeanShell PostProcessor :对返回结果做处理
  • 断言 BeanShell Assert :验证请求接口是否满足要求

在这里插入图片描述

  • BeanShell内置对象,可以直接使用

    SampleResult, ResponseCode, ResponseMessage, IsSuccess, Label, FileName, ctx, vars, props, log
    

在这里插入图片描述

3.2 BeanShell的使用

使用Bean shell内置对象vars对【变量】进行存取操作,作用在当前线程组

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
使用Bean shell内置对象props 对【属性】进行存取操作,作用在跨线程组使用

在这里插入图片描述
使用Bean shell内置对象log

在这里插入图片描述

  • Http采样器和BeanShell组合应用实战

    • 定义Http采样器

    • BeanShell里面定义变量 var

    • 读取var变量

      ${id}、${title}
      

3.3 BeanShell响应JSON处理和自定义断言

步骤

  • 新增BeanShell断言
  • 核心变量

使用JSON工具

  • jar包放入jmeter目录下的 \lib\ext 中
import org.json.*;String data = prev.getResponseDataAsString();  //获取响应信息
String httCode = prev.getResponseCode(); //获取响应codelog.info("data="+data);JSONObject jsonobj = new JSONObject(data);  //转json对象
log.info(jsonobj.toString());int code = jsonobj.getInt("code");
log.info("code="+code);

在这里插入图片描述

3.4 Jmeter压测post方式接口和关联接口场景

背景

假设你正在负责一款在线购物平台的性能测试工作。该平台的核心功能包括用户注册、登录、浏览商品、加入购物车、下单支付等。为了保证平台在高并发访问下的稳定性,需要对关键业务流程中的各个接口进行性能测试
业务流程:
用户注册:新用户通过注册页面提交个人信息
用户登录:已注册用户通过登录页面提交用户名和密码
浏览商品:用户在主页浏览商品列表,并点击进入商品详情页
加入购物车:用户将喜欢的商品添加至购物车
下单支付:用户从购物车结算,填写订单信息并完成支付接口描述:
注册接口:通过POST请求提交用户的姓名、邮箱、密码等信息
登录接口:通过POST请求提交用户的登录凭证
商品列表接口:通过GET请求获取商品列表
商品详情接口:通过GET请求获取具体商品的信息
加入购物车接口:通过POST请求将商品ID添加至用户的购物车
订单提交接口:通过POST请求提交订单信息,包括商品清单、收货地址等测试目标:
负载测试:评估系统在一定并发用户数下的响应时间和吞吐量
稳定性测试:检测系统在长时间高负载情况下的表现,确保没有内存泄漏等问题
容量测试:确定系统可以处理的最大并发用户数
压力测试:超过最大容量限制,观察系统崩溃点及其恢复能力

关联接口需求

在这个场景中,有些接口之间存在依赖关系例如:
登录接口的响应可能包含了后续请求所需的token或session ID,这些信息需要在后续的请求中使用因此
需要在JMeter中设置相应的提取器(如正则表达式提取器或JSON提取器)来捕获这些值,并将其保存为变量,以便在后续的请求中使用

实现步骤简述

  1. 构建测试计划:在JMeter中创建一个测试计划,设置好虚拟用户数、迭代次数等参数。
  2. 配置HTTP请求:为每个接口配置一个HTTP请求取样器,指定正确的URL、请求类型(GET/POST)、参数等。
  3. 添加依赖处理逻辑:使用Beanshell/Groovy脚本或JMeter内置的逻辑控制器来处理接口间的依赖关系。
  4. 添加监听器:添加监听器来记录测试结果,如查看结果树、聚合报告等。
  5. 运行测试:执行测试计划,监控系统表现。
  6. 分析结果:根据测试结果分析系统的性能瓶颈,并提出改进建议

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、BeanShell使用外部Java文件

  • 需求

  • 常规beanshell里面写代码,适合简单的逻辑

  • 工作里面还会用到更多方法逻辑,需要在idea编辑器里面写,然后进行调用

  • 方式

    • jar包:放到的lib目录或ext目录下,前面演示过json工具类操作
    • java文件
  • 步骤

    • 使用 source加载源码,路径可以是绝对路径和相对路径
    • 加载源文件后可以直接使用 类名.方法名(参数)
  1. 编写Java类:首先,编写一个Java类,比如 MyUtils.java,并编译成 .class 文件
// MyUtils.java
public class MyUtils {public static String getHello(String name) {return "Hello, " + name;}
}
  1. 编译Java类:使用命令行或IDE编译上述Java文件
javac MyUtils.java
  1. 将编译后的类添加到JMeter的类路径:

    • 将编译好的 .class 文件复制到 JMeter 的 lib 目录下,或者将其打包成 .jar 文件,然后将 .jar 文件放入 lib/ext 目录下
      重启JMeter以加载新的类
  2. 在BeanShell中调用:

    • 在BeanShell Sampler、PreProcessor、PostProcessor或Assertion中,你可以直接调用这个类的方法
// BeanShell Sampler 示例
import com.example.MyUtils; // 假设包名为com.exampleString result = MyUtils.getHello("World");
log.info(result);

五、Jmeter性能测试之html可视化压测报告

  • 测试报告

    • 聚合报告(前面讲过)
      • 有收集到性能数据,但显示比较单一
    • Jmeter 可以生成 HTML 性能测试报告
  • 步骤

    • 保存jmx到本地
    • 进到jmeter的bin目录下
jmeter -n -t <test_plan.jmx> -l <output_file.jtl> -e -o <report_folder>

其中,<test_plan.jmx> 是你的测试计划文件,<output_file.jtl> 是输出结果文件,<report_folder> 是生成报告的目录

参数说明

  • -n 非gui方式运行jmeter
  • -t :jmx 脚本路径
  • -l :result.jtl 运行结果保存路径,注意:.jtl 文件名不能重复,文件夹需要存在
  • -e :在脚本运行结束后生成 HTML 报告
  • -o :用于存放 HTML 报告的目录,文件夹需要存在

在这里插入图片描述
在这里插入图片描述

  • dashboard讲解
    • Test and Report informations
      • Source file:jtl文件名
      • Start Time :压测开始时间
      • End Time :压测结束时间
      • Filter for display:过滤器
      • Lable:sampler采样器名称
    • APDEX(Application performance Index)
      • apdex:应用程序性能指标,范围在0~1之间,1表示达到所有用户均满意
      • T(Toleration threshold):可接受阀值
      • F(Frustration threshold):失败阀值
    • Requests Summary
      • OK:成功率
      • KO:失败率
    • Statistics 统计数据
      • lable:sampler采样器名称
      • samples:请求总数,并发数*循环次数
      • KO:失败次数
      • Error%:失败率
      • Average:平均响应时间
      • Min:最小响应时间
      • Max:最大响应时间
      • 90th pct: 90%的用户响应时间不会超过这个值
      • 95th pct: 95%的用户响应时间不会超过这个值
      • 99th pct: 99%的用户响应时间不会超过这个值 (存在极端值)
      • throughtput:Request per Second吞吐量 qps
      • received:每秒从服务器接收的数据量
      • send:每秒发送的数据量
  • charts讲解
    • Over Time(随着时间的变化)
      • Response Times Over Time:响应时间变化趋势
      • Response Time Percentiles Over Time (successful responses):最大,最小,平均,用户响应时间分
      • Active Threads Over Time:并发用户数趋势
      • Bytes Throughput Over Time:每秒接收和请求字节数变化,蓝色表示发送,黄色表示接受
      • Latencies Over Time:平均响应延时趋势
      • Connect Time Over Time :连接耗时趋势
    • Throughput
      • Hits Per Second (excluding embedded resources):每秒点击次数
      • Codes Per Second (excluding embedded resources):每秒状态码数量
      • Transactions Per Second:即TPS,每秒事务数
      • Response Time Vs Request:响应时间和请求数对比
      • Latency Vs Request:延迟时间和请求数对比
    • Response Times
      • Response Time Percentiles:响应时间百分比
      • Response Time Overview:响应时间概述
      • Time Vs Threads:活跃线程数和响应时间
      • Response Time Distribution:响应时间分布图

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

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

相关文章

使用Kafka构建大规模消息传递系统

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用Kafka构建大规模消息传递系统 引言 Kafka 简介 安装 Kafka 创建主题 生产者 消费者 高级特性 分区 持久化 消费者组 消息确认…

AI 大模型重塑软件开发流程的未来

目录 前言1. AI 大模型简介2. AI 大模型在软件开发中的应用场景2.1 代码自动生成2.2 智能调试与错误检测2.3 软件测试的自动化2.4 文档生成与代码注释 3. AI 大模型对软件开发的优势3.1 提高开发效率3.2 提升代码质量与一致性3.3 降低学习成本 4. AI 大模型在软件开发中面临的挑…

C#-类:声明类、声明类对象

一&#xff1a;类的声明 class 类名 {//特征——成员变量//行为——成员方法//保护特征——成员属性//构造函数和析构函数//索引器//运算符重载//静态成员 }类名&#xff1a;帕斯卡 同一个语句块中的不同类 不能重名 二&#xff1a;声明类对象 2.1 类的声明 ≠ 类对象的声…

求平面连接线段组成的所有最小闭合区间

这个功能确实非常实用&#xff0c;我在过去开发地面分区编辑器时就曾应用过这一算法。最近&#xff0c;在新产品的开发中再次遇到了类似的需求。尽管之前已经实现过&#xff0c;但由于长时间未接触&#xff0c;对算法的具体细节有所遗忘&#xff0c;导致重新编写时耗费了不少时…

金箍棒变化-第15届蓝桥杯国赛Scratch初/中级组真题第1题

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第193讲。 如果想持续关注Scratch蓝桥真题解读&#xff0c;可以点击《Scratch蓝桥杯历年真题》并订阅合集&#xff0c;…

hunyuan-DiT模型部署指南

一、介绍 Hunyuan-DiT是由腾讯混元推出的扩散模型&#xff0c;支持中文和英文双语输入&#xff0c;其他开源模型相比&#xff0c;Hunyuan-DiT 在中文到图像生成方面树立了新的水平。 二、部署流程 环境要求&#xff1a; 所需的最小 GPU 内存为 11GB&#xff0c; 建议使用具…

如何彻底删除gitbash中所有的命令记录、以及彻底删除Windows powerShell或者cmd中的所有命令记录

文章目录 1. 文章引言2. 彻底删除gitbash中所有的命令记录3. 彻底删除Windows powerShell或者cmd中的所有命令记录1. 文章引言 有时,我们使用外部电脑从gitbash中下载代码,假设使用history -c命令: 可以清除当前弹框的历史记录,但也无法彻底删除命令记录。打开gitbash后,通…

利用 Feather 格式加速数据科学工作流:Pandas 中的最佳实践

利用 Feather 格式加速数据科学工作流&#xff1a;Pandas 中的最佳实践 在数据科学中&#xff0c;高效的数据存储和传输对于保持分析流程的流畅性至关重要。传统的 CSV 格式虽然通用&#xff0c;但在处理大规模数据集时速度较慢&#xff0c;特别是在反复读取和写入时。幸运的是…

Redis-“自动分片、一定程度的高可用性”(sharding水平拆分、failover故障转移)特性(Sentinel、Cluster)

文章目录 零、写在前面一、水平拆分(sharding/分片)、故障转移(failover)机制介绍水平拆分&#xff08;Sharding&#xff09;故障转移机制 二、Redis的水平拆分的机制有关的配置1. 环境准备2. 配置文件配置3. 启动所有Redis实例4. 创建集群5. 测试集群读/写6. 集群管理 三、Red…

Linux SSH免密登入以及配置脚本

一、ssh原理简单介绍 客户端生成一对公钥和私钥&#xff0c;并将自己的公钥发送到服务器上 其中公钥用来加密&#xff0c;私钥用来解密。 二、ssh免密登入实现步骤详解 我这就以服务器controller和客户端compute来做为例子 2.1、首先在controller上输入ssh-keygen -t rsa …

景联文科技医疗数据处理平台:强化医疗数据标注与管理,推动医疗数字化新篇章

随着医疗科技快速进步与广泛应用&#xff0c;医疗信息的规模正在迅速扩张&#xff0c;如何有效管理这些医疗数据成为了关键议题。 医疗数据不仅包括传统的纸质病历&#xff0c;还有电子病历、实验室检测结果、医学影像等多样化的数字信息。为确保这些数据能为临床决策、科研分析…

react jsx基本语法,脚手架,父子传参,refs等详解

1&#xff0c;简介 1.1 概念 react是一个渲染html界面的一个js库&#xff0c;类似于vue&#xff0c;但是更加灵活&#xff0c;写法也比较像原生js&#xff0c;之前我们写出一个完成的是分为html&#xff0c;js&#xff0c;css&#xff0c;现在我们使用react库我们把html和js结…

物联网的智联项目是如何设计出来的?设计项目整个细节应该注意什么?

设计一个物联网的智联项目通常包括以下步骤&#xff1a; **一、需求分析** 1. 明确项目的目标和预期效果&#xff0c;例如是实现智能家居的自动化控制&#xff0c;还是工业设备的远程监测等。 2. 确定项目的应用场景和用户群体&#xff0c;了解他们的具体需求和使用习惯。 …

Android 字节飞书面经

Android 字节飞书面经 文章目录 Android 字节飞书面经一面二面 一面 1. 线程是进程的一部分&#xff0c;一个线程只能属于一个进程&#xff0c;而一个进程可以有多个线程&#xff0c;但至少有一个线程。 2. 根本区别&#xff1a;进程是操作系统资源分配的基本单位&#xff0c;…

获取SKU详细信息API返回值说明

在电子商务平台中&#xff0c;SKU&#xff08;Stock Keeping Unit&#xff0c;库存量单位&#xff09;是用于追踪库存的唯一标识符。对于开发者来说&#xff0c;了解如何通过API获取SKU的详细信息是至关重要的。本文将详细介绍如何使用API获取SKU详细信息&#xff0c;并提供相应…

本地部署bert-base-chinese模型交互式问答,gradio

首先下载bert-base-chinese&#xff0c;可以在 Huggingface, modelscope, github下载 pip install gradio torch transformers import gradio as gr import torch from transformers import BertTokenizer, BertForQuestionAnswering# 加载bert-base-chinese模型和分词器 mod…

[spring源码]spring推断构造方法

前言 Spring中的一个bean&#xff0c;需要实例化得到一个对象&#xff0c;而实例化就需要用到构造方法。 一般情况下&#xff0c;一个类只有一个构造方法&#xff1a; 要么是无参的构造方法要么是有参的构造方法 如果只有一个无参的构造方法&#xff0c;那么实例化就只能使…

【Sublime Text】格式化Json和XML

无package control解决方案 删除文件中的package control这一行并保存 下载 下载中

【CSS】——基础入门常见操作

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;CSS引入 二&#xff1a;CSS对元素进行美化 1&#xff1a;style修饰 2&#xff1a;选…

Chrome(谷歌浏览器中文版)下载安装(Windows 11)

目录 Chrome_10_30工具下载安装 Chrome_10_30 工具 系统&#xff1a;Windows 11 下载 官网&#xff1a;https://chrome.google-zh.com/&#xff0c;点击立即下载 下载完成&#xff08;已经下过一遍所以点了取消&#xff09; 安装 解压&#xff0c;打开安装包 点击下一步…