Postman工具使用一篇快速入门教程

文章目录

  • 下载安装
  • 注册登录
  • Collection
  • Folder
  • Request
    • Get请求
    • Post请求
    • Header设置
    • Response响应
  • Environments
    • Global环境变量
    • 其他环境变量
    • Collection变量
    • 变量使用
    • 同名变量的优先级
  • Postman内置变量
  • Pre-request script和Test script脚本
    • 设置、删除和获取变量
    • 获取请求参数
    • 获取响应数据
    • MD5、AES、SHA256加密
    • sendRequest请求接口
      • Get请求
      • Post请求
        • raw模式
        • xxx-www-form-urlencoded模式
        • form-data模式
        • xml模式
    • 断言测试
  • 控制台日志
  • 数据导入导出
    • 链接或文件方式导入
    • Collection导出
    • Environments导出
    • 导出本地Postman所有数据
    • 分享数据

Postman 是一个用于构建和使用 API 的 API 平台,Postman 简化了 API 生命周期的每个步骤并简化了协作,可以更快地创建更好的 API。

版本说明:

在这里插入图片描述

下载安装

Postman官网下载链接:https://www.postman.com/,根据自己的操作系统选择。
在这里插入图片描述
找到下载到的目录直接双击.exe文件,会默认安装在C盘,安装完会自动打开。

注册登录

Postman最新版本已经不维护离线模式(未登录),要体验全部功能需要登录,若没有Postman账号可以注册一个,若已有账号,只要登录就可。

官网注册链接:https://identity.getpostman.com/signup。

注册好后,在Postman界面点击sign in进行登录(会从浏览器登录后跳转回应用程序)。
在这里插入图片描述

Collection

Collection是多个Folder和Request的合集,可以添加Pre-request Script、Tests脚本和Variables变量,且作用于Collection里的所有Request。
选择侧边栏的Collections,再点击加号创建一个空的Collection新建Collection。
在这里插入图片描述
Collection相关说明如下图:
在这里插入图片描述
删除Collection:
在这里插入图片描述
快捷键删除:选择要删除的Collection -> 点击键盘Delete键 -> 确认删除。

Folder

Folder是多个Request的合集(对Request更加细分),只能在Collection下创建,可以添加Pre-request Script、Tests脚本,且作用于Folder下的所有Request。
选择指定的Collection右侧三个点,下拉弹窗选择Add folder新建Folder。
在这里插入图片描述
Folder相关说明如下图:
在这里插入图片描述
删除Folder:
在这里插入图片描述
快捷键删除:选择要删除的Folder -> 点击键盘Delete键 -> 确认删除。

Request

Request是请求接口,可以在Collection或Folder下创建,可以添加Pre-request Script、Tests脚本,且只作用于当前Request。
选择指定的Collection或Folder右侧的三个点,下拉弹窗选择Add request新建Request。
在这里插入图片描述
Request相关说明如下图:
在这里插入图片描述
Request未保存状态窗口标签会有一个红点提示。
在这里插入图片描述
删除Request:
在这里插入图片描述
快捷键删除:选择要删除的Request -> 点击键盘Delete键 -> 确认删除。

注意:当我们在窗口栏上点击加号创建Request,是没有指定保存在哪个Collection或Folder里的。
在这里插入图片描述
使用Ctrl+S保存时需要自己选择保存到哪个地方。

在这里插入图片描述

Get请求

新建的Request默认是Get请求,也可以通过左侧的下拉弹窗修改。Get请求参数一般是在请求路径后用"?"拼接,也可以在Postman的params手动添加参数,会自动在请求路径后面拼接,取消参数前面的勾选后请求不会携带该参数。
在这里插入图片描述
说明:

  • Key:参数名。
  • Value:参数值。
  • Description:参数描述。
  • BulkEdit:批量编辑。

Post请求

选择请求方式为Post,请求参数在Body里设置,并选择指定的格式。
在这里插入图片描述

说明:

  • none:无参。
  • form-data:表单格式,Content-Type为multipart/form-data。
  • x-www-form-urlencoded:和表单类似键值对,但Content-Type为application/x-www-from-urlencoded。
  • raw:其他格式,有Text、JavaScript、JSON、HTML和XML(上图选择的是JSON)。
  • Beautify:根据选择的格式(例如:JSON),格式化参数,使参数方便阅读。

Header设置

Postman请求头在headers设置,例如:鉴权token等等,取消参数前面的勾选后请求不会携带。
在这里插入图片描述
说明:

  • Key:参数名。
  • Value:参数值。
  • Description:参数描述。
  • BulkEdit:批量编辑。
  • Presets:预设可以设置固定几个必携带的参数,下次新建Request后可以点击Presets选择直接添加。
  • 7Hidden:是隐藏了7个默认的参数,点击旁边的眼睛可以显示隐藏部分。

删除指定header参数:(删除图标默认是隐藏的)
在这里插入图片描述
设置并使用预设header参数:

  1. 找到管理预设Manage Presets。
    在这里插入图片描述
  2. 选择添加Header Presets。
    在这里插入图片描述
  3. 添加预设header,可以添加多个header参数,最后点击add添加(下图header值使用了动态变量后面会讲到)。
    在这里插入图片描述
    在这里插入图片描述
  4. 选择要使用的预设header,选择后会自动在当前Request的headers添加预设的header参数。
    在这里插入图片描述

Response响应

若Request有一些请求前执行的脚本,在Pre-request Script下添加,请求后执行的脚本,在Tests下添加(后面会讲到脚本),最后点击Send发送请求,并在Response区域查看请求结果。
在这里插入图片描述
说明:

  • Body:请求体。
  • Cookies:返回的Cookie信息。
  • Headers:响应头。
  • TestResults:Tests脚本执行结果。
  • Pretty:格式化后的结果。
  • Raw:未格式化的结果。
  • Preview:结果预览。
  • Status:请求状态码。
  • Time:请求响应时间。
  • Size:请求响应数据大小。

创建Request范例,点击Save as example。
在这里插入图片描述
会在当前Request下创建一个范例Request,这个Request是可以编辑的,也可以修改请求路径和参数等信息。
在这里插入图片描述
注意:范例Request的修改不会影响原来的Request。

响应结果另存为文件和清空:
在这里插入图片描述

Environments

Environments用来设置环境变量,默认有一个且唯一的Globals全局变量,也可以自己创建多个环境变量。

Global环境变量

设置Global全局环境变量:
在这里插入图片描述
注意:Globals全局变量作用于整个Postman,包括Collection、Folder、Request和脚本。

其他环境变量

设置其他环境变量:(例如:本地、开发、测试、生产环境)

  1. 创建新环境。
    在这里插入图片描述

  2. 新建环境重命名,并设置参数(和Globals一样)。
    在这里插入图片描述

Collection变量

设置Collection变量,作用于当前Collection下的所有Folder和Request。把Collection Variables放Environments是为了方便说,它们都是设置变量,之间存在优先级关系(查看下文)。
在这里插入图片描述

变量使用

语法:

{{variable_name}}

使用两个双大括号包裹变量名的方式引用,可以在请求路径Url、请求参数Params、请求参数Body、请求Headers、Pre-request Script和Tests脚本里使用。

Globals环境变量使用:
在这里插入图片描述

注意:无论有没有指定其他环境都可以使用Global变量,因为Global变量作用于整个Postman,当Global和指定环境变量名同名时,指定环境比全局环境优先级高,当鼠标光标悬浮在使用的变量名上,可以展示当前变量值和作用范围。

指定环境变量使用:
在这里插入图片描述

Globals和指定其他环境变量预览:
在这里插入图片描述
Collection变量使用:
在这里插入图片描述

同名变量的优先级

当Globals环境变量、其他环境变量和Collection变量同名时,使用该变量的优先级是:指定的其他环境 -> Collection -> Globals。

Postman内置变量

Postman内置变量参考:https://learning.postman.com/docs/writing-scripts/script-references/variables-list/

常用内置变量:

  • 时间戳:{{$timestamp}}
  • 生成0-1000的随机整数:{{$randomInt}}
  • 生成一个GUID的字符串:{{$guid}}
  • 生成一个随机UUID:{{$randomUUID}}

注意:内置变量和Environment、Collection变量一样,只是它是内部已经定义好的,可以直接在请求参数和脚本中引用。

Pre-request script和Test script脚本

Postman 包含一个基于Node.js的强大的运行时,允许您向请求Request、Collection和Folder添加动态行为,这允许您编写测试套件,构建可以包含动态参数的请求,在请求之间传递数据等等。

执行流程的2个脚本事件:

  • pre-request script:请求前脚本,在请求接口前执行。
  • test script:测试脚本,在请求接口并响应数据后执行。

脚本的执行顺序:
在这里插入图片描述

设置、删除和获取变量

//设置Collection变量
pm.collectionVariables.set("variable_name", "variable_value");
//设置Global变量
pm.globals.set("variable_name", "variable_value");
//设置Environment变量
pm.environment.set("variable_name", "variable_value");
//删除Collection变量
pm.collectionVariables.unset("variable_name");
//删除Global变量
pm.globals.unset("variable_name");
//删除Environment变量
pm.environment.unset("variable_name");
//获取变量(包括Global,Environment和Collection),同名变量,按照优先级获取
pm.variables.get("variable_name");
//获取Global环境变量
pm.globals.get("variable_name");
//获取Collection环境变量
pm.collectionVariables.get("variable_name");
//获取Environment环境变量
pm.environment.get("variable_name");

Postman在编写脚本的右侧有代码片段,只需要点击一下就会在编辑框生成代码片段,更友好的使用。
在这里插入图片描述

获取请求参数

//raw请求方式
let body = pm.request.body.raw;
let data = JSON.parse(body);
//form-data请求方式
let param = pm.request.body.formdata.get("variable_name");
// x-www-form-urlencoded请求方式
let param = pm.request.body.urlencoded.get("variable_name");

获取响应数据

为了在响应中执行断言,首先需要将数据解析为断言可以使用的JavaScript对象。

//解析JSON
const responseJson = pm.response.json();
//解析xml
const responseXml = xml2Json(pm.response.text());
//解析csv
const parse = require('csv-parse/lib/sync');
const responseCsv = parse(pm.response.text());
//解析HTML
const temp = cheerio.load(pm.response.text());
console.log(temp.html());

如果不解析成JavaScript对象是不是就不可以断言?当然不是,也可以不解析响应体断言。

// 测试响应体是否包含某个字符串
pm.test("Body contains string", () => {
 	pm.expect(pm.response.text()).to.include("customer_id"); 
}

MD5、AES、SHA256加密

//MD5
let token = CryptJS.MD5("文本内容").toString();
//SHA256加密
let token = CryptJS.SHA256("文本内容").toString();
//AES加密
function AesEncrypt(data, secret_key){
	//密码,文本,偏移量、模式等设置
    var ECBOptions = {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7};
    //加密密钥
    var AesSecert = CryptoJS.enc.Utf8.parse(secret_key);
    //AES加密
    return CryptoJS.AES.encrypt(data, AesSecert, ECBOptions).toString();
}
//AES解密
var ECBOptions = {
	mode: CryptoJS.mode.ECB,
	padding: CryptoJS.pad.Pkcs7
};
function decrypt(data, secret_key) {
	var AesSecert = CryptoJS.enc.Utf8.parse(secret_key);
	return CryptoJS.AES.decrypt(body, AesSecert, ECBOptions).toString(CryptoJS.enc.Utf8);
}

sendRequest请求接口

当我们在请求某个接口时,需要先从另一个接口获取需要的数据,或者在请求某个接口后再请求其他接口,这个时候就可以使用sendRequest。

语法:

pm.sendRequest(param, function(err, response){
	//进行其他操作(也可以再次调用sendRequest)
});

说明:

  • param:请求接口信息(包括但不限于请求路径、请求头和请求方式)。
  • err:接口异常信息。
  • response:接口响应数据。

注意:没指定请求方式默认是Get请求。

Get请求

//无参数无Header请求
pm.sendRequest("http://127.0.0.1:8090/demo/goods/list", function(err, resp) {
    console.log(resp.json());
});

//携带Header请求
const param = {
	//请求路径
    url: 'http://127.0.0.1:8090/demo/goods/list',
    //请求方式
    method: 'GET',
    //请求头
    header: {
        'token': '9e11562e553b4f56af43a1e81dcbb137'
    }
};
pm.sendRequest(param, function(err, resp) {
    console.log(resp.json());
});

//携带参数请求:在请求路径后面用?号拼接,多个参数用&分隔
pm.sendRequest("http://127.0.0.1:8090/demo/goods/list?id=123&name=小馒头", function(err, resp) {
    console.log(resp.json());
});

//携带参数携带Header请求
const param = {
	//请求路径
    url: 'http://127.0.0.1:8090/demo/goods/list?id=123&name=小馒头',
    //请求方式
    method: 'GET',
    //请求头
    header: {
        'token': '9e11562e553b4f56af43a1e81dcbb137'
    }
};
pm.sendRequest(param, function(err, resp) {
    console.log(resp.json());
});

Post请求

Post请求和Get不同,请求参数在Body里,而Body有raw、x-www-form-urlencoded、form-data、xml模式。

raw模式

Content-Type设为application/json。

header: {
	'Content-Type': 'application/json'
}

body的model设置为raw。

body: {
	mode: 'raw',
	raw: JSON.stringify({"data":{"name":"多味花生"}})
}

注意:raw的属性格式是{"key1":"value1","key2":"value2"},JSON格式。

示例:

//定义请求入参
const jsonParam = {
    "data": {
        "name": "多味花生"
    }
};
//定义请求参数
const reqData = {
    url: 'http://127.0.0.1:8090/demo/goods/info',
    method: 'POST',
    header: {
        'Content-Type': 'application/json',
        'signature': '0cc4d99e4d9941d19c324de7881b6a98'
    },
    body: {
        mode: 'raw',
        raw: JSON.stringify(jsonParam)
    }
};
//发送请求
pm.sendRequest(reqData, function(err, resp) {
    console.log(resp.json());
});
xxx-www-form-urlencoded模式

Content-Type设置为application/xxx-www-urlencoded;charset=UTF-8。

header: {
	'Content-Type': 'application/xxx-www-urlencoded;charset=UTF-8'
}

body的mode设置为urlencoded。

body: {
	mode: 'urlencoded',
	urlencoded: 'name=多味花生&typeEnum=FOOD'
}

注意:urlencoded的属性格式是key1:value1&key2:value2&key3:value3,多个参数使用&隔开。

示例:

//定义请求参数
const reqData = {
    url: 'http://127.0.0.1:8090/demo/goods/count',
    method: 'POST',
    header: {
        'Content-Type': 'application/xxx-www-urlencoded;charset=UTF-8',
        'signature': '0cc4d99e4d9941d19c324de7881b6a98'
    },
    body: {
        mode: 'urlencoded',
        urlencoded: 'name=多味花生&typeEnum=FOOD'
    }
};
//发送请求
pm.sendRequest(reqData, function(err, resp) {
    console.log(resp.json());
});
form-data模式

Content-Type设置为multipart/form-data。

header: {
	'Content-Type': 'multipart/form-data'
}

body的mode设置为formdata。

body: {
	mode: 'formdata',
	formdata: [{key:"name", value:"谷粒多"},{key:"typeEnum",value:"FOOD"}]
}

注意:formdata的属性格式是[{key:key1, value:value1},{key:key2, value:value2}],每个参数用{}包裹,多个参数用逗号隔开。

示例:

//定义请求参数
const reqData = {
    url: 'http://127.0.0.1:8090/demo/goods/count',
    method: 'POST',
    header: {
        'Content-Type': 'multipart/form-data',
        'signature': '0cc4d99e4d9941d19c324de7881b6a98'
    },
    body: {
        mode: 'formdata',
        formdata: [{key:"name", value:"谷粒多"},{key:"typeEnum",value:"FOOD"}]
    }
};
//发送请求
pm.sendRequest(reqData, function(err, resp) {
    console.log(resp.json());
});
xml模式

Content-Type设置为application/xml。

header: {
	'Content-Type': 'application/xml'
}

body的mode设置为raw。

body: {
	mode: 'raw',
	raw: '<count> <name>蛋仔</name> <type>ELECTRONICS</type> </count>'
}

注意:raw的属性格式是<自定义标签>标签值</自定义标签>,自定义标签名是请求参数名,标签值是参数值。

示例:

//定义请求参数
const reqData = {
    url: 'http://127.0.0.1:8090/demo/goods/count',
    method: 'POST',
    header: {
        'Content-Type': 'application/xml',
        'signature': '0cc4d99e4d9941d19c324de7881b6a98'
    },
    body: {
        mode: 'raw',
        raw: '<count> <name>蛋仔</name> <type>ELECTRONICS</type> </count>'
    }
};
//发送请求
pm.sendRequest(reqData, function(err, resp) {
    console.log(resp.json());
});

断言测试

pm对象提供了测试功能:

  • pm.test(testName:String, specFunction:Function):Function:测试函数。
  • pm.expect(assertion:*):Function → Assertion:允许在响应数据上做测试,使用ChaiJS expect BDD语法。
  • pm.response.to.have.*pm.response.to.be.*来构建断言。

测试状态码:

pm.test("请求状态码200", function() {
  pm.response.to.have.status(200); 
});
pm.test("请求状态码200", function() {
  pm.expect(pm.response.code).to.eql(200); 
});

测试响应时间:

pm.test("请求响应时间少于200ms", () => {
  pm.expect(pm.response.responseTime).to.be.below(200); 
});

组合断言测试:测试脚本也可以包含多个断言作为单个测试,可以将相关断言组合在一起。如果包含的任一个断言失败,整个测试将失败,所有断言都必须成功,测试才能通过。

pm.test("The response has all properties", () => {
  const responseJson = pm.response.json(); //将响应体body转换成JSON格式
  pm.expect(responseJson.type).to.eql('vip'); // type等于vip
  pm.expect(responseJson.name).to.be.a('string'); // name值的类型为string类型
  pm.expect(responseJson.id).to.have.lengthof(1); // id的长度为1
}

控制台日志

在测试脚本中遇到错误或意外行为时,Postman控制台可以帮助你识别,通过将console.log调试语句与你的测试断言相结合,你可以检查http请求和响应的内容,以及变量之类的。

使用控制台日志来标记代码执行,也称为“跟踪语句”。

  • console.log():打印日志
  • console.info():打印日志信息
  • console.debug():打印Debug日志
  • console.error():打印错误日志
  • console.warn():打印警告信息

示例:

if(pm.response.json().data) {
    console.log("数据不为空");
} else {
    console.log("数据为空");
}

Postman控制台在左下角的Console。
在这里插入图片描述

数据导入导出

这里的数据导入导出,包括Collection、Environment环境变量、Pre-request Script和Tests脚本。

链接或文件方式导入

  1. 点击主页标题栏下的import按钮。
    在这里插入图片描述
  2. 选择导入的方式,下图所示三种方式。
    在这里插入图片描述

Collection导出

  1. 选择要导出的Collection,点击右侧三个点,选择Export导出。
    在这里插入图片描述
  2. 默认选择,直接导出JSON文件。
    在这里插入图片描述

注意:如果Collection有Variable变量、Pre-request script和Tests脚本也会被导出。

Environments导出

  1. Globals导出,点击Export按钮,直接导出JSON文件。
    在这里插入图片描述
  2. 新增的其他环境导出,点击右侧三个点,选择Export,导出JSON文件。
    在这里插入图片描述

导出本地Postman所有数据

  1. 打开设置
    在这里插入图片描述
  2. 选择Data -> Request Data Export。
    在这里插入图片描述
  3. 会跳转到网页上,点击Export Data按钮。
    在这里插入图片描述
  4. 默认全选,选择导出,会通过Email方式发送到你的账号邮箱,访问邮箱链接下载导出文件。
    在这里插入图片描述

分享数据

除了Collection可以生成分享链接,其他的Folder、Request和Environment都只能分享给指定的用户或者用户邮箱,分享数据和导出数据一样。

Collection分享:

  1. 选择要分享的Collection,以下二种方式任意选一个。
    在这里插入图片描述
  2. 选via api,点击Generate New Key,最后复制完整链接给其他用户,用户通过该链接导入分享的Collection。
    在这里插入图片描述

Request分享:

  1. 选择分享的Request,点击右侧三个点,选择Share。
    在这里插入图片描述
  2. 根据分享方式
    在这里插入图片描述
    注意:下面让你选择什么方式去合作,默认选择创建一个新的工作台并移除当前Collection给你的团队,另一个是分享你的工作台给你的团队。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构入门到入土——链表(完)LinkedList

目录 一&#xff0c;双向链表 1.单向链表的缺点 2.什么是双向链表&#xff1f; 3.自主实现双向链表 接口实现&#xff1a; 二&#xff0c;LinkedList 1.LinkedList的使用 1.1 什么是LinkedList&#xff1f; 1.2 LinkedList的使用 1.LinkedList的构造 2.LinkedList的…

GitLab clone 地址不对的解决办法

1丶问题描述 2丶解决方案 解决方案&#xff1a; 找到挂载到宿主机配置文件&#xff1a;gitlab.rb vi gitlab.rb 改成自己的ip 重启容器 docker restart gitlab 如果发现容器一直重启&#xff0c;可采用粗暴的方法&#xff0c;直接干掉当前容器&#xff0c;重新运行一个 …

AI数字人虚拟现实产业的发展现状与展望

AI数字人虚拟现实产业是当今科技领域备受瞩目的发展方向之一。随着人工智能和虚拟现实技术的迅猛发展&#xff0c;人们对于数字形象的需求不断增加&#xff0c;AI数字人虚拟现实产业正应运而生。本文将从产业现状和未来展望两个方面来描绘AI数字人虚拟现实产业的发展。 首先&a…

四、yolov8模型导出和查看

yolv8模型导出 1、找到engine文件夹下的exporter.py文件。 2、修改文件夹路径&#xff0c;改为我们训练结束后生成的文件夹。 3、打开default.yaml文件夹,找到format参数&#xff0c;修改为onnx&#xff0c;找到batch改为1,然后返回exporter.py文件&#xff0c;运行&#…

Ubuntu系统下安装TDengine Database

记录一下使用Ubuntu系统的安装TDengine Database管理软件工具 先查看一下系统的版本&#xff0c;可以看到这里使用的是Ubuntu20.04版本&#xff0c;版本代号focal mywmyw-S451LN:~$ uname -a Linux myw-S451LN 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu …

Unity 实用方法 合集

Unity 实用方法 合集 Unity 打字机效果2D 坐标旋转计算球面坐标求值平滑移动鼠标位置获取2D屏幕坐标转世界坐标物体朝向目标多物体中心点生成本地图片加载画面线框显示画面线框显示 搭载效果 贝塞尔曲线绘制贝塞尔曲线绘制 搭载效果 网格弯曲网格弯曲 搭载效果 Delaunay 模型生…

2024年全国教资笔试报名流程(建议电脑报名),看看有啥新要求?

一.报名、考试时间节点 1.笔试报名时间: 2024年1月12日-15日 2.笔试考试时间:2024年3月9日 3.笔试成绩查询时间:2024年4月15日 4.面试报名时间:2024年4月15日 5.面试考试时间:2024年5月18日 6.面试成绩查询时间:2024年6月14日 二.笔试报名流程: 登陆→考生注册 →填报个…

获取深层次字段报错TypeError: Cannot read properties of undefined (reading ‘title‘)

动态生成菜单时报错,不能多层获取路由meta下面的title字段 <template><p>{{ meneList }}</p><template v-for"item in meneList" :key"item.path"><el-menu-item v-if"!item.children"><template #title>{…

6 个适用于 Android 手机的有效照片恢复工具

我们大多数人都经历过至少一次从智能手机中意外删除照片或视频的经历。是否可以恢复这些文件&#xff1f;幸运的是&#xff0c;答案是肯定的。如果您正在寻找高级 图片恢复应用程序 来从 Android 中检索已删除的内容&#xff0c;那么这正是这篇文章将要展示的内容。 6 个照片恢…

控制论和科学方法论

《控制论与科学方法论》&#xff0c;真心不错。 书籍原文电子版PDF&#xff1a;https://pan.quark.cn/s/aa40d59295df&#xff08;分类在学习目录下&#xff09; 备用链接&#xff1a;https://pan.xunlei.com/s/VNgj2vjW-Hf_543R2K8kbaifA1?pwd2sap# 控制论是一种让系统按照我…

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(15)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置&#xff08;14&#xff09; 2.3.1 PCI桥 在PCI Agent设备的配置空间中包含了许多寄存器&#xff0c;这些寄存器决定了该设备在PCI总线中的使用方法&#xff0c;本节不会全部介绍…

SCT2A27STER:5.5V-100V Vin,4A峰值限流,高效异步降压DCDC转换器,集成200mA LDO

特性&#xff1a; • 5.5V-100V 输入电压范围 • 最大输出电压&#xff1a;30V • 2A 连续输出电流 • 4A峰值电流限制 • 1.2V 1% 反馈电压 • 集成500mΩ 高侧功率 MOSFETs • 可选5V或者3.3V,输出一路200mA LDO • 25uA静态电流&#xff0c;VBIAS连接到高于6V的辅助电源 •…

从起高楼到楼塌了的中台战略 —— 业务中台、数据中台、技术中台

目录 一. 前言 二. 中台能力总体框架 三. 业务中台 四. 数据中台 五. 技术中台 5.1. API 网关 5.2. 开发框架 5.3. 微服务治理 5.4. 分布式数据库 5.5. 数据处理组件 六. 阿里拆中台的原因和意义 七. 总结 一. 前言 中台是近年来互联网行业的一个热门话题。它最早是…

Linux系统与windows系统设置定时任务的具体操作方法,如数据库自动备份等

设置定时备份 要设置数据库定时备份&#xff0c;你可以使用操作系统的定时任务功能来自动执行 backup.sh 脚本(此脚本可关注文末公众号回复04获取)。不同的操作系统有不同的方法来设置定时任务&#xff0c;但一般来说&#xff0c;你可以按照以下步骤进行操作&#xff1a; 打开…

书生.浦语大模型实战一

从专用模型到通用大模型 数据 书生.万卷1.0 文本图像-文本视频数据 OpenDataLab开放平台 图像&#xff1a;ImageNettokens语料&#xff1a;WikiQA音频视频&#xff1a;MovieNet3D模型 预训练 微调 增量续训 使用场景&#xff1a;让基座模型学习到一些新知识&#xff0…

鸿蒙原生应用/元服务开发-长时任务

概述 功能介绍 应用退至后台后&#xff0c;对于在后台需要长时间运行用户可感知的任务&#xff0c;例如播放音乐、导航等。为防止应用进程被挂起&#xff0c;导致对应功能异常&#xff0c;可以申请长时任务&#xff0c;使应用在后台长时间运行。申请长时任务后&#xff0c;系统…

MyBatis 源码分析(五):异常模块

1、前言 上一篇我们解了Mybatis解析器模块&#xff0c;本篇我们来了解反射模块。本文&#xff0c;我们来分享 MyBatis 的异常模块。 对应 exceptions 包&#xff0c;如下图所示&#xff1a; 在 MyBatis源码分析&#xff08;二&#xff09;&#xff1a;项目结构 中&#xff0c;简…

大创项目推荐 深度学习实现语义分割算法系统 - 机器视觉

文章目录 1 前言2 概念介绍2.1 什么是图像语义分割 3 条件随机场的深度学习模型3\. 1 多尺度特征融合 4 语义分割开发过程4.1 建立4.2 下载CamVid数据集4.3 加载CamVid图像4.4 加载CamVid像素标签图像 5 PyTorch 实现语义分割5.1 数据集准备5.2 训练基准模型5.3 损失函数5.4 归…

Django web开发(一) - 前端

文章目录 前端开发1.快速开发网站2.标签2.1 编码2.2 title2.3 标题2.4 div和span2.5 超链接2.6 图片小结标签的嵌套2.7 列表2.8 表格2.9 input系列2.10 下拉框2.11 多行文本用户注册案例: 用户注册GET 方式POST 方式表单数据提交优化 3.CSS样式3.1 快速上手3.2 CSS应用方式1. 在…

【原生部署】SpringBoot+Vue前后端分离项目

本次主要讲解SpringBootVue前后端完全分离项目在CentOS云服务器上的环境搭建与部署过程&#xff0c;我们主要讲解原生部署。 一.原生部署概念 原生部署是指将应用程序&#xff08;一般是指软件、应用或服务&#xff09;在底层的操作系统环境中直接运行和部署&#xff0c;而不…