python接口自动化之yaml实现数据驱动(多接口)

这篇博客介绍了如何使用YAML文件进行Python接口自动化测试的数据驱动。首先展示了YAML数据的创建,包括请求头、URL、方法和预期响应。接着,提供了读取YAML文件的方法。最后,通过调用该方法实现接口参数化,进行了用户模块查询和角色管理模块重置的校验。这种方法适用于同一接口的不同参数测试和不同接口的多参数测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python接口自动化之yaml实现数据驱动(单接口)

(1)创建yaml数据

chaxun:
  - name: 用户模块查询校验
    request:
     header:
       Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJiMzhmNzIyLThkMTgtNGRkYy1hZGQ5LTk0NmY4YmJmYzBhZiJ9.z1Tj8Rt-GJRaDKuX9MmYko22us8ccEHjLbJrm0-gM5bbZxvhqp82ea2JCs_X1JBS4sDZMuqvFPGBSZClmWVyPA
       Content-Type: application/json;charset=UTF-8
       Cookie: Admin-Token=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJiMzhmNzIyLThkMTgtNGRkYy1hZGQ5LTk0NmY4YmJmYzBhZiJ9.z1Tj8Rt-GJRaDKuX9MmYko22us8ccEHjLbJrm0-gM5bbZxvhqp82ea2JCs_X1JBS4sDZMuqvFPGBSZClmWVyPA
       User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Mobile Safari/537.36
     url: http://127.0.0.1/backend/garage/info
     method: post
     data:
       pageNum : 1
       pageSize: 10
       garageStatus: ""
       city: ""
       createTime: ""
       keyword: ""
     extract: 查询成功
chaxun:
  - name: 角色管理模块重置校验
    request:
     header:
       Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJiMzhmNzIyLThkMTgtNGRkYy1hZGQ5LTk0NmY4YmJmYzBhZiJ9.z1Tj8Rt-GJRaDKuX9MmYko22us8ccEHjLbJrm0-gM5bbZxvhqp82ea2JCs_X1JBS4sDZMuqvFPGBSZClmWVyPA
       Content-Type: application/json;charset=UTF-8
       Cookie: Admin-Token=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImJiMzhmNzIyLThkMTgtNGRkYy1hZGQ5LTk0NmY4YmJmYzBhZiJ9.z1Tj8Rt-GJRaDKuX9MmYko22us8ccEHjLbJrm0-gM5bbZxvhqp82ea2JCs_X1JBS4sDZMuqvFPGBSZClmWVyPA
       User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Mobile Safari/537.36
     url: http://127.0.0.1/backend/garage/info
     method: post
     data:
       pageNum : 1
       pageSize: 10
       garageStatus: ""
       city: ""
     extract: 查询成功

(2)创建读取yaml文件的方法

import yaml
import json
def read_yaml(yaml_file_path):
    with open(yaml_file_path, encoding="utf-8") as f:
        value = yaml.load(stream=f, Loader=yaml.FullLoader)
        return value

(3)调用读取yaml的方法进行接口参数化

#coding=utf-8
#导入日志类便于设置日志信息
from Logs.Log import Logger
from Public.PublicRequest import RunMain
from DataExcel.readExcelData  import ExcelUtil
import pytest
import allure
from DataYaml.readYaml import read_yaml
import  json
# #设置日志类型参数,打印日志信息
log=Logger('车商管理模块日志').getlog()
excle=ExcelUtil(sheet='cheshang').get_data()
date=read_yaml(r'C:\Users\admin\Desktop\pytest-requests-new-yaml\pytest-request-master\DataYaml\login.yaml')
@allure.feature('用户模块相关功能校验')
class Test_Cheshang():
   @pytest.mark.smoke
    @allure.story('用户管理查询校验')
    def  test_find__cheshang_success(self):
         log.info(date['chaxun'][0]['name'])
         response=RunMain().run_main(date['chaxun'][0]['request']['method'],date['chaxun'][0]['request']['url'],json.dumps(date['chaxun'][0]['request']['data']),date['chaxun'][0]['request']['header'])
         assert  date['chaxun'][0]['request']['extract'] in response

   @pytest.mark.smoke
    @allure.story('角色管理重置校验')
    def  test_find__cheshang_success(self):
         log.info(date['chongzhi'][0]['name'])
         response=RunMain().run_main(date['chongzhi'][0]['request']['method'],date['chongzhi'][0]['request']['url'],json.dumps(date['chongzhi'][0]['request']['data']),date['chongzhi'][0]['request']['header'])
         assert  date['chongzhi'][0]['request']['extract'] in response

注意:

单接口方法可以用于同一个接口不同参数的使用
多接口方法可以用于不同接口不同参数的使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值