目录

第一种:通过yaml文件获取数据(一维列表)

第二种:通过yaml文件获取数据(二维列表)

第三种:通过yaml文件获取数据(@pytest.fixture)

资料获取方法

第一种:通过yaml文件获取数据(一维列表)

data.yaml文件内容如下:

- '软件测试' - '单元测试' - '自动化测试' - '性能测试' - '测试开发' - '测试架构师'

测试用例内容如下:

@pytest.mark.parametrize('data',  yaml.load(open('data.yml', 'r')))

def test_ddt(data):

  url='https://www.baidu.com/search/query?key='

  header = {'Accept': "application/json",

      'Content-Type': "application/json; charset=utf-8",

      'Accept-Encoding': "gzip, deflate, br"}

  res=requests.get(url+data, header)

  assert res.status_code==200

第二种:通过yaml文件获取数据(二维列表)

data.yaml文件内容如下:

#用例1

-

api_name: page_title

url: http://www.baidu.com/

header = {'Accept': "application/json",

     'Content-Type': "application/json; charset=utf-8",

     'Accept-Encoding': "gzip, deflate, br"}

data: {

"status_code": 200

}

#用例2

-

api_name: searching

url: http://www.baidu.com/

header = {'Accept': "application/json",

     'Content-Type': "application/json; charset=utf-8",

     'Accept-Encoding': "gzip, deflate, br"}

data: {

"status_code": 200

}

#用例3

-

api_name: login

url: http://www.baidu.com/

header = {'Accept': "application/json",

     'Content-Type': "application/json; charset=utf-8",

     'Accept-Encoding': "gzip, deflate, br"}

data: {

"status_code": 200

}

测试用例内容如下:

@pytest.mark.parametrize('data', yaml.load(open('data.yml', 'r')))

def test_ddt(data):

       api_name = data['api_name']

  url=data['url']

  header = data['header']

  res=requests.get(url + api_name, header)

  assert   res.status_code ==data['data']['status_code']

第三种:通过yaml文件获取数据(@pytest.fixture)

@pytest.fixture()

def login(request):

  name = request.param

  print(f"== 账号是:{name} ==")

  return name

data = ["pyy1", "polo"]

@pytest.mark.parametrize("login", data, indirect=True)

def test_name(login):

  print(f" 测试用例的登录账号是:{login} ")

@pytest.fixture()

def logins(request):

  param = request.param

  print(f"账号是:{param['username']},密码是:{param['pwd']}")

  return param

data = [ {"username": "name1", "pwd": "pwd1"},  {"username": "name2", "pwd": "pwd2"} ]

@pytest.mark.parametrize("logins", data, indirect=True)

def test_name_pwd(logins):

  print(f"账号是:{logins['username']},密码是:{logins['pwd']}")

# 多个fixture

@pytest.fixture(scope="module")

def input_user(request):

  user = request.param

  print("登录账户:%s" % user)

  return user

@pytest.fixture(scope="module")

def input_psw(request):

  psw = request.param

  print("登录密码:%s" % psw)

  return psw

data = [("name1", "pwd1"),  ("name2", "pwd2")]

@pytest.mark.parametrize("input_user,input_psw", data, indirect=True)

def test_more_fixture(input_user, input_psw):

  print("fixture返回的内容:", input_user, input_psw)

name = ["name1", "name2"]

pwd = ["pwd1", "pwd2"]

@pytest.mark.parametrize("input_user", name, indirect=True)

@pytest.mark.parametrize("input_psw", pwd, indirect=True)

def test_more_fixture(input_user, input_psw):

  print("fixture返回的内容:", input_user, input_psw)

资料获取方法

【留言777】

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: