python + Pytest + requests 的接口自动化步骤
创始人
2025-01-07 22:04:14
0次

python+pytest+request+allure+yaml接口自动化测试项目实战

开发环境准备

1. jdk 下载

Java官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装: https://blog.csdn.net/VA_AV/article/details/138508891

2. Pytest

# 安装 pip install pytest  #更新 pytest  pip install --upgrade pytest  # 确认 Pytest 是否已成功安装,并显示 Pytest 的版本信息 pytest --version 

python + Pytest + requests 的接口自动化

1. 设计框架结构

project_root/ ├── conf/                # 配置文件 │   ├── config.yaml      # 全局配置 │   └── env_config.yaml  # 环境配置 ├── data/                # 测试数据 │   ├── test_data.json   # 测试数据文件 │   └── ... ├── lib/                 # 自定义库 │   ├── api_client.py    # API客户端 │   └── utils.py         # 工具函数 ├── tests/               # 测试用例 │   ├── test_case1.py │   ├── test_case2.py │   └── ... ├── reports/             # 测试报告 │   ├── allure_report/   # Allure报告 │   └── pytest_report/   # Pytest报告 ├── requirements.txt     # 依赖包 └── README.md            # 项目说明 

2. 编写配置文件

# conf/config.yaml base_url: http://api.example.com timeout: 10  # conf/env_config.yaml dev:   base_url: http://dev-api.example.com   timeout: 5  prod:   base_url: http://prod-api.example.com   timeout: 10  

置文件用于管理全局配置和环境配置。例如:

3. 封装API客户端

封装一个API客户端,用于发送HTTP请求并处理响应。例如,使用Python和Requests库:

# lib/api_client.py import requests from conf.config import config  class APIClient:     def __init__(self):         self.base_url = config['base_url']         self.timeout = config['timeout']      def get(self, endpoint, params=None, headers=None):         url = f"{self.base_url}{endpoint}"         response = requests.get(url, params=params, headers=headers, timeout=self.timeout)         return response      def post(self, endpoint, json=None, headers=None):         url = f"{self.base_url}{endpoint}"         response = requests.post(url, json=json, headers=headers, timeout=self.timeout)         return response      # 其他HTTP方法类似  

4. 编写测试用例

编写具体的测试用例,使用测试框架来组织和运行这些用例。例如,使用Pytest:

# tests/test_case1.py from lib.api_client import APIClient  def test_get_user():     client = APIClient()     response = client.get('/users/1')     assert response.status_code == 200     assert response.json()['id'] == 1  def test_create_user():     client = APIClient()     data = {'name': 'John Doe', 'email': 'john.doe@example.com'}     response = client.post('/users', json=data)     assert response.status_code == 201     assert response.json()['name'] == 'John Doe'  

5. 集成报告工具

集成报告工具,生成详细的测试报告。例如,使用Allure:

# 安装Allure插件 pip install allure-pytest  # 运行测试并生成报告 # 要使 Allure 侦听器能够在测试执行期间收集结果,只需在命令行添加存储结果的文件夹的路径参数即可 pytest --alluredir=reports/allure_report #要在测试完成后查看实际报告,需要使用 Allure 命令行实用程序从结果生成报告: allure serve reports/allure_report  

allure的安装和使用(windows环境)

https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/

  1. 选择一个版本(windows下载.zip包就可以)
    下载完直接解压就好了(记住路径)
    打开包,打到bin目录,找到allure.bat双击运行

  2. 配置allure系统环境变量
    【计算机–属性–高级系统设置–环境变量–系统变量–path–编辑】
    环境变量添加刚才解压时allure的地址 放bin文件的路径:E:\tools\allure-2.30.0\bin

  3. 检验环境变量配置成功:打开终端命令行,输入:allure

6. 集成持续集成工具

将测试框架集成到持续集成工具中,实现自动化测试。
持续集成工具:Jenkins、GitLab CI等。

7. 文档和维护

编写详细的文档,包括项目说明、使用指南和维护手册。

相关内容

热门资讯

实测交流透视挂!宝玛大厅ai智... 实测交流透视挂!宝玛大厅ai智能透视挂教程,宝玛大厅破解软件经验(本来有挂辅助)1、每一步都需要思考...
总算了解辅助器!朱雀吴江三缺一... 总算了解辅助器!朱雀吴江三缺一ai智能透视辅助挂技巧,朱雀吴江三缺一好像是有挂(有辅助挂细节)朱雀吴...
今日公布透视!九五至尊大厅ai... 今日公布透视!九五至尊大厅ai智能透视插件,九五至尊大厅有没有透视挂窍门(切实有挂技术)1、在九五至...
玩家必看科普开挂!聚闲麻将ai... 玩家必看科普开挂!聚闲麻将ai智能透视辅助挂软件,聚闲麻将总是真的有挂(有辅助挂方式)聚闲麻将能透视...
据报道开挂!旅游娱乐ai智能开... 据报道开挂!旅游娱乐ai智能开挂工具,旅游娱乐辅助工具演示(一直有挂教学)1、全新机制【旅游娱乐ai...
一分钟揭秘开挂!决胜朋来麻将a... 一分钟揭秘开挂!决胜朋来麻将ai智能透视辅助挂教程,决胜朋来麻将真是真的是有挂(有辅助挂总结)1、首...
如何分辨真伪透视!红牛ai智能... 如何分辨真伪透视!红牛ai智能透视攻略,红牛是不是有挂经验(真是有挂技术)1、操作简单,无需红牛手机...
2分钟细说辅助器!江湖大庆麻将... 2分钟细说辅助器!江湖大庆麻将ai智能透视辅助挂攻略,江湖大庆麻将竟然是真的有挂(有辅助挂头条)1、...
总算清楚透视挂!老夫子厅ai智... 总算清楚透视挂!老夫子厅ai智能透视挂技巧,老夫子厅怎么开挂课程(好像发现有挂)老夫子厅破解侠是真的...
解密关于辅助!菜鸟麻将ai智能... 解密关于辅助!菜鸟麻将ai智能透视辅助挂脚本,菜鸟麻将总是存在有挂(有辅助挂存在)1、用户打开应用后...