aml文件是专门用来写配置文件的语言,非常简洁和强大,远比json格式方便。

在PC中新建一个yml/yaml为为缩略名的文件,输入信息见下图

新建一个py文件处理yml文件,直接处理成字典格式

缩进为二维数组:

import yaml
f = open('mpp.yml')
print(yaml.load(f))

yml文件信息和运行结果如下图:

ddt相当于参数化一个东西

只传入一个参数:

传入多个参数:

使用ddt+yml+unittest实现自动化接口测试,代码如下:

import ddt
import unittest,requests
from BeautifulReport import BeautifulReport @ddt.ddt
class MyCase(unittest.TestCase):
@ddt.file_data('login.yml')
@ddt.unpack
def test_run(self,**kwargs):#不确定有多少参数,用**kwargs获取用例的所有信息
method = kwargs.get('method')
url = kwargs.get('url')
data = kwargs.get('data')
header = kwargs.get('header',{}) #从用例里获取header,如果没有这个字段返回空
is_json = kwargs.get('is_json',0) #从用例里获取json,如果没有这个字段返回空
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=dataa,headers=header,
cookies=cookie)#params是直接把传参拼接到url后
# self.assertEquals(check.get('error_code'),r.json().get('error_code'))
#判断check中的预期结果和响应参的error_code是否一样 for c in check:#实际check中不止一个error_code,还有其他多个响应参
self.assertIn(c,r.text) if __name__ == '__main__':
# unittest.main() #自动运行全部用例
suite = unittest.TestSuite()
suite.addTests(unittest.makeSuite(MyCase))
result = BeautifulReport(suite)
result.report(filename='mpp的测试报告0318', description='描述B', log_path='')

python之yaml模块和ddt模块的更多相关文章

  1. python3.6 request模块和ddt模块的安装

    1.1用cmd命令进到python的安装目录的Scripts文件夹 1.2.然后输入 pip install requests,出现以下提示,说明安装成功 2.安装ddt步骤一样,只是把pip ins ...

  2. python之ddt模块使用

    一.DDT(数据驱动)简介 Data-Driven Tests(DDT)即数据驱动测试,可以实现不同数据运行同一个测试用例(通过数据的不同来驱动测试结果的不同). ddt本质其实就是装饰器,一组数据一 ...

  3. python ddt模块

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

  4. 【python+ddt】DDT模块的使用

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

  5. python 使用yaml模块

    python:yaml模块一.yaml文件介绍YAML是一种简洁的非标记语言.其以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁.1. yaml文件规则基本规则:    大小写敏感   ...

  6. DDT模块

    转自: https://www.cnblogs.com/frost-hit/p/8277637.html Python DDT(data driven tests)模块心得   关于ddt模块的一些心 ...

  7. python学习笔记-(九)模块

    基础知识 1. 定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑----实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块就是test) 包:用 ...

  8. python中常用的内建模块

    [datetime] datetime是python处理日期和时间的标准库 获取当前日期和时间 我们先看如何获取当前日期和时间: 注意到datetime是模块,datetime模块还包含一个datet ...

  9. Python成长之路(常用模块学习)

    Python 拥有很多很强大的模块 主要写一下常用的几个吧 大概就是这些内容了 模块介绍 time &datetime模块 random os sys shutil json & pi ...

随机推荐

  1. String、StringBilder和StringBuffer之间的区别

    1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String 2.String <(StringBuffer,StringBuild ...

  2. Appium basic UI check cases_from sample

    @Test public void testUIComputation() throws Exception { // populate text fields with values populat ...

  3. (转)CSS3全局实现所有元素的内边距和边框不增加

    全局设置 border-box 很好,首先它符合直觉,其次它可以省去一次又一次的加加减减 它还有一个关键作用——让有边框的盒子正常使用百分比宽度.但是使用了 border-box 可能会与一些依赖默认 ...

  4. grunt简单教程

    Grunt简单教程 1.grunt简单介绍 Grunt是一个基于任务的命令行工具.依赖于node.js环境. 它能帮你合并js文件,压缩js文件,验证js.编译less,合并css.还能够配置自己主动 ...

  5. Phoenix put the sql back in NoSql

    Overview | Apache Phoenix http://phoenix.apache.org/index.html Apache Phoenix enables OLTP and opera ...

  6. pyspark 连 MongoDB复制集

    解决问题思路: 核心:0-理解pyspark的执行与java jar的关系: 1-看控制台,看日志: 2-jar缺不缺,版本号,放哪里. [root@hadoop1 mylocalRepository ...

  7. UVA11624 Fire! —— BFS

    题目链接:https://vjudge.net/problem/UVA-11624 题解: 坑点:“portions of the maze havecaught on fire”, 表明了起火点不唯 ...

  8. Linux:外网域名防火墙设置导致下载失败

    问题现象: 通过IE从服务器下载文件时,提示Can't read from connection: Connection reset by peer. 别的现场都是好的,只有该现场有这个问题.所以,一 ...

  9. Python机器视觉编程常用数据结构与示例

    本文总结了使用Python进行机器视觉(图像处理)编程时常用的数据结构,主要包括以下内容: 数据结构 通用序列操作:索引(indexing).分片(slicing).加(adding).乘(multi ...

  10. I.MX6 Android busybox 从哪里生成的

    /**************************************************************************** * I.MX6 Android busybo ...