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