什么是数据驱动?
以测试数据驱动脚本执行,维护焦点从脚本转向测试数据的一种自动化测试设计模式
数据驱动的好处?
测试脚本和测试数据分离,便于维护,同时代码简洁明了
如何实现数据驱动:
我们通常使用循环遍历的方式去读取我们的测试数据,这里使用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中的个数和字段保持一致
1131

被折叠的 条评论
为什么被折叠?



