Python——常用库(接口自动化)
2026/4/19 17:57:58 网站建设 项目流程

Python 接口自动化常用库

  • 一、接口自动化 4 大核心库
    • 1. requests —— 发送 HTTP 请求(核心)
      • 概念
      • 原理
      • 使用示例
      • 使用场景
    • 2. pytest —— 测试用例运行框架(必会)
      • 概念
      • 原理
      • 使用示例
      • 使用场景
    • 3. json —— 处理 JSON 数据(自带库)
      • 概念
      • 原理
      • 使用示例
      • 使用场景
    • 4. pyyaml —— 配置文件读取
      • 概念
      • 原理
      • 使用示例
      • 使用场景
    • pymysql —— 连接数据库
      • 概念
      • 原理
      • 使用示例
      • 使用场景
  • 二、接口自动化 常用工具库
    • 5. logging —— 日志输出(调试神器)
      • 概念
      • 使用示例
      • 场景
    • 6. os / sys —— 文件/路径处理
      • 概念
      • 示例
      • 场景
    • 7. allure-pytest —— 生成权威测试报告
      • 概念
      • 使用
      • 场景
    • 8. openpyxl —— Excel 数据驱动
      • 概念
      • 示例
      • 场景
  • 三、接口自动化 高级进阶库
    • 9. requests-mock —— 接口 Mock
      • 概念
      • 场景
    • 10. faker —— 自动生成测试数据
      • 概念
      • 示例
      • 场景
  • 四、接口自动化库体系
  • 五、企业真实接口自动化项目结构
  • 六、面试必问
    • 1. 接口自动化常用哪些库?
    • 2. requests 作用?
    • 3. pytest 作用?
    • 4. 为什么用 yaml?
    • 5. 接口自动化流程?

一、接口自动化 4 大核心库

1. requests —— 发送 HTTP 请求(核心)

概念

Python 最流行的HTTP/HTTPS 请求库,用来模拟客户端向服务器发请求(GET/POST/PUT/DELETE)。

原理

封装了 Python 底层的urllib,提供简洁易用的 API,支持:

  • 请求头、参数、JSON、文件上传
  • Cookie/Session 保持
  • 超时、异常处理

使用示例

importrequests# 1. GET 请求(查询)res=requests.get("http://127.0.0.1:8080/api/device")# 2. POST 请求(提交/新增)data={"deviceId":1001,"cmd":"open"}res=requests.post(url="http://127.0.0.1:8080/api/control",json=data,timeout=5)# 获取结果print(res.status_code)# 状态码print(res.json())# 返回JSON数据

使用场景

  • 接口功能测试
  • 接口自动化测试
  • 设备控制、平台接口调用
  • 嵌入式/物联网设备接口调试

2. pytest —— 测试用例运行框架(必会)

概念

Python最主流的单元测试/自动化测试框架,用来管理、运行、断言测试用例。

原理

  • 自动识别测试文件/测试函数
  • 提供强大断言 assert
  • 支持 fixture、前置后置、参数化
  • 可生成测试报告

使用示例

importrequestsimportpytest# 测试用例deftest_get_device_info():res=requests.get("http://127.0.0.1:8080/api/device")# 断言assertres.status_code==200assertres.json()["code"]==200assert"deviceId"inres.json()["data"]

使用场景

  • 编写接口自动化用例
  • 批量执行用例
  • 接口自动化项目主体框架
  • 结合 CI/CD 持续集成

3. json —— 处理 JSON 数据(自带库)

概念

Python 自带的JSON 处理库,用于字典 ↔ JSON 字符串互相转换。

原理

  • json.dumps():字典 → JSON 字符串
  • json.loads():JSON 字符串 → 字典

使用示例

importjson# 字典转JSON字符串data={"name":"test","age":18}json_str=json.dumps(data)# JSON字符串转字典res_text='{"code":200,"msg":"success"}'res_dict=json.loads(res_text)print(res_dict["code"])# 200

使用场景

  • 接口请求参数格式化
  • 接口返回数据解析
  • 提取接口字段做断言

4. pyyaml —— 配置文件读取

概念

用来读取YAML 配置文件,存放环境地址、账号、密码、全局配置。

原理

YAML 是专门用来做配置文件的格式,比 Excel/ini 更清晰。

使用示例

config.yaml

base_url:http://127.0.0.1:8080user:adminpwd:123456

读取:

importyamlwithopen("config.yaml",encoding="utf-8")asf:cfg=yaml.safe_load(f,Loader=yaml.FullLoader)print(cfg["base_url"])

使用场景

  • 环境切换(测试/预发/生产)
  • 存放账号密码
  • 全局配置统一管理

pymysql —— 连接数据库

概念

Python 连接 MySQL 数据库 的第三方库,用于:

  • 查询
  • 新增
  • 修改
  • 删除
    自动化中断言数据正确性。

原理

1.建立连接(IP、端口、用户名、密码、库名)
2.创建游标
3.执行 SQL
4.获取结果
5.关闭连接

使用示例

安装

pip install pymysql
importpymysql# 1. 创建连接conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",password="123456",database="test",# 库名charset="utf8")# 2. 创建游标cursor=conn.cursor()# ======================# 3. 执行查询(最常用)# ======================sql="SELECT device_id, status FROM device WHERE device_id = %s"cursor.execute(sql,("1001",))# 防注入result=cursor.fetchone()# 获取一条# result = cursor.fetchall() # 获取所有print("设备ID:",result[0])print("状态:",result[1])# ======================# 4. 执行新增# ======================sql="INSERT INTO device(device_id, status) VALUES (%s, %s)"cursor.execute(sql,("1002",1))conn.commit()# 必须提交# ======================# 5. 执行修改# ======================sql="UPDATE device SET status=0 WHERE device_id=%s"cursor.execute(sql,("1001",))conn.commit()# ======================# 6. 执行删除# ======================sql="DELETE FROM device WHERE device_id=%s"cursor.execute(sql,("1002",))# 提交事务conn.commit()# 7. 关闭cursor.close()conn.close()

使用场景

场景1:验证新增是否成功

# 1. 调接口requests.post(url,json={"device_id":"1001"})# 2. 查数据库sql="select * from device where device_id='1001'"cursor.execute(sql)assertcursor.fetchone()isnotNone

场景2:验证状态是否更新

requests.post(url,json={"device_id":"1001","cmd":"OPEN"})sql="select status from device where device_id='1001'"cursor.execute(sql)status=cursor.fetchone()[0]assertstatus==1# 1=开阀成功

场景3:验证是否删除成功

requests.delete(url)sql="select * from device where id=1001"cursor.execute(sql)assertcursor.fetchone()isNone

场景4:清理脏数据

sql="delete from device where device_id like 'test_%'"cursor.execute(sql)conn.commit()

二、接口自动化 常用工具库

5. logging —— 日志输出(调试神器)

概念

Python 自带日志库,用来记录请求、返回、报错信息

使用示例

importlogging logging.basicConfig(level=logging.INFO)logging.info("开始请求接口")logging.error("接口请求失败")

场景

  • 调试接口
  • 定位自动化脚本问题
  • 生成运行日志

6. os / sys —— 文件/路径处理

概念

操作系统交互库,处理文件路径、文件夹、文件判断

示例

importosprint(os.getcwd())# 当前路径print(os.path.exists("log"))# 判断文件是否存在

场景

  • 读取配置文件
  • 生成报告路径
  • 自动化项目路径管理

7. allure-pytest —— 生成权威测试报告

概念

最流行的自动化测试报告工具,生成美观、可追溯的 HTML 报告。

使用

pytest--alluredir=./report allure serve ./report

场景

  • 接口自动化测试报告
  • 工作汇报、测试结果展示

8. openpyxl —— Excel 数据驱动

概念

读取 Excel 文件,做数据驱动测试

示例

fromopenpyxlimportload_workbook wb=load_workbook("case.xlsx")ws=wb.active url=ws.cell(row=2,column=1).value

场景

  • 大量接口用例管理
  • 数据参数化测试

三、接口自动化 高级进阶库

9. requests-mock —— 接口 Mock

概念

Mock 模拟接口返回,不依赖真实后端也能跑自动化。

场景

  • 后端未开发完成时,提前写自动化
  • 异常场景模拟(超时、500、401)

10. faker —— 自动生成测试数据

概念

自动生成姓名、电话、邮箱、设备编号等测试数据。

示例

fromfakerimportFaker f=Faker()print(f.name())print(f.phone_number())

场景

  • 接口批量造数据
  • 注册、新增设备、提交表单

四、接口自动化库体系

请求发送:requests 用例运行:pytest 数据处理:json、yaml 日志调试:logging 路径文件:os 测试报告:allure 数据驱动:openpyxl 测试数据:faker

五、企业真实接口自动化项目结构

api_auto_project/ ├── configs/ # 配置文件 ├── test_case/ # 测试用例 ├── common/ # 工具类(requests封装、日志) ├── data/ # 测试数据 ├── report/ # 测试报告 └── run.py # 运行入口

六、面试必问

1. 接口自动化常用哪些库?

requests、pytest、json、yaml、logging、allure、openpyxl。

2. requests 作用?

发送 HTTP 请求,支持 GET/POST/PUT/DELETE,带参数、请求头、文件、超时、异常处理。

3. pytest 作用?

管理、运行、断言测试用例,支持前置后置、参数化、生成报告。

4. 为什么用 yaml?

结构清晰,适合做配置文件,切换环境方便。

5. 接口自动化流程?

  1. 封装 requests
  2. 编写用例
  3. 断言
  4. 生成报告

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询