接口自动化框架篇: 接口框架中的数据类型处理

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


在接口自动化测试中,数据类型处理是确保接口返回数据正确性和一致性的重要环节。接口返回的数据可能包含多种类型,如字符串、数字、布尔值、列表和字典等。正确处理这些数据类型不仅可以提高测试的准确性,还能增强测试代码的健壮性。本文将详细介绍如何在接口自动化框架中封装和处理各种数据类型,包括常见的数据类型转换、验证和断言。

一、数据类型处理的目标

数据类型转换:将接口返回的数据转换为所需的格式。

数据类型验证:验证接口返回的数据类型是否符合预期。

数据类型断言:在测试用例中对数据类型进行断言,确保数据的正确性。

二、封装数据类型处理工具

为了实现数据类型处理,可以封装一个工具类,提供通用的数据类型转换、验证和断言方法。

(一)安装依赖库

首先,需要安装 jsonschema 库,用于验证 JSON 数据的结构和类型。

pip install jsonschema

(二)封装数据类型处理类

创建一个 data_handler.py 文件,封装数据类型处理工具。

import json

import jsonschema

from jsonschema import validate

class DataHandler:

    @staticmethod

    def convert_to_json(data):

        """

        将数据转换为 JSON 格式。

        :param data: 要转换的数据

        :return: JSON 格式的数据

        """

        try:

            return json.loads(data)

        except json.JSONDecodeError as e:

            raise ValueError(f"数据转换为 JSON 格式失败:{e}")

    @staticmethod

    def validate_json(data, schema):

        """

        验证 JSON 数据是否符合指定的 schema。

        :param data: 要验证的 JSON 数据

        :param schema: JSON Schema

        :raises: jsonschema.exceptions.ValidationError

        """

        validate(instance=data, schema=schema)

    @staticmethod

    def assert_data_type(data, expected_type):

        """

        验证数据类型是否符合预期。

        :param data: 要验证的数据

        :param expected_type: 预期的数据类型

        :raises: AssertionError

        """

        assert isinstance(data, expected_type), f"数据类型不匹配。预期:{expected_type},实际:{type(data)}"

    @staticmethod

    def assert_data_value(data, expected_value):

        """

        验证数据值是否符合预期。

        :param data: 要验证的数据

        :param expected_value: 预期的数据值

        :raises: AssertionError

        """

        assert data == expected_value, f"数据值不匹配。预期:{expected_value},实际:{data}"

三、定义 JSON Schema

JSON Schema 是一种用于描述 JSON 数据结构的规范。通过定义 JSON Schema,可以清晰地描述 JSON 数据的结构、字段类型和约束条件。

(一)示例 JSON Schema

假设我们有一个用户信息的 JSON 数据结构,包含以下字段:

id(整数)

name(字符串)

email(字符串)

is_active(布尔值)

对应的 JSON Schema 如下:

{

    "type": "object",

    "properties": {

        "id": {"type": "integer"},

        "name": {"type": "string"},

        "email": {"type": "string"},

        "is_active": {"type": "boolean"}

    },

    "required": ["id", "name", "email", "is_active"]

}‍

四、封装测试用例

在 Pytest 中,可以使用封装的数据类型处理工具来编写测试用例。

(一)创建测试用例文件 test_user_info.py

import pytest

import requests

from data_handler import DataHandler

# 定义 JSON Schema

user_info_schema = {

    "type": "object",

    "properties": {

        "id": {"type": "integer"},

        "name": {"type": "string"},

        "email": {"type": "string"},

        "is_active": {"type": "boolean"}

    },

    "required": ["id", "name", "email", "is_active"]

}

def test_get_user_info():

    url = "https://api.example.com/users/123"

    response = requests.get(url)

    assert response.status_code == 200

    # 将响应数据转换为 JSON 格式

    data = DataHandler.convert_to_json(response.text)

    # 验证 JSON 数据格式

    DataHandler.validate_json(data, user_info_schema)

    # 验证字段类型

    DataHandler.assert_data_type(data["id"], int)

    DataHandler.assert_data_type(data["name"], str)

    DataHandler.assert_data_type(data["email"], str)

    DataHandler.assert_data_type(data["is_active"], bool)

    # 验证字段值

    DataHandler.assert_data_value(data["name"], "John Doe")

    DataHandler.assert_data_value(data["email"], "john.doe@example.com")

五、执行测试用例

完成测试用例的编写后,可以通过 Pytest 执行测试用例。

(一)运行测试用例

在终端中,进入到测试用例文件所在目录,执行以下命令:

pytest test_user_info.py

(二)查看测试结果

如果所有断言都通过,表示数据类型处理和验证成功。如果有任何一个断言失败,说明数据类型或值存在问题,需要进行调试和修复。

六、总结

通过封装数据类型处理工具和定义 JSON Schema,可以实现高效、准确的数据类型处理和验证。在 Pytest 中,结合封装的工具类和 JSON Schema,可以编写出结构清晰、易于维护的测试用例。希望本文能够对读者在接口自动化框架中实现数据类型处理提供帮助。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值