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

  • 相关阅读:
    Delphi编程 -- 视频捕获avicap32.pas源代码
    Delphi的DataSource事件
    InfoPower4000 wwGrid控件的一些应用技巧
    TwwDBGrid + TwwDBLookupCombo 下拉列表
    Delphi中TwwDBLookupCombo中属性的简单设置
    DevExpress中文说明--TdxCameraControl Object 摄像头组件
    如何Windows分页控件中增加统计功能
    Kibana:运用索引模式的 formatter 来探索 IP 信息
    Alertmanager高可用
    Prometheus高可用部署
  • 原文地址:https://www.cnblogs.com/yuer02/p/12881952.html
Copyright © 2011-2022 走看看