首页 > 其他 > 详细

yaml结合数据驱动编写测试用例

时间:2020-01-11 16:28:30      阅读:308      评论:0      收藏:0      [点我收藏+]

文章中示例源码获取地址:https://github.com/wmm0165/auditcenter_190912

1.yaml格式介绍

基本格式

k: v(:后必须有空格)

 

减号-表示列表

- desc: 机构列表
  api: /api/v1/zoneForReport
  method: get
  data:
    - test1
    - test2
  params:
    keyword: null
  headers:
    Content-Type: application/json
  assert_code: 200

等价于:
[{desc: 机构列表, api: /api/v1/zoneForReport, method: get, data: [test1, test2], params: {keyword: None}, headers: {Content-Type: application/json}, assert_code: 200}]
-分隔多个测试用例

- desc: 机构列表
  api: /api/v1/zoneForReport
  method: get
  data:
    - test1
    - test2
  params:
    keyword: null
  headers:
    Content-Type: application/json
  assert_code: 200
- desc: 门诊科室列表
  api: /api/v1/deptForReport
  method: get
  data: null
  params:
    type: 1
    keyword: null
  headers:
    Content-Type: application/json
  assert_code: 200

等价于:
[{desc: 机构列表, api: /api/v1/zoneForReport, method: get, data: [test1, test2], params: {keyword: None}, headers: {Content-Type: application/json}, assert_code: 200}, {desc: 门诊科室列表, api: /api/v1/deptForReport, method: get, data: None, params: {type: 1, keyword: None}, headers: {Content-Type: application/json}, assert_code: 200}]

2.读取yaml文件

import yaml
import os
from config.config import YAML_PATH


class HandleYaml:
    def __init__(self):
        pass

    def read_yaml(self, filename):
        with open(os.path.join(YAML_PATH, filename), r, encoding=utf8) as f:
            file_content = yaml.load(f, Loader=yaml.FullLoader)
        datas = [tuple(i.values())[1::] for i in file_content]
        print(file_content)
        return datas

3.使用pytest进行数据驱动

import pytest
from common.request import HttpRequest
from common.handle_yaml import HandleYaml

requ = HttpRequest()
hy = HandleYaml()
datas = hy.read_yaml(auditcenter.yaml)
print(datas)
auditcenter_url = http://10.1.1.89:9999/auditcenter


@pytest.mark.parametrize("api,method,data,params,headers,assert_code", datas)
def test_single_api(api, method, data, params, headers, assert_code):
    res = requ.req(auditcenter_url + api, method, data, params, headers)
    assert res.json()[code] == str(assert_code)

yaml结合数据驱动编写测试用例

原文:https://www.cnblogs.com/wang-mengmeng/p/12180032.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!