Python接口自动化流程(pytest)

作者为蛮不讲李,于2024年1月17日23时45分创作的接口自动化流程, 其浏览量为16。

简介: 本文会阐述怎样运用来开展接口自动化测试, 涵盖环境搭建, 测试框架, 测试用例编写, 断言以及日志记录等方面。借由实际案例以及代码演示, 助力读者迅速掌握接口自动化测试的流程与方法。

于其中, 接口自动化测试一般借助框架来开展。它是一个具备轻量级特性、易于实现扩展的测试框架, 适用于各类规模的测试用例。以下是运用其进行接口自动化测试的基本流程:

环境搭建

第一, 要保证你已然安装了跟pip。接着, 运用pip去安装和相关的依赖项目。开启终端或者命令提示符, 执行下面的命令:

linenums 复制代码
  1. pip install pytest requests

有一个库, 它专门用来发送HTTP请求, 这个库是在进行接口测试的时候, 必定会用到的库, 然后要去创建测试用例。

把一个名为tests的文件夹, 也就是用来放置测试用例的文件夹, 创建在项目根目录下接着呢 在这个tests文件夹里面 创建一个文件 比如说 一个后缀名叫.py的文件 来用以编写测试用例。

把编写测试用例的逻辑, 放置于.py 文件之中, 每个测试用例, 一般是以一种独立的成为函数的形式存于其中, 函数的名字, 是以 test_进行开端的, 比如:

linenums 复制代码
  1. def test_get_user():
  2. # 发送GET请求,获取用户信息
  3. response = requests.get('http://example.com/api/user')
  4. # 断言响应状态码为200
  5. assert response.status_code == 200
  6. # 断言返回的数据中包含用户名
  7. assert 'username' in response.json()

于上述代码里头, 我们借助库去发送GET请求, 以此来获取用户信息。随后, 运用断言去验证响应的状态码是不是200, 并且还要看返回的数据之中有没有包含用户名。接着运行测试用例。

于终端或者命令提示符里头, 闯入项目根目录, 运行下面这些命令用以执行测试用例。

linenums 复制代码
  1. pytest tests/

能自动扫描tests文件夹里的测试用例, 接着执行其中的测试逻辑, 测试结果会在终端或者命令提示符里输出显示, 有断言以及日志记录。

编写测试用例之际, 以合理方式运用断言, 去验证测试所得结果是不是契合预期, 常见的断言方法涵盖了多种, 比如、、等, 例如:

linenums 复制代码
  1. def test_post_user():
  2. # 发送POST请求,创建用户
  3. response = requests.post('http://example.com/api/user', data={'username': 'testuser', 'password': 'testpass'})
  4. # 断言响应状态码为201
  5. assert response.status_code == 201
  6. # 断言返回的数据中包含新创建的用户ID
  7. assert 'id' in response.json()

除了进行断言之外, 还能够运用模块去记录测试期间的日志信息, 以此方便于调试以及排查问题, 举例来说:

linenums 复制代码
  1. def test_put_user():
  2. # 发送PUT请求,更新用户信息
  3. response = requests.put('http://example.com/api/user/1', data={'username': 'newuser'})
  4. # 记录日志信息
  5. logging.info(f'Response status code: {response.status_code}')
  6. logging.info(f'Response body: {response.json()}')

如果记录了日志信息, 那么在测试失败之际, 便能迅速定位问题究竟出在哪里, 进而提升调试工作的效率。

上述内容展示的是, 运用来开展接口自动化测试的基础流程。于实际运用期间 , 能够依照项目需求以及具体情形予以适度的调整跟扩展。与此同时 , 还能够联合其他插件以及工具 , 像 mock 等等 , 达成更丰富多彩的测试场景以及功能。借助持续不断地实践并总结经验 , 能够提高接口自动化测试 的效率与准确性。

相关推荐
supabc1235 小时前
欧盟电子发票(XRechnung/Peppol/ZUGFeRD)踩坑记:用 Python 不装 Java 跑官方校验规则
xml·python·开源·电子发票·1024程序员节
ZhengEnCi5 小时前
AI Agent工具调用防护层怎么写-一份能直接跑的Python四层拦截实现
python·llm·agent
ZhengEnCi6 小时前
AI Agent工具误调用怎么解决-从参数校验到高危二次确认的四层工程防线
python·llm·agent
镜子AI7 小时前
镜子AI工程教程:用Python实现关键词布局检查器与语义改写查重(附完整代码)
人工智能·python·microsoft
小oo呆8 小时前
【学习心得】Python协程
python
信誓旦旦的程序猿8 小时前
【Python量化实战宝典 #22】涨跌停、连板情绪手册:情绪指标构建(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
gCode Teacher 格码致知8 小时前
Pandas教学-21:subplots的使用
python·pandas·1024程序员节
2601_967980118 小时前
Python开发的顶级开源项目全景图:2025-2026年生态概览
python·机器学习·开源项目·数据科学·生态概览
benchmark_cc9 小时前
量化开发中,什么时候应该停止手动下载股票数据?
python·数据分析·pandas·量化交易·1024程序员节·股票数据·quantdash
泡茶喝茶写代码9 小时前
A股量化策略回测实战:从行情数据到绩效评估(第 15 篇):新高新低策略
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口