zoukankan      html  css  js  c++  java
  • python之yaml模块和ddt模块

    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='')
  • 相关阅读:
    Azure SQL Database (1) 用户手册
    Windows Azure Web Site (17) Azure Web Site 固定公网IP地址
    MongoDB数据文件内部结构
    压缩 MongoDB 的数据文件
    服务器如何选择网络带宽(转)
    刀片服务器和磁盘阵列卡(RAID)技术---永和维护(转)
    Solr打分出错
    Solr添加SolrDocument报错
    解决Windows Git Bash中文乱码问题
    HAProxy的独门武器:ebtree
  • 原文地址:https://www.cnblogs.com/mpp0905/p/8613586.html
Copyright © 2011-2022 走看看