zoukankan      html  css  js  c++  java
  • ddt数据驱动

    # coding:utf-8
    import unittest
    import ddt
    from selenium import webdriver
    from ke1test.pageobjectmodle.page_blog.loginpage import LoginPage
    '''所谓的数据驱动就是能自动将list中的多条用例参数数据给拆分成多条用例的参数',并运行该多条用例'''

    datas = [
    {
    'username': 'admin',
    'psw': '@Test1234',
    'result': 'admin'
    },
    {
    'username': 'admin1',
    'psw': '@Test1234',
    'result': ''
    }
    ]
    @ddt.ddt
    class TestLoginCase(unittest.TestCase):
    # case1 = {
    # 'username' : 'admin',
    # 'psw' : '@Test1234',
    # 'result' : 'admin'
    # }
    # case2 = {
    # 'username' : 'admin1',
    # 'psw' : '@Test1234',
    # 'result' : ''
    # }
    @classmethod
    def setUpClass(cls):
    cls.driver = webdriver.Chrome()
    cls.login_page = LoginPage(cls.driver)


    def tearDown(self):
    self.login_page.logout()

    @classmethod
    def tearDownClass(cls):
    cls.driver.quit()

    def login_case(self, case_dict):
    self.login_page.login(case_dict['username'], case_dict['psw'])
    result = self.login_page.get_login_result()
    return result

    @ddt.data(*datas)
    def test_login_case(self, case_dict):
    self.assertEqual(self.login_case(case_dict), case_dict['result'])

    # def test_login_success(self):
    # self.assertEqual(self.case1['result'], self.login_case(self.case1))
    #
    # def test_login_fail(self):
    # self.assertEqual(self.case2['result'], self.login_case(self.case2))

    if __name__ == '__main__':
    unittest.main()

    使用ddt之前多少条用例就需要写多少个参数,且需要写多个用例,使用ddt之后,可直接用一条用例
    人不可无方向
  • 相关阅读:
    Nginx从安装到配置文件详解
    python流程控制语句
    python数据类型以及方法
    python介绍以及基础基础语法
    new 操作符
    js 模拟substr
    js 对于链式加载的思考
    js 实现哈夫曼树
    js实现深度优先
    js 广度优先遍历
  • 原文地址:https://www.cnblogs.com/yueyanru/p/9437518.html
Copyright © 2011-2022 走看看