c语言编程笔录

首页 >   > 笔记大全

笔记大全

python接口如何参数化 python怎么做参数化

更新时间:2023-07-12

什么是参数化

参数化是指将代码中的常量替换成变量,通过传递变量的不同值来改变程序的行为。在接口测试中使用参数化可以快速地对接口进行多次测试,减少测试人员的工作量,提高测试效率。

Python接口参数化的实现方式

Python中有很多实现参数化的方式,包括使用列表、元组、字典等数据结构存储参数,并结合for循环进行遍历使用。以下是使用列表和for循环实现参数化的示例代码:

data_list = [
    ["username1", "password1"],
    ["username2", "password2"],
    ["username3", "password3"]
]

for data in data_list:
    username = data[0]
    password = data[1]

    # 在这里添加对接口的测试代码

使用unittest框架参数化测试用例

使用unittest框架可以更好地组织测试用例,测试用例之间具有独立性,方便查看测试结果。unittest提供了参数化测试用例的装饰器@parameterized,以下是使用@parameterized装饰器实现参数化测试用例的示例代码:

import unittest
from parameterized import parameterized
from api import login

class TestLogin(unittest.TestCase):

    @parameterized.expand([
        ("test_case1", "username1", "password1", True),
        ("test_case2", "username2", "password2", False),
        ("test_case3", "username3", "password3", False)
    ])
    def test_login(self, name, username, password, expected):
        result = login(username, password)
        self.assertEqual(result, expected)

if __name__ == '__main__':
    unittest.main()

使用pytest框架参数化测试用例

pytest框架是一个轻量级的测试框架,灵活性很高,并且支持参数化测试用例。以下是使用pytest框架实现参数化测试用例的示例代码:

import pytest
from api import login

@pytest.mark.parametrize("username, password, expected", [
    ("username1", "password1", True),
    ("username2", "password2", False),
    ("username3", "password3", False)
])
def test_login(username, password, expected):
    result = login(username, password)
    assert result == expected