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 等等 , 达成更丰富多彩的测试场景以及功能。借助持续不断地实践并总结经验 , 能够提高接口自动化测试 的效率与准确性。

相关推荐
杨女士YRJ1 小时前
python+pytest+01
python·pytest
鸽芷咕2 小时前
Mu Editor 鸿蒙 PC 适配全记录:用 Qt 与嵌入式 CPython 重建教学型 Python IDE
python·qt·harmonyos
微软技术分享2 小时前
基于 HuggingFace Tokenizers 训练自定义分词器
python·ubuntu·大模型·huggingface
gf13211112 小时前
python_调用远程服务器上的openclaw
服务器·python·php
lbb 小魔仙2 小时前
Jupyter Notebook / Lab 深度配置指南:插件 + 内核 + 远程访问 + 容器化部署
ide·python·jupyter
2601_962300472 小时前
python是跨平台的吗
python·开源·跨平台·面向对象·
2401_844582952 小时前
软件架构设计与持续重构:模块化开发实战建
python
东莞市云毅网络有限公司2 小时前
用 SQLite FTS5 给企业知识库做问答检索原型:中文二元切分与 BM25 排序
python·sqlite·自动化运维·geo·数据监测
承渊政道3 小时前
PR-Agent鸿蒙PC适配全记录:从Python服务端代理到ArkTS原生评审客户端
python·华为·代理模式·agent·harmonyos·pc端