• 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='')
  • 相关阅读:
    《大型网站技术架构》学习笔记——架构演化
    ASP.NET MVC之Html.RenderAction
    设计模式学习笔记——面向对象设计原则
    设计模式学习笔记——类图
    观察者模式
    泛型接口
    泛型的实例化应用
    多线程第二种方式-实现runnable
    对象中的某个属性不希望被序例化--transient
    对象序例化
  • 原文地址:https://www.cnblogs.com/mpp0905/p/8613586.html
Copyright © 2020-2023  润新知