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.rhkb.cn/news/466561.html

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

相关文章

信息安全工程师(81)网络安全测评质量管理与标准

一、网络安全测评质量管理 遵循标准和流程 网络安全测评应严格遵循国家相关标准和流程&#xff0c;确保测评工作的规范性和一致性。这些标准和流程通常包括测评方法、测评步骤、测评指标等&#xff0c;为测评工作提供明确的指导和依据。 选择合格的测评团队 测评团队应具备相关…

AI - 人工智能;Ollama大模型工具;Java之SpringAI(三)

AI - 人工智能&#xff1b;Java之SpringAI&#xff08;一&#xff09; AI - 人工智能&#xff1b;Java之SpringAI&#xff08;二&#xff09; 一、Ollama 官网&#xff1a;https://ollama.com/ Ollama是一个大模型部署运行工具&#xff0c;在该工具里面可以部署运行各种大模型…

力扣—不同路径(路径问题的动态规划)

文章目录 题目解析算法原理代码实现题目练习 题目解析 算法原理 状态表示 对于这种「路径类」的问题&#xff0c;我们的状态表示⼀般有两种形式&#xff1a; i. 从[i, j] 位置出发。 ii. 从起始位置出发&#xff0c;到[i, j] 位置。 这⾥选择第⼆种定义状态表⽰的⽅式&#xf…

用了Stream后,代码反而越写越丑?

使用 Stream API 可以使代码更加简洁和易读&#xff0c;但如果不恰当地使用或过度使用&#xff0c;确实可能导致代码变得复杂和难以理解。以下是一些常见的问题和改进建议&#xff1a; 常见问题 过度链式调用&#xff1a;过度链式调用 Stream 方法会导致代码行过长&#xff0c…

论文速读:简化目标检测的无源域适应-有效的自我训练策略和性能洞察(ECCV2024)

中文标题&#xff1a;简化目标检测的无源域适应&#xff1a;有效的自我训练策略和性能洞察 原文标题&#xff1a;Simplifying Source-Free Domain Adaptation for Object Detection: Effective Self-Training Strategies and Performance Insights 此篇文章为论文速读&#xff…

FFmpeg 4.3 音视频-多路H265监控录放C++开发十. 多线程控制帧率。循环播放,QT connect 细节,

在前面&#xff0c;我们总结一下前面的代码。 在 FactoryModeForAVFrameShowSDL 构造函数中 init SDL。 通过 QT timerevent机制&#xff0c;通过startTimer(10);每隔10ms&#xff0c;就会调用timerEvent事件。 在timerEvent事件中&#xff0c;真正的去 读取数据&#xff0c…

企业文件加密要怎么做?好用的10款企业文件加密软件排行榜!

在现代信息化的工作环境中&#xff0c;企业数据安全面临着越来越多的威胁。尤其是当涉及到敏感文件和商业机密时&#xff0c;如何保护这些数据不被泄露或遭受恶意攻击显得尤为重要。企业文件加密成为了保护企业信息安全的关键手段。本文将探讨如何进行企业文件加密&#xff0c;…

20241107给野火LubanCat1-BTB刷Ubuntu的预编译固件并点亮USB接口的热像仪AT600

20241107给野火LubanCat1-BTB刷Ubuntu的预编译固件并点亮USB接口的热像仪AT600 2024/11/7 20:08 缘起&#xff1a;需要使用RK3566的linux/Buildroot系统。 将 鲁班猫的 云盘资料下载之后&#xff0c;发现里面没有Buildroot的预编译固件。 火速联系 淘宝客服&#xff01;转技术支…

VMware没有卸载干净,安装后ping不通

目录 1.问题 2.问题分析 3. 解决办法 &#x1f353; STEP1&#xff1a;卸载VMware &#x1f348; STEP2&#xff1a;services.msc设置 &#x1f352;STEP3&#xff1a;安装everything删除所有与vmware相关的文件 &#x1f351;STEP4&#xff1a;使用CCleaner清理修复注册…

【科普】简述机器学习和深度学习及其相关的算法

文章目录 机器学习1. 基本概念2. 机器学习的分类3. 机器学习的常用方法4. 应用领域5. 挑战与未来6. 未来趋势 机器学习算法 深度学习1.深度学习的基本概念2.深度学习的主要架构3.深度学习的应用4.深度学习的挑战 深度学习算法 机器学习 机器学习是人工智能的一个重要分支&…

HCIP--3实验- 链路聚合,VLAN间通讯,Super VLAN,MSTP,VRRPip配置,静态路由,环回,缺省,空接口,NAT

学习目标&#xff1a; 链路聚合VLAN间通讯Super VLANMSTPVRRPip配置,静态路由,环回&#xff0c;缺省&#xff0c;空接口NAT 学习内容&#xff1a; 实验拓扑实验需求实验需求分析实验配置内容 &#xff08;每一个设备的每一步操作&#xff09;实验结果验证 1.实验拓扑 搭建 …

Zabbix监控架构

目录 1. Zabbix监控架构-CS架构 2. Zabbix极速上手指南 主机规划 2.1 部署ngxphp环境并测试 检查安装结果 2.2 部署数据库 2.3 编译安装zabbix-server服务端及后续配置 2.4 部署前端代码代码进行访问 前端的配置文件(连接数据库与主机名等信息) 2.5 欢迎来到zabbix 2…

【CentOS】中的Firewalld:全面介绍与实战应用(上)

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、iptables 时代 2、firewalld 时代 3、 从 ipt…

人工智能未来前景好不好?

人工智能&#xff08;AI&#xff09;正以前所未有的速度改变着我们的世界。随着技术的不断进步&#xff0c;AI不仅在各行各业中扮演着越来越重要的角色&#xff0c;也为求职者和职业发展带来了广阔的机会。那么&#xff0c;人工智能未来的前景如何&#xff1f; 1 高增长行业 人…

湘潭大学软件工程专业选修 SOA 期末考试复习(二)

文章目录 回顾序言第一章课后题填空选择简答 第二章课后题填空选择编程 计划第三章课后题填空选择简答编程 第四章课后题填空选择简答编程 第五章课后题填空选择简答编程 第六章课后题说明 第七章课后题填空选择简答编程 第八章课后题填空选择简答编程 第九章课后题填空选择简答…

JVM垃圾回收详解

前言 当需要排查各种内存溢出问题、当垃圾收集成为系统达到更高并发的瓶颈时&#xff0c;我们就需要对这些“自动化”的技术实施必要的监控和调节。 堆空间的基本结构 Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时&#xff0c;Java 自动内存管理最核…

Hive 操作基础(进阶篇✌️)

Hive 进阶操作 分区表 创建分区表 create table score_part(字段名 字段类型,字段名 字段类型 )partitioned by (分区字段 分区类型) row format delimited fields terminated by \t; 创建单极分区表 注意: 分区的列名不能和数据列名相同.分区列会当做虚拟列出现在数据列…

【Kafka】Windows+KRaft部署指南

【Kafka】WindowsKRaft部署指南 摘要本地环境说明官网快速开始修改config/kraft/server.properties初始化数据存储目录启动 测试创建topic创建生产者创建消费者 FAQ输入行太长。命令语法不正确。问题描述解决方案 参考资料 摘要 Kafka是一种高吞吐量的分布式发布订阅消息系统&…

Docker-软件容器平台

一、容器 1、什么是容器 容器就是将软件打包成标准化单元&#xff0c;以用于开发、交付和部署 容器镜像是轻量的、可执行的独立软件包 &#xff0c;包含软件运行所需的所有内容&#xff1a;代码、运行时环境、系统工具、系统库和设置。容器化软件适用于基于 Linux 和 Windows…

OSS和FastDFS的区别

FastDFS&#xff1a; FastDFS 是一种开源的轻量级分布式文件系统&#xff0c;基于HTTP协议实现。具有高扩展性、高可用性和高稳定性。它解决了大容量文件存储和高效访问的问题&#xff0c;适合作为大容量文件的存储服务器。FastDFS 通过文件系统集群&#xff0c;使得用户可以将…