栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python3+Pytest 接口自动化测试全方案设计与开发-No.2接口自动化框架编写-7-数据驱动之yaml数据驱动

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python3+Pytest 接口自动化测试全方案设计与开发-No.2接口自动化框架编写-7-数据驱动之yaml数据驱动

yaml数据驱动

创建测试用例testlogin.yml

#登录测试用例
---
#测试用例名称
"case_name": "登录成功测试用例"
#url地址
"url": "/authorizations/"
#data
"data":
  username: "python"
  password: "12345678"
#期望结果
"expect":
  code: 200
  body: '"username": "python", "user_id": 1'

---
#测试用例名称
"case_name": "登录失败测试用例"
#url地址
"url": "/authorizations/"
#data
"data":
  username: "pyth"
  password: "12345678"
#期望结果
"expect":
  code: 400
  body: "non_field_errors"

 Conf.py定义路径

#定义data目录的路径
_data_path = base_DIR+os.sep+"data"
def get_data_path():
    return _data_path

编写测试用例

# -*- coding: utf-8 -*- 
# @Time : 2021/12/11 9:21 
# @Author : jeffky
# @File : test_login.py
import os
from utils.RequestsUtil import Request

import pytest
from config import Conf
from config.Conf import ConfigYaml
from utils.YamlUtil import YamlReader
from utils.AssertUtil import AssertUtil
#1、获取测试用例内容list
# 获取testlogin.yml文件路径


test_file = os.path.join(Conf.get_data_path(),'testlogin.yml')
# print(test_file)
# 使用工具类来读取多个文档内容
data_list = YamlReader(test_file).data_all()
# print(data_list)

conf_y = ConfigYaml()
url_path = conf_y .get_conf_url()

# 2、参数化执行测试用例
@pytest.mark.parametrize("login",data_list)
def test_yaml(login):
    # 初始化数据url、data
    url = url_path+login['url']
    data = login['data']
    #post请求
    request = Request()
    r = request.post(url, json=data)

    #打印结果
    print(r)
    # 断言
    code = r['code']
    AssertUtil().assert_code(code, login["expect"]['code'])
    body = r["body"]
    expected_body = login["expect"]['body']
    AssertUtil().assert_in_body(body, expected_body)
if __name__ == '__main__':
    pytest.main(["-s","test_login.py"])

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656902.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号