使用Postman工具接口测试

文章目录

  • 一、接口
    • 1.1 接口的概念
    • 1.2 接口的类型
  • 二、接口测试
    • 2.1 概念
    • 2.2 原理
    • 2.3 特点
  • 三、HTTP协议
    • 3.1 http协议简介
    • 3.2 URL格式
    • 3.3 HTTP请求
      • 3.3.1 请求行
      • 3.3.2 请求头
      • 3.3.3 请求体
    • 3.4 HTTP响应
      • 3.4.1 状态行
      • 3.4.2 响应头
      • 3.4.3 响应体
    • 3.4 传统风格接口
    • 3.5 RESTful风格接口
  • 四、接口测试流程
  • 五、接口用例设计
    • 5.1 为什么写
    • 5.2 测试点
      • 5.2.1 功能测试
      • 5.2.2 性能测试
      • 5.2.3 安全测试
    • 5.3 设计方法与思路
      • 与手工设计相同之处
      • 与手工设计不同之处
  • 六、Postman工具
    • 6.1 下载与介绍
    • 6.2 运行jar包
  • 七、实战使用postman
    • 7.1 get方法的使用
    • 7.2 Post方法的使用
    • 7.3 postman环境讲解
    • 7.4 变量
    • 7.5 变量细节刨析
    • 7.6 postman沙箱
    • 7.7 postman实战之预处理脚本
    • 7.8 postman实战之断言
    • 7.9 runner测试
    • 7.10 利用postman生成在线的api文档

一、接口

1.1 接口的概念

系统与系统之间,组件与组件之间,数据传递交互的通道

1.2 接口的类型

  • 按协议划分:http、tcp、IP
  • 按语言划分:C++、java、php
  • 按范围划分:
    系统之间:
    “多个内部系统之间”
    “内部系统与外部系统之间”
  • 程序之间划分:
    “方法与方法之间、函数与函数之间、模块与模块之间”

二、接口测试

2.1 概念

接口测试就是,对系统或组件之间的接口进行测试。校验传递的数据正确性和逻辑依赖关系的正确性

2.2 原理

接口测试,主要针对的测试目标 —— 服务器

  • 怎么测?
    模拟客户端,向服务器发送请求
  • 用什么测?
    工具:fiddler、postman、jmter
    代码:python + UnitTest框架 + Requests框架
  • 测什么?
    测试 服务器针对客户端请求,回发的响应数据是否与预期结果一致!

2.3 特点

  • 符合质量控制前移的理念
  • 可以发现一些页面操作发现不了的问题
  • 接口测试低成本高效益
  • 接口测试是从用户的角度对系统进行检测

三、HTTP协议

3.1 http协议简介

HTTP:(HyperText Transfer Protocol)超文本传输协议,是一个基于请求与响应模式的、应用层的协议,也是互联网上应用最为广泛的一种网络协议

特征:
1. 支持客户端/服务器模式
2. 简单快速
3. 灵活
4. 无连接
5. 无状态

3.2 URL格式

概念:统一资源定位符
作用:在网络环境中,唯一的定义一个数据资源

  • 协议:http。 规定数据传输的方式。
  • 域名(IP):在网络环境中找到主机。—— 用 : // 与协议隔分
  • 端口(port):(常省略)在网络主机上,标识一个进程(应用程序)—— 用: 与域名
  • 资源路径:标识网络资源(文件、图片、音视频、变量…)—— 用: / 与端口格分
  • 查询参数:传递给资源路径对应的数据。—— 用 ? 与资源路径隔分。 查询参数内部 用 & 隔分多个kv对

3.3 HTTP请求

作用:

  • 客户端(app、浏览器),发送请求给服务器时,使用的协议 —— http请求协议
  • 规定 发送给服务器的数据传输的语法格式

整体格式:

  • 请求行:http请求第一行。请求方法 (空格) URL (空格) 协议版本
  • 请求头:语法格式:k :v
    • User-Agent:描述 请求发送端的 浏览器类型。
    • Content-Type:描述 请求体 的 数据类型!
  • 空行:代表http请求头结束。
  • 请求体:请求发送时携带的数据。数据类型 Content-Type 的值!
    • post 和 put 有请求体
    • get 和 delete 没有请求体

3.3.1 请求行

  • http 请求方法:大小写均可
    • GET:查询 —— 没有请求体
    • POST:添加(登录时常用)
    • put: 修改
    • delete: 删除 —— 没有请求体

3.3.2 请求头

  • 数据格式:k:v
  • Content-Type:
    • application/json: JSON数据格式
    • application/x-www-form-urlencoded: form表单数据

3.3.3 请求体

  • GET和DELETE 没有
  • PUT 和POST有
  • 数据类型受 Content-Type 值影响

3.4 HTTP响应

作用:

  • 服务器端,针对客户端发送的 http请求,回发响应数据。—— http应答!
  • 规定 回发给客户端的数据组织格式

整体格式

  • 响应行(状态行):协议版本 (空格) 状态码 (空格) 状态描述
  • 响应头:语法格式:k:v
    • Content-Type: 描述 响应体中数据类型。
  • 空行:代表响应头结束
  • 响应体:绝大多数不为空(请求成功:回发数据,失败:回发错误信息)
    • 数据类型受 Content-Type值影响

3.4.1 状态行

状态码:

  • 1xx:代表指示信息。表请求已经被接收,等待继续处理
  • 2xx:代表请求成功被处理、接收。 常见:200、201
  • 3xx:重定向,待访问的资源,需求重新指定路径访问
  • 4xx:代表客户端错误。常见:404、 403
  • 5xx:访问器端错误

3.4.2 响应头

  • 语法格式:k:v
  • Content-Type:值为 响应体 的数据类型
  • Content-Length: 响应体的大小。可以不写,浏览器会自动求取。一旦写,必须准确!

3.4.3 响应体

  • 回发给客户端的 消息内容。常见的有 html网页、xml、json

3.4 传统风格接口

特点:

  • 请求方法,只使用 get 和 post 即可
  • URL 不唯一。同一个操作可以对应不同的 URL
  • 状态码的使用较单一。200 最常见

3.5 RESTful风格接口

特点:

  1. 每一个URL代表一种资源;
  2. 客户端和服务器之间,传递这种资源的某种表现层;
    • 表现层:数据的不同表现形式(如:图片、文字表现同一个数据对象)
  3. 客户端通过四个HTTP动词(GET、post、delete、put),对服务器端资源进行操作,实现"表现层状态转化";
  4. 接口之间传递的数据最常用格式为JSON‘

四、接口测试流程

  • 分析需求,产生需求文档
  • (开发产生接口文档)解析接口文档
  • 产生接口测试用例(评审)
  • 执行测试用例
    工具:postman、jmeter、fiddler
    代码:python + Requests + UnitTest
  • 提交测试报告、跟踪缺陷
  • 生成测试报告
  • 接口自动化持续集成

五、接口用例设计

5.1 为什么写

  1. 防止测试点漏测。条理清晰
  2. 方便分配工作,评估工作量和时间

5.2 测试点

5.2.1 功能测试

  • 单接口功能:
    • 手工测试中的单个业务模块,一般对应一个接口。
      • 登录业务 ——> 登录接口
      • 加入购物车业务 ——> 加入购物车接口
      • 订单业务 ——> 订单接口
      • 支付业务 ——> 支付接口
    • 借助工具、代码。绕开前端界面,组织接口所需要的数据,展开接口测试
  • 业务场景功能:
    • 按照用户实际 使用场景,梳理 接口业务 场景
    • 组织业务场景时,一般只需做 正向 测试即可(与手工一致)
    • 一般建议用最少的 用例 覆盖最多的业务场景
      • 登录 —— 搜索商品 —— 加购物车 —— 下单 —— 支付 —— 评价

5.2.2 性能测试

  • 响应时长
  • 吞吐量
  • 并发数量
  • 服务器资源利用率

5.2.3 安全测试

  • 攻击安全。 —— 与测试工程师无关

  • 业务安全。 —— 测试的方向

5.3 设计方法与思路

与手工设计相同之处

  • 手工测试 对应的 功能测试点,与接口测试对应的功能 完全一致

shop商城 登录 页面,手工功能测试用例设计要点:

  1. 页面布局是否符合需求
  2. 测试 用户名 输入框,输入的数据是否正确
  3. 测试 密码 输入框,输入的数据是否正确
  4. 测试 验证码 输入框, 输入的数据是否正确

shop商城 登录 页面,接口测试用例设计要点:

  1. 测试 用户名 输入框对应的 username 的值 是否正确
  2. 测试 密码 输入框对应的 password 的值,是否正确
  3. 测试 验证码 输入框对应的 verify_code 的值,是否正确

与手工设计不同之处

  1. 手工测试,测写入到输入框中的数据是否正确。接口测试测 参数 对应的 参数值 是否正确
  2. 接口测试,不单单针对 参数值进行,还可以针对 参数本身 进行测试
    • 正向参数:
      • 必选参数:所有的 必选(必填)都包含
      • 组合参数:所有的 必选 + 任意一个或多个可选参数
      • 全部参数:所有的 必选 + 所有的 可选参数
    • 反向参数:
      • 多参:多出一个或多个必选参数 (可以任意指定)
      • 少参:缺少一个或多个必选参数
      • 无参:没有必选参数
      • 错误参数:参数名输入错误

六、Postman工具

6.1 下载与介绍

什么是 postman 是一款非常流行的http接口测试工具

Postman有两种种安装方式
分别为:
应用程序和浏览器插件
postman下载 postman下载地址

jdk安装:

jdk的简介
jre: java runtime environment
jdk:java development kit

win10怎么配置jdk变量
右键此电脑-》属性-》高级系统设置-》环境变量

jdk默认安装路径
新建两个变量
JAVA_HOME
变量值为jdk的安装路径
PATH
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin

测试环境是否安装成功
javac
java -version

在这里插入图片描述
postman有四个操作区域:
上边工具栏
左边菜单栏
右边请求栏
下边状态栏
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/315c0691d82a42cf9db2cf4f5c6ae11a.png
在这里插入图片描述

6.2 运行jar包

运行步骤:
进入含有jar的文件夹下 ,然后在地址栏中输入-》 cmd -》 然后回车 -》 java -jar postman.jar
在这里插入图片描述

七、实战使用postman

7.1 get方法的使用

  • get请求

特点:
参数和url通过 “?” 隔开
参数是以键值对的形式,例如:name=小杰
可以传递多个参数,参数与参数之间通过"&"隔开。例如:name=小杰&password=123

postman中响应的内容

body: 服务器相应的数据
cookies: 返回的cookes
headers: 对相应信息的描述,比如返回内容的格式 长度 返回的服务器
Test Restults: 显示脚本执行结果的地方

在这里插入图片描述

7.2 Post方法的使用

-post的常用三种格式:

  1. form-data格式
  2. x-www-form-urlencoded格式
  3. json格式

post请求和get请求的区别:

  • post请求传输的数据相对安全
  • post请求可以上传文件

三种格式的实战案例

1、form-data格式

请求的地址: localhost:8085/pub/api/flogin 
请求的参数:(参数都是必填的,不填或者参数不一致,将无法返回预期的结果) 
name:老王
password:12345
pcode:12345

在这里插入图片描述

2、x-www-form-urlencoded格式

请求的地址: localhost:8085/pub/api/login
请求的参数:(参数都是必填的,不填或者参数不一致,将无法返回预期的结果)
name:老陈
password:12345
pcode:12345

3、json格式

请求的地址: localhost:8085/pub/api/Jlogin
请求的参数:(参数都是必填的,不填或者参数不一致,将无法返回预期的结果)
{ "name":"老杨", "password":"12345", "pcode":"12345" }

在这里插入图片描述

7.3 postman环境讲解

我们首先要创建环境
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这里就是我们所创建的环境
在这里插入图片描述
在这里我们就可以选择我们所要使用的环境
在这里插入图片描述

7.4 变量

postman中变量种类

  • 环境变量
  • 集合变量
  • 全局变量

在这里可以看到我们当前使用的环境是有什么变量
在这里插入图片描述
点击Edit 可以添加变量 我们在全局环境中添加变量

在这里插入图片描述

在这里我们修改下测试环境 添加变量
在这里插入图片描述
在这里插入图片描述

7.5 变量细节刨析



集合变量、环境变量和全局变量的作用范围:

  • 集合变量:作用范围在整个集合
  • 环境变量:作用范围在当前使用的环境
  • 全局变量:在所有集合所有环境中都可以使用

当集合变量、环境变量和全局变量的名字冲突的时候,postman是如何取值的?

  • 当集合变量和环境变量和全局变量冲突的时候 优先使用环境变量
  • 当集合变量和全局变量冲突的时候 优先使用集合变量

7.6 postman沙箱



定义与功能

  • 定义:Postman沙箱是一个隔离的JavaScript执行环境,专为编写预请求脚本(Pre-request Script)和测试脚本(Test Script)而设计
  • 功能:
    1、预请求脚本:在请求发送之前执行,用于修改请求参数、设置环境变量等。
    2、测试脚本:在请求响应后执行,用于断言响应内容、检查状态码等,以确保响应符合预期



脚本编写与执行

  • 用户可以在Postman的“Pre-request Script”和“Tests”标签页中编写JavaScript脚本
  • 这些脚本在Postman沙箱中执行,不会影响到Postman应用本身或其他请求的执行
  • 通过Postman提供的API(如pm.environment.set、pm.test等),用户可以轻松地设置环境变量、进行断言等操作



应用场景

  • 参数化请求:通过预请求脚本设置不同的请求参数,实现批量测试
  • 环境变量管理:在预请求脚本中设置环境变量,以便在请求中使用
  • 断言响应:在测试脚本中编写断言,验证响应内容是否符合预期
  • 构建复杂的工作流:通过脚本控制请求的发送顺序,实现复杂的工作流




注意事项

  • 脚本性能:由于脚本在沙箱中执行,其性能可能受到JavaScript引擎的限制。因此,应避免编写过于复杂的脚本,以免影响请求的性能
  • 安全性:在编写脚本时,应注意安全性问题,避免执行不安全的操作(如执行外部代码)
  • 兼容性:随着Postman版本的更新,沙箱中的API和功能可能会有所变化。因此,在编写脚本时,应参考最新的Postman文档

7.7 postman实战之预处理脚本



一:在请求运行之前编写脚本

1.点击集合中的任意一个接口

2.点击Pre-request Script,即可在此下方编写脚本

3.点击send,Pre-request Script下的代码将在Postman将请求发送到API之前执行
在这里插入图片描述



二:如何编写脚本

Postman中提供一些选项,点击一下,则会在Pre-request Script中生成对应的脚本,可根据自己的需求来编写脚本

点击集合中的任意一个接口
点击Pre-request Script,即可在此下方编写脚本
点击右侧的Snippets下的提示
在这里插入图片描述


三:使用请求数据编写脚本

pm.request对象提供对运行脚本的请求的数据的访问。对于预请求脚本,这是即将运行的请求

可以使用pm.request对象预请求脚本在请求运行之前更改请求配置的各个部分。

该pm.request对象提供以下属性和方法:

  • 为当前请求添加具有指定名称和值的标头:
    pm.request.headers.add(header:Header):function
pm.request.headers.add({key:"client-id",value:"abcdef"
})

如:在Postman中的预请求脚本中,添加上述示例代码,打开控制台,在该请求接口中看到headers中新增了我们设置的key和value
在这里插入图片描述

  • 删除指定名称的请求头:

pm.request.headers.remove(headerName:String):function
如:上述在headers中添加了key和value,在下面我们选择删除数据,在预请求脚本中添加上述代码,在控制台中则会发现,不会出现新增的key和value
在这里插入图片描述

7.8 postman实战之断言



在 postman 中我们是在Tests标签中编写断言,同时右侧封装了常用的断言,当然 Tests 除了可以作为断言,还可以当做后置处理器来编写一些后置处理代码,经常应用于:

  • 获取当前接口的响应,传递给下一个接口

  • 控制多个接口间的执行顺序
    在这里插入图片描述
    常见的断言方法

1、状态码断言

  • 判断接口响应的状态码:Status code: code is 200

pm.test(“Status code is 200”, function () {

//Status code is 200是断言名称,可以自行修改 pm.response.to.have.status(200);

//这里填写的200是预期结果,实际结果是请求返回结果

});

  • 判断接口响应码是否与预期集合中的某个值一致

pm.test(“Successful POST request”, function () { pm.expect(pm.response.code).to.be.oneOf([201,202]);

//检查响应码是否为201或者202

});

  • 判断状态码名称(也就是状态码后面的描述)是否包含某个字符串:Status code:code name has string

pm.test(“Status code name has string”, function () { pm.response.to.have.status(“OK”);

//断言响应状态消息包含OK

});

2、响应内容断言

  • 断言响应体中包含XXX字符串:Response body:Contains string

pm.test(“Body matches string”, function () { pm.expect(pm.response.text()).to.include(“string_you_want_to_search”);

//pm.response.text()

});

  • 响应结果如果是json,断言响应体(json)中某个键名对应的值:Response body : JSON value check

pm.test(“Your test name”, function () {

var jsonData = pm.response.json();

//获取响应体,以json显示,赋值给jsonData .注意:该响应体必须返会是的json,否则会报错 pm.expect(jsonData.value).to.eql(100);

//获取jsonData中键名为value的值,然后和100进行比较

});

  • 断言响应体等于XXX字符串:Response body : is equal to a string

pm.test(“Body is correct”, function () { pm.response.to.have.body(“response_body_string”);

//获取响应体等于response_body_string

});

3、响应头断言

  • 断言响应头包含:Response headers:Content-Type header check

pm.test(“Content-Type is present”, function () { pm.response.to.have.header(“Content-Type”);

//断言响应头存在"Content-Type"

});

4、响应速度断言

  • 判断实际响应时间是否与低于预期时间:Response time is less than 200ms

pm.test(“Response time is less than 200ms”, function () { pm.expect(pm.response.responseTime).to.be.below(200); });

如下图所示
在这里插入图片描述
常用断言对应的脚本
清除一个环境变量

postman.clearEnvironmentVariable(“variable_key”);

断言响应数据中是否存在某个元素

tests[“//断言返回的数据中是否存在__pid__这个元素”] = responseBody.has(“pid”);

断言response等于预期内容

tests[“Body is correct”] = responseBody === “response_body_string”;

断言json解析后的key的值等于预期内容

tests[“Args key contains argument passed as url parameter”] = ‘test’ in responseJSON.args

检查response的header信息是否有被测字段

tests[“Content-Type is present”] = postman.getResponseHeader(“Content-Type”);

校验响应数据中,返回的数据类型

var jsonData = JSON.parse(responseBody);//第一步先转化为json字符串。其中变量(jsonData)可以自行定义…

tests[“//data.category.name__valuse的值的类型是不是string”] = typeof(jsonData.data.category[0].name) == “string”;

响应时间判断

tests[“Response time is less than 200ms”] = responseTime < 200;

设置环境变量

postman.setEnvironmentVariable(“variable_key”, “variable_value”);

断言状态码

tests[“Status code is 200”] = responseCode.code != 400;

检查响应码name

tests[“Status code name has string”] = responseCode.name.has(“Created”);

断言成功的post请求返回码

tests[“Successful POST request”] = responseCode.code === 201 || responseCode.cod

7.9 runner测试

启动runner有两种方式:
一、启动runner
在这里插入图片描述
二、设置Collection runner运行参数

进入到runner,选中Collection之后,在页面的右侧栏会显示Collection中的请求列表,runner允许通过以下方式自定义请求的执行

  • 执行顺序:请求以它们出现在Collecntion运行器的“运行顺序”窗格中的顺序执行。可以通过拖放来重新排序执行。

  • 选择性执行:可以使用Collecntion运行器的“ 运行顺序”窗格中的前面的复选框来禁用请求,从而阻止执行请求

在这里插入图片描述
1、Environment:环境切换

如果选择的Collection的请求中需要用到特定的环境,可以通过此选项切换

2、Iterations:迭代次数

按照设置的请求执行顺序,执行设置的迭代次数

3、Delay:设置请求之间的延时

收集运行中每个请求之间的间隔(以毫秒为单位)

4、Data:提供用于收集运行的数据文件

支持application/Json、text/csv文件格式,并且提供了数据预览功能,下一篇文章专门讲解参数化的使用。

5、save responses:保存响应结果

限制运行Collection时的响应日志记录,默认情况下,所有响应都会被记录,可以更改该设置以提高执行效率。更改方式可以有如下几种:

a、对于所有请求,将记录所有请求的响应。

b、对于失败的请求,将仅记录对至少一项测试失败的请求的响应。

c、对于没有请求,将不会记录任何响应。

6、keep variable values:保存运行中的变量

启用此选项将在运行结束时保存变量的值,并覆盖先前的值。

7、Save Cookies after collection run:运行collection之后保存cookie值

Collection中的请求可以在执行期间创建/更新cookie。该选项可以将cookie保存到cookie管理器,从而覆盖任何现有cookie。启用此选项会将会话的cookie保存到cookie管理器

三、运行测试集Collection

下面上面六个接口为例运行,上面的设置参数中,需要勾选保存响应结果项,其他无要求:

点击上图中的Run按钮,即可启动测试集请求的执行,运行结果如下:
在这里插入图片描述
四:查看Collection执行结果

在此运行结果中,可以进行如下分析:

1、在右侧边栏可以看到明显的编号,如果多次迭代会有相应的数字,本次运行的迭代次数为1,

2、每一行请求,都是一个执行结果,点击可以列出该请求发出后的所有内容(请求及返回的响应结果)

3、绿色的方块表示无断言或者断言通过,红色的方块表示断言失败,有一个断言失败,则请求失败

4、在左侧边栏上,可以过滤断言成功的请求或者失败的请求,点对应颜色的方框即可

5、在本页可以点击页面上部的export result,导出Json格式的执行结果文件,不过可读性不好

7.10 利用postman生成在线的api文档

在这里插入图片描述

这个就是我们postman生成的在线文档了
在这里插入图片描述

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

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

相关文章

Race Karts Pack 全管线 卡丁车赛车模型素材

是8辆高细节、可定制的赛车,内部有纹理。经过优化,可在手机游戏中使用。Unity车辆系统已实施-准备驾驶。 此套装包含8种不同的车辆,每种车辆有8-10种颜色变化,总共有75种车辆变化! 技术细节: -每辆卡丁车模型使用4种材料(车身、玻璃、车轮和BrakeFlare) 纹理大小: -车…

基于单片机的可调式中文电子日历系统

** 文章目录 前言概要功能设计软件设计效果图 程序文章目录 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们…

如何在O2OA中使用ElementUI组件进行审批流程工作表单设计

本文主要介绍如何在O2OA中进行审批流程表单或者工作流表单设计&#xff0c;O2OA主要采用拖拽可视化开发的方式完成流程表单的设计和配置&#xff0c;不需要过多的代码编写&#xff0c;业务人员可以直接进行修改操作。 在流程表单设计界面&#xff0c;可以在左边的工具栏找到Ele…

文心一言 VS 讯飞星火 VS chatgpt (357)-- 算法导论24.2 3题

三、上面描述的 PERT 图的公式有一点不太自然。在一个更自然的结构下&#xff0c;图中的结点代表要执行的工作&#xff0c;边代表工作之间的次序限制&#xff0c;即边 (u&#xff0c;v) 表示工作 u 必须在工作 v 之前执行。在这种结构的图中&#xff0c;我们将权重赋给结点&…

httpsok-v1.17.0-SSL通配符证书自动续签

&#x1f525;httpsok-v1.17.0-SSL通配符证书自动续签 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具&#xff0c;基于全新的设计理念&#xff0c;专为 Nginx 、OpenResty 服务器设计。已服务众多中小企业&#xff0c;稳定、安全、可靠。 一行命令&#xff0c;一分钟轻…

LQR算法核心思想

本章以倒立摆为解决目的 什么是线性二次型控制器&#xff08;LQR&#xff09; 开环系统 即状态变量的倒数 系统的状态空间矩阵A * 系统状态变量x A状态矩阵&#xff1a;描述系统本身物理特性的一个矩阵&#xff0c;它是由系统本身的机械结构、物理结构决定的&#xff0c;无法…

【漏洞复现】VEXUS多语言货币交易所存在未授权访问漏洞

漏洞描述 java后端,非常完整的一套交易所,UI前端做的也很漂亮,新增了交易跟单功能,前端pc+wap都是uniapp纯源码,前端源码node_modules环境已经安装好了,拿去直接编译就可以. 后端 前端 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共…

ARM 服务器上安装 OpenEuler (欧拉)

系统介绍 在 2019 年 7 月 19 日&#xff0c;华为宣布要在年底正式开源 openEuler 操作系统&#xff1b;在半年后的 12 月 31 日&#xff0c;华为正式开源了 openEuler 操作系统&#xff0c;邀请社区开发者共同来贡献。 一年后&#xff0c;截止到 2020 年12 月 25日&#xff…

第167天:应急响应-日志自动提取分析项目_ELK_Logkit_LogonTracer_Anolog等

目录 案例一&#xff1a; 日志自动提取-七牛Logkit&观星应急工具 Logkit 观星 案例二&#xff1a;日志自动分析-Web-360 星图&Goaccess&ALB&Anolog 360 星图 GoAccess ALB Anolog f8x 案例一&#xff1a; 日志自动提取-七牛Logkit&观星应急工具 …

Webpack 特性探讨:CDN、分包、Tree Shaking 与热更新

文章目录 前言包准备CDN 集成代码分包Tree Shaking原理实现条件&#xff1a;解决 treeShaking 无效方案&#xff1a;示例代码&#xff1a; 热更新&#xff08;HMR&#xff09; 前言 Webpack 作为现代前端开发中的核心构建工具&#xff0c;提供了丰富的特性来帮助开发者优化和打…

介绍GPT-o1:一系列解决困难问题( science, coding, and math )的推理模型

openai o1介绍 一、官方技术报告要点剖析实验1 benchmark分析实验2:和phd比赛技术细节&#xff1a;Chain of Thought的使用人类偏好评估Human preference evaluationsatety技术细节&#xff1a;隐藏思维链为监控模型提供了机会:)openai的几点conclusion 二、官方介绍剖析 Intro…

cpu路、核、线程、主频、缓存

路&#xff1a;主板插口实际插入的 CPU 个数&#xff0c;也可以理解为主板上支持的CPU的数量。每个CPU插槽可以插入一个物理处理器芯片。例如&#xff0c;一台服务器可能有2路或4路插槽&#xff0c;这意味着它最多可以安装2个或4个物理处理器。 核&#xff1a;单块 CPU 上面能…

Docker安装与应用

前言 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻 量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互 之间…

Spring Cloud 工程搭建服务注册_服务发现

文章目录 Spring Cloud 工程搭建服务拆分示例数据库工程搭建构建父子工程创建父工程创建子项目完成两个接口 远程调用实现添加ProductInfo字段定义RestTemplate修改OrderService 服务注册/服务发现 - Eureka注册中心CAP理论常见的注册中心ZookeeperEurekaNacos Eureka 介绍搭建…

SSM框架VUE电影售票管理系统开发mysql数据库redis设计java编程计算机网页源码maven项目

一、源码特点 smm VUE电影售票管理系统是一套完善的完整信息管理类型系统&#xff0c;结合SSM框架和VUE、redis完成本系统&#xff0c;对理解vue java编程开发语言有帮助系统采用ssm框架&#xff08;MVC模式开发&#xff09;&#xff0c;系 统具有完整的源代码和数据库&#…

vue echarts tooltip动态绑定模板,并且处理vue事件绑定

先上代码&#xff1a; tooltip: {// 这里是车辆iconshow: true,// trigger: "item",// backgroundColor: "transparent",appendToBody: true,textStyle: {color: "#ffffff" //设置文字颜色},formatter: (params) > {const TruckTooltip Vue.…

【SOP】Windows下安装Neo4j流程

Neo4j简介 Neo4j 是一个基于图形结构的 NoSQL 数据库&#xff0c;专门用于存储和管理图数据。与传统的关系型数据库不同&#xff0c;Neo4j 使用 图&#xff08;graph&#xff09;的形式来表示数据&#xff0c;其中数据点&#xff08;称为 节点&#xff09;通过 边&#xff08;…

遥感图像语义分割数据集制作(使用ArcGIS Pro)

0. 引言 图像分割就是把图像空间按照一定的要求分成一些“有意义”的区域的技术叫图像分割。一幅图像通常是由代表物体的图案与背景组成&#xff0c;简称物体与背景。若想从一幅图像中“提取”物体&#xff0c;可以设法用专门的方法标出属于该物体的点&#xff0c;如把物体上的…

WebSocket实现在线聊天室

项目实现源码&#xff1a; 前端源码 后端源码 1.常见的消息推送方式 1.1 轮询 1.1.1 轮询的概念 客户端以固定的事件间隔&#xff08;例如每秒或几分钟&#xff09;向服务器发送HTTP请求&#xff0c;服务器收到请求后&#xff0c;处理请求并返回数据给客户端 轮询具体实现htt…