unittest框架中使用parameterized模块参数化

注意是parameterized!!不是parameterize!!
出现“AttributeError: module ‘parameterize’ has no attribute 'parameterize’”这种错误的都是这个原因。

我这里以参数化注册用户名和密码为例:

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

//data里的数据,对应的就是用户名和密码,这里准备注册三个
data = [["zhangsan","1"],["lisi","2"],["wangwu","3"]]
driver=None
class unitTestMock(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        global driver
        driver = webdriver.Chrome()
        driver.maximize_window()
        print("运行setUpClass...")

    def setUp(self):
        driver.get("http://localhost:1080/WebTours/")
        sleep(3)
        print("运行setUp,重新加载地址...")

    @parameterized.parameterized.expand(data)
    def testA_Register(self,username,password):
        driver.switch_to.default_content()
        driver.switch_to.frame("body")
        driver.switch_to.frame("info")
        driver.find_element_by_partial_link_text("sign up").click()
        sleep(3)
        driver.switch_to.default_content()
        driver.switch_to.frame("body")
        driver.switch_to.frame("info")
        driver.find_element_by_name("username").clear()
        driver.find_element_by_name("password").clear()
        driver.find_element_by_name("username").send_keys(username)
        sleep(1)
        driver.find_element_by_name("password").send_keys(password)
        sleep(1)
        driver.find_element_by_name("passwordConfirm").send_keys(password)
        sleep(1)
        # 点击注册
        driver.find_element_by_name("register").click()
        sleep(3)

    def tearDown(self):
        print("运行tearDown...")

    @classmethod
    def tearDownClass(cls):
        driver.quit()
        print("运行tearDownClass...")

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

如果导入parameterized时报错,直接点击报错位置会有相关提示信息,点击提示信息就能直接安装,不需要使用“pip install XXX”这类命令。

猜你喜欢

转载自blog.csdn.net/qq_43096786/article/details/110918500