# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: yml_test
Description :
Author : Administrator
date: 2019/6/29 0029
-------------------------------------------------
"""
import ddt, yaml
import unittest, requests

f = open(r'data.yaml', encoding='utf-8')
res = yaml.load(f)
print(type(res))
print(res)

@ddt.ddt
class MyCase(unittest.TestCase):
@ddt.file_data('data.yaml')
@ddt.unpack
def test_run(self, **kwargs):
method = kwargs.get('method')
url = kwargs.get('url')
data = kwargs.get('data', {})
header = kwargs.get('header', {})
is_json = kwargs.get('is_json', 0)
cookie = kwargs.get('cookie', {})
check = kwargs.get('check')
if method == 'post':
if is_json:
r = requests.post(url, json=data, headers=header, cookies=cookie)
else:
r = requests.post(url, data=data, headers=header, cookies=cookie)
else:
r = requests.get(url, params=data, header=header, cookies=cookie)
# self.assertEqual(check.get('error_code'),r.json().get('error_code'))
'''当校验很多的时候,需要用到循环'''
for c in check:
self.assertIn(c, r.text)

@ddt.file_data('baidu.yaml')
@ddt.unpack
def test_run_baidu(self, **kwargs):
method = kwargs.get('method')
url = kwargs.get('url')
check = kwargs.get('check')
if method == "get":
r = requests.get(url)
# self.assertEqual(check.get('error_code'),r.json().get('error_code'))
'''当校验很多的时候,需要用到循环'''
self.assertEqual(check["status_code"],r.status_code)

if __name__ == '__main__':
unittest.main()

python ddt file_data的更多相关文章

  1. Python @ddt.file_data() 为.yml 文件实例

    一,创建login.yml 文件(以登录接口为例) 1,创建 login.yml 文件,内容如下图: 打印login.yml 文件,代码及显示效果如下: 代码: import yaml,jsonf = ...

  2. python ddt数据驱动(简化重复代码)

    在接口自动化测试中,往往一个接口的用例需要考虑 正确的.错误的.异常的.边界值等诸多情况,然后你需要写很多个同样代码,参数不同的用例.如果测试接口很多,不但需要写大量的代码,测试数据和代码柔合在一起, ...

  3. python----数据驱动@ddt.file_data结合yaml文件的使用

    一.创建yaml文件1. 安装yaml模块 pip install pyyaml2. 新建yaml文件 右键任意文件夹-->New-->File,输入文件名并以.yaml或.yml结尾 二 ...

  4. python ddt

    #!/usr/bin/env/python # -*- coding: utf-8 -*- # @Time : 2018/12/15 15:27 # @Author : ChenAdong # @Em ...

  5. python DDT读取excel测试数据

    转自:http://www.cnblogs.com/nuonuozhou/p/8645129.html ddt   结合单元测试一起用 ddt(data.driven.test):数据驱动测试 由外部 ...

  6. python ddt及logging(九)

    一.安装 ①执行语句: pip install ddt ②在单元测试中DDT用来进行数据驱动,数据与测试代码分离(数据发生变化时,用例可以保持不变),一组数据来执行相同的操作. 一般进行接口测试时,每 ...

  7. python ddt 实现数据驱动一

    ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...

  8. python ddt实现数据驱动

    首先安装ddt模块,命令:pip install ddt 通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或 ...

  9. python ddt 传多个参数值示例

    import unittest from ddt import ddt,data,file_data,unpack @ddt class TestDDT(unittest.TestCase): lis ...

  10. python ddt模块

    ddt模块包含了一个类的装饰器ddt和两个方法的装饰器: data:包含多个你想要传给测试用例的参数: file_data:会从json或yaml中加载数据: 通常data中包含的每一个值都会作为一个 ...

随机推荐

  1. 用Java写一个分布式缓存——缓存淘汰算法

    前言 之前也用过一些缓存中间件,框架,也想着自己是不是也能用Java写一个出来,于是就有了这个想法,打算在写的过程中同步进行总结. 源码:weloe/Java-Distributed-Cache (g ...

  2. 克拉玛依初赛-wp

    MISC 签到 16进制转字符串 base64 再来一次base64 flag 论禅论道 7z解压得到jar 使用decom打开 解密 得到flag WEB pingme 抓包,修改POST提交的参数 ...

  3. do while 出口條件循環

  4. 在函数中设置input的multiple属性以及input的点击事件时,设置失效

    1.在函数中先设置input文件可以多选,然后再设置input框的点击事件情况下,有时候这个多选设置会失效. 我们可以采用下面的方式去解决 <input ref="myInputRef ...

  5. vulnhub靶场之RIPPER: 1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Ripper: 1,下载地址:https://download.vulnhub.com/ripper/Ripper.ova,下载后直接vbox打 ...

  6. QGraphicsView, QGraphicsObject ,QQGraphicsSvgItem 图片接收鼠标事件 拖拉 收放

    由于项目要求,需要加载svg格式图片和pixmap图片,并根据指定坐标在图上进行勾画,并且对相应位置接收鼠标事件. -继承QGraphicsObject,实现加载pixmap的项 myimageite ...

  7. 怎么把Java,PHP,Vue等项目上传到GitHub,码云等

    一.到github或者码云上建立一个私有或公开仓库(这里以github为例) 创建成功后我们得到了一个仓库地址,github上的操作完成,现在去项目内捣鼓 二.提交本地文件并推送 1.我是用命令的格式 ...

  8. 【随笔记】NDK 编译开源库 SQLite3

    NDK 编译环境搭建请参考:[工作笔记]NDK 编译开源库 nghttp2/openssl/curl_lovemengx的博客-CSDN博客 一.下载源代码 wget https://github.c ...

  9. Spring AOP与AspectJ的对比及应用

    1 简介 AOP,即面向切面编程是很常用的技术,特别是在Java Web开发中.而最流行的AOP框架分别是Spring AOP和AspectJ. 2 Spring AOP vs AspectJ Spr ...

  10. Appium资源汇总

    Appium资源汇总 created: 2022-8-4 软件 网址 说明 https://github.com/appium/appium-inspector/releases 检查器的下载路径 h ...