首页 > 其他分享 >用yaml写接口自动化

用yaml写接口自动化

时间:2023-09-15 11:22:55浏览次数:33  
标签:__ self 接口 yaml params 自动化 test import

原接口测试用例

import pytest
import requests


class TestApi:

    def test_01_huahua(self):
        url = 'https//api.weixin.qq.com/cgi-bin/token'
        params = {
            "grant_type": "client_credential",
            "appid": "wx6b11b3efd1cdc290",
            "secret": "106a9c6157c4db5f6029918738f9529d"
        }
        res = requests.get(url, params=params)
        print(res.text)


if __name__ == '__main__':
    pytest.main(['-vs'])

上面的代码改为yaml格式数据驱动

test_api.yaml

-
  name: 获得token鉴权码的接口
  requests:
    url: https//api.weixin.qq.com/cgi-bin/token
    method: get
    headers:
      Content-Type: application/json
    params:
      grant_type: client_credential
      appid: wx6b11b3efd1cdc290
      secret: 106a9c6157c4db5f6029918738f9529d
  validate:
    - eq: {expires_in: 7200}

yaml_util.py

import yaml


class YamlUtil:
    def __init__(self, yaml_file):
        """
        通过init方法把Yaml文件传入到这个类
        :param yaml_file:
        """
        self.yaml_file = yaml_file

    # 读取Yaml文件
    def read_yaml(self):
        """
        读取Yaml,对yaml反序列化,就是把我们的yaml格式转换成dict格式
        :return:
        """
        with open(self.yaml_file, encoding='utf-8')as f:
            value = yaml.load(f, Loader=yaml.FullLoader)
            return valueif __name__ == '__main__':
    YamlUtil('test_api.yaml').read_yaml()

 

测试用例改为如下

import pytest
import requests
from test_cases.yaml_util import YamlUtil
from config.allpath_parameter import test_case_path


class TestApi:

    @pytest.mark.parametrize('args', YamlUtil(test_case_path+'test_api.yaml').read_yaml())
    def test_01_huahua(self, args):
        print(args)
        url = args['request']['url']
        params = args['request']['params']
        res = requests.get(url, params=params)
        print(res.text)


if __name__ == '__main__':
    pytest.main(['-vs'])

 

标签:__,self,接口,yaml,params,自动化,test,import
From: https://www.cnblogs.com/may18/p/17704555.html

相关文章

  • API商品接口实现盈利
    在当今的数字化时代,电子商务应用程序已经成为人们日常生活的重要组成部分。为了满足用户对于便捷购物体验的需求,许多电商平台提供了API商品接口,允许开发者调用特定的功能,如商品查询、购物车管理、订单处理以及支付等。然而,如何通过这些API商品接口实现盈利,是许多电商平台和开发者共......
  • yaml文件读取
    yaml文件 读取Yaml文件importyamlclassYamlUtil:def__init__(self,yaml_file):"""通过init方法把Yaml文件传入到这个类:paramyaml_file:"""self.yaml_file=yaml_file#读取Yaml文件defre......
  • 【云原生持续交付和自动化测试】5.3 持续交付和DevOps实践基础知识
     【云原生持续交付和自动化测试】5.3持续交付和DevOps实践基础知识5.3.1什么是持续交付云原生下对持续交付(ContinuousDelivery)是一种软件开发方法,旨在实现高质量、可靠且可持续的软件交付。它强调通过自动化的流程和工具链,使得软件的构建、测试和部署过程可以频繁地进行,......
  • Python接口自动化之Token详解及应用
    问题:在写接口自动化框架时,使用token鉴权后一直不生效,我是把"token:XX"放在请求头header里,调用接口时一直提示登录失效(鉴权失败),然后我就把token发到data中,还是不行,一直困扰着一、Token基本概念及原理1.Token作用为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使......
  • 订单请求接口设计,避免timeout超时问题 下单解决
    订单请求接口设计,避免timeout超时问题下单解决接上篇:外部系统对接下单幂等性校验逻辑及接口超时处理https://www.cnblogs.com/oktokeep/p/17668039.html1.第一步中间表数据&取消接口两件事情分开,不要因为中间表缺失数据,而影响到取消的操作。2.第二步中间表数据兼容,不存在......
  • koa-登陆接口示例
    constKoa=require('koa');constRouter=require('koa-router');constbodyParser=require('koa-bodyparser');constapp=newKoa();constrouter=newRouter();//处理POST请求的登录接口router.post('/login',async(ctx,ne......
  • Xilinx平台以太网接口(一)TCP-IP基础
    汇总篇:XilinxFPGA平台以太网接口(汇总篇)_xilinxethernet_子墨祭的博客-CSDN博客 本系列文章基于xilinx三速以太网IP进行学习介绍。在完成以太网通信实验之前,必须要对以太网基础知识进行了解。时间充裕的可以看看《图解TCP/IP》作为扫盲。本文重点对以太网帧结构进行介绍。......
  • Xilinx平台以太网接口(二)系统架构
     汇总篇:XilinxFPGA平台以太网接口(汇总篇)_xilinxethernet_子墨祭的博客-CSDN博客一、系统架构基于TOP-DOWN的设计思路,我们首先需要了解基于FPGA的以太网接口设计的系统模型:  MAC是媒体访问控制器。以太网MAC由IEEE-802.3以太网标准定义。它实现了数据链路层。最新的MAC......
  • 《Python编程快速上手——让繁琐工作自动化》 原版电子书PDF+源码
    第11章从Web抓取信息第12章处理Excel电子表格第13章处理PDF和Word文档第14章处理CSV文件和JSON数据第15章保持时间、计划任务和启动程序第16章发送电子邮件和短信第17章操作图像第18章用GUI自动化控制键盘和鼠标附录A安装第三方模块附录B运行程序附录C习题答案下载:https......
  • 多个feign接口使用@FeignClient注解调用同一个名称的微服务时,启动会发生异常
    解决方案:方法1.将feign接口合并方法2.在application.yml文件中增加配置spring.main.allow-bean-definition-overriding=true方法3.在@FeignClient注解上增加contextId属性,确保每个feignclient的contextId唯一。如@FeignClient(name="服务名",contextId="唯一名称")......