当前位置: 首页 > article >正文

接口自动化框架篇:Pytest中的接口请求封装!

在进行接口自动化测试时,我们需要一个稳定、易用且可扩展的框架来封装接口请求。Pytest是一种非常流行的Python测试框架,它提供了很多方便的功能和插件,可以帮助我们轻松进行接口自动化测试。

接口请求封装是框架的核心部分,它负责发送HTTP请求、处理响应和断言结果。以下是一个从0到1的规划,详细介绍如何在Pytest中实现接口请求封装。

一、安装Pytest和相关插件

首先,我们需要安装Pytest和相关的插件。可以通过以下命令来安装:

pip install pytest
pip install requests

二、创建一个基础的请求类

接口请求封装可以通过一个基础的请求类来实现。这个类可以包含发送请求、处理响应和断言结果的方法。以下是一个基础请求类的示例:

import requests

class BaseRequest:
    def __init__(self):
        self.session = requests.Session()

    def send_request(self, method, url, params=None, data=None, headers=None):
        # 发送请求
        response = self.session.request(method, url, params=params, data=data, headers=headers)
        return response

    def assert_response(self, response, status_code=200, data=None):
        # 断言响应结果
        assert response.status_code == status_code
        if data is not None:
            assert response.json() == data

在这个基础请求类中,我们使用了requests库来发送请求,并使用assert语句来断言响应结果。这个类还使用了Session对象来保持请求的会话,以便在多个请求之间共享cookie和其他会话信息。

三、创建一个接口类

接口类是基于基础请求类的封装,它可以定义具体的接口和参数。以下是一个接口类的示例:

class TestAPI:
    def __init__(self):
        self.base_request = BaseRequest()

    def login(self, username, password):
        # 登录接口
        url = 'http://api.example.com/login'
        data = {
            'username': username,
            'password': password
        }
        response = self.base_request.send_request('POST', url, data=data)
        self.base_request.assert_response(response, data={'success': True})

    def get_user_info(self, user_id):
        # 获取用户信息接口
        url = 'http://api.example.com/user_info'
        params = {
            'user_id': user_id
        }
        response = self.base_request.send_request('GET', url, params=params)
        self.base_request.assert_response(response)
        return response.json()

在这个接口类中,我们使用了基础请求类来发送请求和断言响应结果。接口类封装了具体的接口和参数,并返回响应结果供后续使用。

四、编写测试用例

有了接口类,我们就可以编写测试用例来进行接口自动化测试了。以下是一个测试用例的示例:

class TestAPI:
    def test_login(self):
        # 登录接口测试用例
        api = TestAPI()
        api.login('admin', '123456')

    def test_get_user_info(self):
        # 获取用户信息接口测试用例
        api = TestAPI()
        user_info = api.get_user_info(1)
        assert user_info['id'] == 1

在这个测试用例中,我们创建了一个TestAPI对象,并调用了其中的方法来测试接口。我们可以使用assert语句来断言测试结果是否符合预期。

五、运行测试用例

最后,我们可以使用Pytest来运行测试用例。可以通过以下命令来运行测试:

pytest test_api.py

Pytest会自动发现并执行所有以"test_"开头的方法作为测试用例。它还提供了很多有用的功能,例如设置测试环境、生成测试报告等。

通过以上步骤,我们就完成了在Pytest中的接口请求封装。这个框架可以帮助我们轻松进行接口自动化测试,并提供了很多方便的功能和插件。希望这篇文章能够帮助你了解如何规划和实现接口请求封装!

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


http://www.kler.cn/a/552606.html

相关文章:

  • idea日常报错之UTF-8不可映射的字符
  • 游戏引擎学习第108天
  • MySQL数据库(3)—— 表操作
  • 深入解析LVS命令参数及DR模式下的ARP抑制原理
  • MybaitsPlus学习笔记(三)常用注解
  • 【科研绘图系列】R语言绘制时间序列图(time series plot)
  • 【Linux】Socket编程—TCP
  • 数据驱动的自动化本体构建过程包含3个阶 段
  • 编译安装php
  • 深拷贝和浅拷贝的区别
  • 笔试题笔记#7 根据int类型标记判断的BFS和区间覆盖复习
  • 【go语言规范】关于setter和 getter
  • 【Mysql索引在什么情况下会失效?】
  • Diff3Dformer:利用切片序列扩散通过 Transformer 网络增强 3D CT 分类
  • Spring 动态代理 JDK代理和GGLIB代理
  • 前端编程基础开发规范
  • 【练习】【滑动窗口】力扣热题100 438. 找到字符串中所有字母异位词
  • 从插入排序到希尔排序
  • A与B组件自动对齐与组装,无映射直接补偿。
  • SpingBoot-Vue 前后端分离—实现钉钉免登功能(2025)