zoukankan      html  css  js  c++  java
  • selenium3+python3——数据驱动parameterized

    一、环境准备

    1.安装parameterized模块,打开cmd输入pip install parameterized在线安装

    >>pip install parameterized

    二、参考案例

     @parameterized.expand()装饰器装饰测试用例test_login(),而其中的每个元组都可以被认为是一条测试用例,name对应“case1”,“case2”,“case3”,username对应一个个账号,passwd对应密码

    参考代码:

    from time import sleep
    from selenium import webdriver
    import unittest
    from parameterized import parameterized


    class MyTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    cls.driver = webdriver.Chrome()
    cls.driver.maximize_window()
    cls.driver.implicitly_wait(5)

    def login(self, username, password):
    self.driver.get("http://mail.163.com")
    # self.driver.find_element_by_link_text("密码登录").click()
    login_frame = self.driver.find_element_by_css_selector('iframe[id^="x-URS-iframe"]')
    self.driver.switch_to.frame(login_frame)
    self.driver.find_element_by_class_name('j-inputtext.dlemail.j-nameforslide').clear()
    self.driver.find_element_by_class_name('j-inputtext.dlemail.j-nameforslide').send_keys(username)
    self.driver.find_element_by_name("password").clear()
    self.driver.find_element_by_name("password").send_keys(password)
    self.driver.find_element_by_id('dologin').click()
    sleep(4)

    def logout(self):
    self.driver.find_element_by_link_text("退出").click()

    @parameterized.expand([
    ("case1", "xyuer1019", "123456"),
    ("case2", "", "123456"),
    ("case3", "xyuer", ""),
    ("case4", "error", "error"),


    ])
    def test_login(self, case, username, password):
    self.login(username, password)
    self.logout()

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


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

    结果:

    test_login_0_case1 (__main__.MyTest) ... ok
    test_login_1_case2 (__main__.MyTest) ... ERROR
    test_login_2_case3 (__main__.MyTest) ... ERROR
    test_login_3_case4 (__main__.MyTest) ... ERROR

  • 相关阅读:
    python内建eval, exec 和exec函数的用法
    wxPython控件学习之wx.grid.Grid (包括对GridCellEditor和GridCelRender的扩展,以支持更多的grid cell 样式, 以GridCellColorEditor为例)
    wxPython控件学习之wx.ComboBox
    tar 解压缩命令
    ios是否安装了某应用
    iPhone IOS中DEB如何安装
    一种简便获取iPhone IMEI 的方法
    iOSOpenDevtroubleshoot
    Mac&iOS Socket编程
    Debian Binary Package Building HOWTO
  • 原文地址:https://www.cnblogs.com/yuer02/p/12881952.html
Copyright © 2011-2022 走看看