什么是数据驱动?
以测试数据驱动脚本执行,维护焦点从脚本转向测试数据的一种自动化测试设计模式
数据驱动的好处?
测试脚本和测试数据分离,便于维护,同时代码简洁明了
如何实现数据驱动:
我们通常使用循环遍历的方式去读取我们的测试数据,这里使用pytest框架中自带的parametrize装饰器进行循环遍历读取,具体实现效果如下:
# 导入需要用到的python包 import pytest # 我们使用的框架 import requests #接口测试用到的库 # 创建测试类 class TestLoginAPI: # 准备测试数据 test_data = [("18812345678", "123456"), ("18812245678", "123456"), ("1881234", "123456")] # test_data = [("18812345678", "123456"), ("18812245678", "123456")] # 创建测试方法 @pytest.mark.parametrize("mobile,password", test_data) def test_login(self, mobile, password,): url = "www.xxx/login" # 请求路径 login_data ={ "mobie": mobile, "password": password, } response = requests.post(url=url, json=login_data) print(response.json())
需要注意事项:
pytest参数化的基本使用:这里学习使用的是pytest内置的参数驱动 @pytest.mark.parametrize(装饰器) @pytest.mark.parametrize装饰器的作用: 遍历所有的测试数据运并运行的测试方法 基本使用: test_data =[(数据1),(数据2),(数据3)] #这里的数据123是元组形式的,也可以是其他 @pytest.mark.parametrize(请求参数名,测试数据) def test_method(self,参数名) pass @pytest.mark.parametrize("mobile,password",test_data) def test_login(self,mobile,password) pass 需要特别注意的是: 1、测试数据可以是多种形式的,这里我们采用的是列表嵌套元组(后面我们将会举例列表嵌套列表或者字典) 2、保存数据的参数要和你的test_data中的个数和字段保持一致