使用Postman工具接口测试

news2024/9/27 19:21:46

文章目录

  • 一、接口
    • 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.coloradmin.cn/o/2165663.html

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

相关文章

二网络复习

软路由&#xff1a; 1. ikuai 实现了一个多宽带线路的一个聚合可用家庭环境 2. Linux通过开启路由转发模拟路由器 &#xff08;仅学习使用&#xff09; #开启路由转发命令 vim /etc/sysctl.conf net.ipv4.ip_forward 1 sys…

C++学习笔记----8、掌握类与对象(一)---- 对象中的动态内存分配(1)

1、FRIENDS c允许类声明为其它类&#xff0c;其它类的成员函数&#xff0c;或者非成员函数为friend。可以访问protected与private数据成员与成员函数。例如&#xff0c;假设你有两个类Foo与Bar。你可以指定Bar类是Foo类的一个friend&#xff1a; class Foo {friend class Bar;…

《声入人心》团综重启,芒果能否再造一个群像神话?

随着《声入人心》团综《吾湖音乐局》于9月20日宣布重启&#xff0c;芒果的又一群像综艺“杀”回了市场。 从2018年音综市场冲出的一匹黑马&#xff0c;到2024年“声人”分散在影视综各个领域&#xff0c;这六年间芒果上演了无数次“狼来了”&#xff0c;但这一次团综是真的来了…

实现一个超轻量级实例分割网络的思路

文章目录 前言一、基本思路二、picodet三、yolact三、picodetyolact总结 前言 在某些工业领域&#xff0c;由于成本问题算力有限&#xff0c;只能实时跑一些超轻量级网络&#xff0c;拿目标检测来说&#xff0c;例如yolo-fast&#xff0c;pp-picodet这些。如果要跑实例分割&am…

魅思-视频管理系统 getOrderStatus SQL注入漏洞复现

0x01 产品简介 魅思-视频管理系统是一款集成了视频管理、用户管理、手机端应用封装等功能的综合性视频管理系统。该系统不仅以其强大的视频管理功能、灵活的用户管理机制、便捷的手机端应用封装功能以及高安全性和现代化的界面设计,成为了市场上备受关注的视频管理系统之一。…

分布式数据库——HBase基本操作

启动HBase: 1.启动hadoop,进入hadoop的sbin中 cd /opt/hadoop/sbin/ 2.初始化namenode hdfs namenode -format 3.启动hdfs ./start-all.sh 4.启动hbase cd /opt/hbase/bin ./start-hbase.sh 5.使用jps查看进程 jps 以下图片则是hbase启动成功~ 运行HBase ./hbase sh…

软考中项第3版新教程变化,2张表格看到底

近期正在着手做《信息系统项目管理师一站通关》书友会的见面礼包时&#xff0c;无意中在电脑中翻到不知道什么时候保存的2张表格&#xff0c;出处已经记不得了&#xff0c;这2张表格对软考中项第3版新教程的变化点总结的言简意赅&#xff0c;有价值分享出来给你。 第1张表格如下…

使用C计算数码管段码

前言 平时使用数码管时为了避免使用跳线往往不会按照顺序焊接数码管的段选引脚&#xff0c;为了焊接的方便段选引脚可能会焊接的乱七八糟的&#xff0c;此时标准的段码表就用不了了&#xff0c;需要重新去计算。因为在焊接时为了考虑布线可能每次焊的顺序都会有不同&#xff0c…

使用vite+react+ts+Ant Design开发后台管理项目(三)

前言 本文将引导开发者从零基础开始&#xff0c;运用vite、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈&#xff0c;构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导&#xff0c;文章旨在为开发者揭示如何利用这些技术…

使用AI进行需求分析的案例研究

生成式 AI 的潜在应用场景似乎无穷无尽。虽然这令人兴奋&#xff0c;但也可能让人不知所措。因此&#xff0c;团队在使用这项技术时需要有明确的目标&#xff1a;关键是要明确生成式 AI 在团队工作中能产生哪些实质性影响。 在软件工程中&#xff0c;一个引人注目的应用场景是…

QMT如何获取股票基本信息?如上市时间、退市时间、代码、名称、是否是ST等。QMT量化软件支持!

获取股票概况 包含股票的上市时间、退市时间、代码、名称、是否是ST等。 #获取合约基础信息数据 该信息每交易日9点更新 #内置Python 提示 旧版本客户端中&#xff0c;函数名为ContextInfo.get_instrumentdetail 调用方法 内置python ContextInfo.get_instrument_detai…

全连接神经网络

这里写目录标题 全连接神经网络vs前馈神经网络基于全连接神经网络的手写数字识别使用Pytorch实现纯Python实现 全连接神经网络的局限 端到端学习 深度学习有时也称为端到端机器学习&#xff08;end-to-end machine learning&#xff09;。这里所说的端到端是指从一端到另一端的…

西门子因为TC在与PTC及达索的混战中占据优势,西门子与SAP的合作价值几何?(2)

今天这篇文章是通过腾讯会议先录了一个视频然后转录的&#xff0c;看看效果怎么样。 主要是我昨天写了一篇公众号的文章&#xff0c;这篇文章是转自国外的一个记者。写的是他对这个工业软件三巨头西门子、达索和PTC之间的竞争做的一个访谈性质的文章&#xff0c;谈了他的一些看…

1.1.5 计算机网络的性能指标(上)

信道&#xff1a; 表示向某一方向传送信息的通道&#xff08;信道&#xff01;通信线路&#xff09;一条通信线路在逻辑上往往对应一条发送信道和一条接收信道。 速率&#xff1a; 指连接到网络上的节点在信道上传输数据的速率。也称数据率或比特率、数据传输速率。 速率单…

python常见的魔术方法

什么是魔术方法 Python类的内置方法&#xff0c;各自有各自的特殊功能&#xff0c;被称之为魔术方法 常见的魔术方法有以下&#xff1a; __init__:构造方法 __str__:字符串方法 __lt__:小于、大于符号比较 __le__:小于等于、大于等于符合比较 __eq__:等于符合比较__init__ c…

【论文速看】DL最新进展20240925-医学图像分割、目标跟踪、图像超分

目录 【医学图像分割】【目标跟踪】【图像超分】 【医学图像分割】 [2024] UU-Mamba: Uncertainty-aware U-Mamba for Cardiovascular Segmentation 论文链接&#xff1a;https://arxiv.org/pdf/2409.14305 代码链接&#xff1a;https://github.com/tiffany9056/UU-Mamba 在深…

【NLP】循环神经网络--RNN学习.day3

一.初步认识RNN 循环神经网络&#xff08;Recurrent Neural Network, RNN&#xff09;是一种用于处理序列数据的深度学习模型。与传统的静态神经网络相比&#xff0c;RNN 可以有效处理输入数据的时间序列特性。这使得 RNN 在处理自然语言处理&#xff08;NLP&#xff09;、时间…

【Python报错已解决】TypeError: forward() got an unexpected keyword argument ‘labels‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

使用API有效率地管理Dynadot域名,注册域名服务器(NS)信息

前言 Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮箱&…

【9.模块化开发和代码重用之——头文件、动静态库】

目录 前言软件工程的基本原则程序的模块化开发和代码重用技术开发自己的头文件定义实现自己的头文件编写实现文件&#xff08;源文件&#xff09;编译代码链接目标文件到可执行文件 实现类似标准库效果的几种方法实际使用的开发方法头文件库 尝试自动链接静态库&#xff08;好像…