• python自动化测试-D11-学习笔记之一(yaml文件,ddt)


    pip instal pyyaml

    yaml或yml后缀格式的文件也是一种xml文件,有自己的格式

    key 和 value 之间要有空格 

    例如

    执行结果为:

    {'databases': 'test:192.168.1.2 dev:192.168.1.3 pre:192.168.1.5', 'username': 'localhost', 'port': 3306, 'tester': ['百花齐放', '百家争鸣', '百鸟朝凤'], 'password': 123456}

    二、

    import yaml,json
    # f = open('abc.yml',encoding='utf-8')
    # print(yaml.load(f))

    f = open('login.yml',encoding='utf-8')
    print(json.dumps(yaml.load(f),indent=4))

    执行结果为:

    
    

    ddt的使用

    import ddt
    import unittest
    '''
    ddt 自动读文件,在类名上面 写上 @ddt.ddt
    在函数上门写上 @ddt.data(参数化数据),多个参数的时候要加上 @ddt.unpack
    unittest执行的时候不能直接右键执行,需要在菜单栏里点击run 然后选择python文件执行
    '''

    @ddt.ddt
    class MyCase(unittest.TestCase):
    @ddt.data(1,2,3)
    def test_a(self,num):
    self.assertTrue( num > 2)

    @ddt.data([1,2],[2,2],[3,2])
    @ddt.unpack
    def test_b(self,num1,num2):
    self.assertTrue(num1>num2)

    if __name__ == '__main__':
    unittest.main()
    执行结果为:

    用ddt 读取 yml文件内容:

    import ddt
    import unittest,requests
    @ddt.ddt
    class MyCase(unittest.TestCase):
    @ddt.file_data('login.yml')
    @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)
    if __name__ == '__main__':
    unittest.main()

    执行结果

     接上面

    from BeautifulReport import BeautifulReport
    if __name__ == '__main__':
    # unittest.main()
    suite = unittest.TestSuite()
    suite.addTests(unittest.makeSuite(MyCase))
    result = BeautifulReport(suite)
    result.report(filename='我的测试报告',description='这是我的测试报告',log_path='')

    
    



    
    
    
  • 相关阅读:
    windows下 安装 rabbitMQ 及操作常用命令
    C#中关于DataGridView行和列的背景色-前景色设置
    使用Linq判断DataTable数据是否重复
    C#用mouse_event模拟鼠标点击的问题
    ApartmentState.STA
    使用WebBrowser,内存一直增加的解决办法
    HOT SUMMER 每天都是不一样,积极的去感受生活 C#关闭IE相应的窗口 .
    您访问的URL地址不被允许。
    CMSIS-DAP for STLink V2.1 and STLink v2.1 mini adapter
    DG449 High Voltage Single SPDT Analog Switch in SOT23-8
  • 原文地址:https://www.cnblogs.com/blackbird0423/p/8594786.html
Copyright © 2020-2023  润新知