Python——常用库(接口自动化)

张开发
2026/4/19 17:58:02 15 分钟阅读

分享文章

Python——常用库(接口自动化)
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. 为什么用 yaml5. 接口自动化流程一、接口自动化 4 大核心库1. requests —— 发送 HTTP 请求核心概念Python 最流行的HTTP/HTTPS 请求库用来模拟客户端向服务器发请求GET/POST/PUT/DELETE。原理封装了 Python 底层的urllib提供简洁易用的 API支持请求头、参数、JSON、文件上传Cookie/Session 保持超时、异常处理使用示例importrequests# 1. GET 请求查询resrequests.get(http://127.0.0.1:8080/api/device)# 2. POST 请求提交/新增data{deviceId:1001,cmd:open}resrequests.post(urlhttp://127.0.0.1:8080/api/control,jsondata,timeout5)# 获取结果print(res.status_code)# 状态码print(res.json())# 返回JSON数据使用场景接口功能测试接口自动化测试设备控制、平台接口调用嵌入式/物联网设备接口调试2. pytest —— 测试用例运行框架必会概念Python最主流的单元测试/自动化测试框架用来管理、运行、断言测试用例。原理自动识别测试文件/测试函数提供强大断言 assert支持 fixture、前置后置、参数化可生成测试报告使用示例importrequestsimportpytest# 测试用例deftest_get_device_info():resrequests.get(http://127.0.0.1:8080/api/device)# 断言assertres.status_code200assertres.json()[code]200assertdeviceIdinres.json()[data]使用场景编写接口自动化用例批量执行用例接口自动化项目主体框架结合 CI/CD 持续集成3. json —— 处理 JSON 数据自带库概念Python 自带的JSON 处理库用于字典 ↔ JSON 字符串互相转换。原理json.dumps()字典 → JSON 字符串json.loads()JSON 字符串 → 字典使用示例importjson# 字典转JSON字符串data{name:test,age:18}json_strjson.dumps(data)# JSON字符串转字典res_text{code:200,msg:success}res_dictjson.loads(res_text)print(res_dict[code])# 200使用场景接口请求参数格式化接口返回数据解析提取接口字段做断言4. pyyaml —— 配置文件读取概念用来读取YAML 配置文件存放环境地址、账号、密码、全局配置。原理YAML 是专门用来做配置文件的格式比 Excel/ini 更清晰。使用示例config.yamlbase_url:http://127.0.0.1:8080user:adminpwd:123456读取importyamlwithopen(config.yaml,encodingutf-8)asf:cfgyaml.safe_load(f,Loaderyaml.FullLoader)print(cfg[base_url])使用场景环境切换测试/预发/生产存放账号密码全局配置统一管理pymysql —— 连接数据库概念Python 连接 MySQL 数据库 的第三方库用于查询新增修改删除自动化中断言数据正确性。原理1.建立连接IP、端口、用户名、密码、库名2.创建游标3.执行 SQL4.获取结果5.关闭连接使用示例安装pip install pymysqlimportpymysql# 1. 创建连接connpymysql.connect(host127.0.0.1,port3306,userroot,password123456,databasetest,# 库名charsetutf8)# 2. 创建游标cursorconn.cursor()# # 3. 执行查询最常用# sqlSELECT device_id, status FROM device WHERE device_id %scursor.execute(sql,(1001,))# 防注入resultcursor.fetchone()# 获取一条# result cursor.fetchall() # 获取所有print(设备ID:,result[0])print(状态:,result[1])# # 4. 执行新增# sqlINSERT INTO device(device_id, status) VALUES (%s, %s)cursor.execute(sql,(1002,1))conn.commit()# 必须提交# # 5. 执行修改# sqlUPDATE device SET status0 WHERE device_id%scursor.execute(sql,(1001,))conn.commit()# # 6. 执行删除# sqlDELETE FROM device WHERE device_id%scursor.execute(sql,(1002,))# 提交事务conn.commit()# 7. 关闭cursor.close()conn.close()使用场景场景1验证新增是否成功# 1. 调接口requests.post(url,json{device_id:1001})# 2. 查数据库sqlselect * from device where device_id1001cursor.execute(sql)assertcursor.fetchone()isnotNone场景2验证状态是否更新requests.post(url,json{device_id:1001,cmd:OPEN})sqlselect status from device where device_id1001cursor.execute(sql)statuscursor.fetchone()[0]assertstatus1# 1开阀成功场景3验证是否删除成功requests.delete(url)sqlselect * from device where id1001cursor.execute(sql)assertcursor.fetchone()isNone场景4清理脏数据sqldelete from device where device_id like test_%cursor.execute(sql)conn.commit()二、接口自动化 常用工具库5. logging —— 日志输出调试神器概念Python 自带日志库用来记录请求、返回、报错信息。使用示例importlogging logging.basicConfig(levellogging.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 wbload_workbook(case.xlsx)wswb.active urlws.cell(row2,column1).value场景大量接口用例管理数据参数化测试三、接口自动化 高级进阶库9. requests-mock —— 接口 Mock概念Mock 模拟接口返回不依赖真实后端也能跑自动化。场景后端未开发完成时提前写自动化异常场景模拟超时、500、40110. faker —— 自动生成测试数据概念自动生成姓名、电话、邮箱、设备编号等测试数据。示例fromfakerimportFaker fFaker()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. 接口自动化流程封装 requests编写用例断言生成报告

更多文章