zoukankan      html  css  js  c++  java
  • 两种数据驱动方式

    第一种:

    import unittest
    from common import login
    from read_xl import read_excel
    from unittestreport import ddt, list_data
    
    data = read_excel('cases.xlsx', 'Sheet1')
    
    """
    参数化的具体用法:
    1.unittestreport,ddt,list_data
    2.在测试函数当中,加入参数row,row参数是可以自己定义的
    """
    @ddt
    class TestLogin(unittest.TestCase):
    
        @list_data(data)
        def test_login(self, row):
            # row 标识每次从data这个list中取出其中一个数据,{}
            # 代表代码一组测试数据相当于for row in data:
            # 源码:会自动生成一个新的test_login_01 函数
            params_str = row['data']
            params = eval(params_str)  # 脱掉外层衣服,将字符串转为字典
            username = params['username']
            password = params['password']
            expected = eval(row['expected'])
            actual = login(username, password)
            self.assertEqual(expexted, actual)

    第二种:

    import unittest
    from common import login
    from read_xl import read_excel
    from ddt import ddt, data
    
    xl = read_excel('cases.xlsx', 'Sheet1')
    
    @ddt
    class TestLogin(unittest.TestCase):
    
        @data(*xl)
        def test_login(self, row):
            params_str = row['data']
            params = eval(params_str)  # 脱掉外层衣服,将字符串转为字典
            username = params['username']
            password = params['password']
            expected = eval(row['expected'])
            actual = login(username, password)
            self.assertEqual(expected, actual)
  • 相关阅读:
    Python_02
    iOS架构模式浅析
    Swift学习目录
    Flutter基础系列之混合开发(二)
    iOS性能优化
    Flutter基础系列之入门(一)
    iOS应用卡顿分析
    Weex是如何让JS调用产生原生UIView的?
    WeexSDK之注册Modules
    WeexSDK之注册Handlers
  • 原文地址:https://www.cnblogs.com/wsfsd/p/15369927.html
Copyright © 2011-2022 走看看