编辑
2025-08-14
测试
00

接口自动化的初识

什么是 requests 库?

requests 是 Python 中一个流行的第三方库,专门用于发送 HTTP 请求(如 GET、POST、PUT、DELETE 等),并处理服务器返回的响应。它封装了 Python 内置的 urllib 库,提供了更简洁、易用的 API,让开发者可以轻松实现与 Web 服务器的通信。
通俗点来说,requests 是一个 “模拟浏览器” 的工具 —— 你可以用它向指定的 URL 发送请求(带参数、表单、 headers 等),然后获取服务器返回的状态码、响应体(如 JSON、HTML)等数据。

requests 与自动化测试的关系

在自动化测试中,requests 主要用于 接口自动化测试,是接口测试的核心工具之一,两者的关系体现在以下几个方面:

接口测试的核心工具

现代软件系统(尤其是前后端分离架构)中,接口(API)是模块间、服务间通信的核心。自动化测试需要验证这些接口是否按照预期工作(如返回正确的状态码、数据格式、业务逻辑等)。 requests 可以模拟客户端向接口发送请求(如调用登录接口时发送账号密码,调用查询接口时传递参数),并获取响应结果,从而实现对接口的自动化验证。

编辑
2025-08-09
MySQL
00

MYSQL的六大常见数据类型

在 MySQL 中有六大常见的数据类型(Data Types),即存储数据的不同格式和类别。MySQL 的常用数据类型可归纳为以下六种主要形态(分类),每种形态包含具体的子类型,适用于不同的场景:

1. 整数类型(Integer Types)

用于存储整数(无小数部分的数字),根据取值范围和存储空间分为不同子类型,适合存储计数、ID 等场景。
常用子类型:TINYINT(1 字节,范围 - 128-127 或 0~255)、SMALLINT(2 字节)、MEDIUMINT(3 字节)、INT(4 字节,最常用)、BIGINT(8 字节,适用于大数值如自增 ID)。

2. 浮点 / 定点类型(Floating-Point & Fixed-Point Types)

用于存储带小数的数字,区分 “近似值” 和 “精确值”。
浮点型(近似值):FLOAT(单精度,4 字节)、DOUBLE(双精度,8 字节),适合存储科学计算等对精度要求不极致的场景(可能有精度误差)。
定点型(精确值):DECIMAL(M,D)(M 为总位数,D 为小数位数),适合存储金额、汇率等需精确计算的场景(无精度损失)。

3. 字符串类型(String Types)

用于存储文本、字符序列等,根据长度和存储方式分为不同类型。
定长字符串:CHAR(N)(固定长度 N,不足补空格,适合短文本如手机号、密码哈希)。
变长字符串:VARCHAR(N)(长度可变,按实际内容存储,适合长度不固定的文本如用户名、描述)。
长文本 / 二进制:TEXT(长文本,如文章内容)、BLOB(二进制数据,如图片、文件)。

BLOB类型

在 MySQL 的字符串类型中,除了存储字符数据的CHAR、VARCHAR、TEXT等,还包含专门用于存储二进制数据的BLOB类型(Binary Large Object)。它们同属字符串类型体系,因为本质上都是存储字节序列,只是BLOB针对二进制数据(无字符集概念),而其他字符串类型针对字符数据(依赖字符集编码)。
字符串类型中的BLOB子类型
BLOB用于存储二进制数据(如图片、音频、视频、文件等字节流),根据存储容量分为以下子类型:

类型存储上限适用场景
TINYBLOB最大 255 字节小图标、缩略图、短二进制数据
BLOB最大 65,535 字节(64KB)小型图片(如头像)、短文件
MEDIUMBLOB最大 16,777,215 字节(16MB)中等大小图片、文档(如 PDF)
LONGBLOB最大 4,294,967,295 字节(4GB)大型文件、高清图片、视频片段等
编辑
2025-08-01
MySQL
00

1. 数据模型与存储结构

关联型数据库

基于关系模型(二维表结构),数据以 “表(Table)” 为单位存储,表由 “行(记录)” 和 “列(字段)” 组成,且有严格的固定 Schema(字段类型、长度等需预先定义)。
例如:用户表(id, name, age)、订单表(order_id, user_id, amount),通过 “user_id” 关联两张表。
典型产品:MySQL、PostgreSQL、Oracle、SQL Server。

非关联型数据库

数据模型灵活,无固定 Schema,根据场景分为多种类型:
文档型(如 MongoDB):以 “文档” 为单位(类似 JSON/BSON),可嵌套结构(如一个文档包含用户基本信息 + 订单列表);
键值型(如 Redis):以 “键 - 值对” 存储(类似字典),适用于简单查询;
列族型(如 Cassandra):按 “列族” 分组存储,适合海量数据的列级查询;
图数据库(如 Neo4j):以 “节点 - 关系” 模型存储,擅长处理复杂关联(如社交网络关系)。

编辑
2025-07-20
MySQL
00

一、基础数据类型

1. 数值型(Numeric)

整数类型:存储整数值,无小数部分。
TINYINT(1字节,范围-128到127或0到255)
SMALLINT(2字节,范围-32768到32767)
INT/INTEGER(4字节,范围约-21亿~21亿)
BIGINT(8字节,范围极大)
浮点与定点数:存储带小数的数值。
FLOAT(单精度浮点数,约7位有效数字)
DOUBLE(双精度浮点数,约15位有效数字)
DECIMAL(p,s)/NUMERIC(p,s)(精确小数,p为总位数,s为小数位,如DECIMAL(10,2))

2. 字符型(Character)

定长字符串:固定长度,不足补空格。
CHAR(n)(n为长度,如CHAR(50))
变长字符串:实际长度可变,节省空间。
VARCHAR(n)(n为最大长度,如VARCHAR(255))
大文本类型:存储超长文本。
TEXT(MySQL)/CLOB(Oracle,Character Large Object)
TINYTEXT/MEDIUMTEXT/LONGTEXT(MySQL细分)

3. 日期与时间型(Date/Time)

日期:仅日期,无时间。
DATE(格式YYYY-MM-DD)
时间:仅时间,无日期。
TIME(格式HH:MM


日期时间组合: DATETIME(MySQL,格式YYYY-MM-DD HH:MM

TIMESTAMP(时间戳,带时区,范围1970~2038年)
间隔类型:存储时间差(如PostgreSQL的INTERVAL)。

4. 布尔型(Boolean)

存储真/假值,通常用TRUE/FALSE或1/0表示。
BOOLEAN(PostgreSQL、MySQL 5.0+)
BIT(1位存储,如BIT(1))

二、二进制与大对象类型

1. 二进制类型

存储二进制数据(如图片、文件)。
BINARY(n)(定长二进制,类似CHAR)
VARBINARY(n)(变长二进制,类似VARCHAR)
BLOB(Binary Large Object,如TINYBLOB/MEDIUMBLOB/LONGBLOB)

2. 其他大对象类型

CLOB:字符大对象(如文本文件)。
NCLOB:国家字符集大对象(存储Unicode字符)。

三、特殊数据类型

1. 枚举与集合类型

枚举(ENUM):限定列只能取预设值之一。
ENUM('男', '女', '未知')(MySQL)
集合(SET):允许列取多个预设值。
SET('A', 'B', 'C')(MySQL,最多64个成员)

2. 数组类型

存储数组(如PostgreSQL的INTEGER[]或TEXT[])。

3. JSON/XML类型

存储JSON文档或XML数据。
JSON(MySQL 5.7+、PostgreSQL)
XML(PostgreSQL、SQL Server)

4. 空间数据类型

存储地理空间数据(如PostGIS的GEOMETRY、POINT、LINESTRING)。
#四、用户自定义类型
部分数据库支持自定义数据类型,例如:
复合类型:组合多个字段(如PostgreSQL的CREATE TYPE)。
域类型:基于现有类型添加约束(如CREATE DOMAIN)。

五、数据类型选择原则

精度与范围:如财务数据优先用DECIMAL而非FLOAT。
存储效率:定长字段(CHAR)适合长度固定的数据(如身份证号),变长字段(VARCHAR)适合可变长度数据。
查询性能:日期类型比字符串更易排序和过滤。
兼容性:跨数据库时注意类型名称差异(如MySQL的INT vs PostgreSQL的INTEGER)。
示例:不同数据库的整数类型对比

数据库1字节整数类型4字节整数类型8字节整数类型
MySQLTINYINTINTBIGINT
PostgreSQLSMALLINTINTEGERBIGINT
OracleNUMBER(3)NUMBER(10)NUMBER(19)
编辑
2025-07-17
MySQL
00

数据库三大范式

数据库三大范式是关系型数据库设计的基本规则,旨在减少数据冗余、确保数据完整性