• 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='')

    
    



    
    
    
  • 相关阅读:
    解决无法连接mysql问题
    nodejs基础(二)
    JS面试题
    node初学者笔记
    nodejs安装、环境配置和测试
    Linux常用命令笔记
    MangoDb的安装及使用
    Redis安装、命令以及设置密码遇到的问题
    测试端口通不通问题
    发布版本Debug和Release的区别
  • 原文地址:https://www.cnblogs.com/blackbird0423/p/8594786.html
Copyright © 2020-2023  润新知