python参数化库Parameterized
Parameterized 是 Python 的一个参数化库,同时支持 unittest、Nose 和 pytest 单元测试 框架
GitHub 地址:https://github.com/wolever/parameterized。
# pip 安装 pip install parameterized
示例
import unittest from time import sleep from selenium import webdriver from parameterized import parameterized class TestBaidu(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = webdriver.Chrome() cls.base_url = "https://www.baidu.com" @classmethod def tearDownClass(cls): cls.driver.quit() def baidu_search(self, search_key): self.driver.get(self.base_url) self.driver.find_element_by_id("kw").send_keys(search_key) self.driver.find_element_by_id("su").click() sleep(2) # 通过 Parameterized 实现参数化 @parameterized.expand([ ("case1", "selenium"), ("case2", "unittest"), ("case3", "parameterized"), ]) def test_search(self, name, search_key): self.baidu_search(search_key) self.assertEqual(self.driver.title, search_key + "_百度搜索") if __name__ == '__main__': unittest.main(verbosity=2)
在@parameterized. expand()中,每个元组都可以被认为是一条测试用例。元组中的数据 为该条测试用例变化的值。在测试用例中,通过参数来取每个元组中的数据。
在 test_search()中,name 参数对应元组中第一列数据,即“case1”“case2”“case3”, 用来定义测试用例的名称;search_key 参数对应元组中第二列数据,即“selenium”“unittest” “parameterized”,用来定义搜索的关键字。
@parameterized.expand([param(1,2,3),param('he','llo','hello')]) def test(self,test1,test2,test3): self.assertEqual((test1+test2),test3)
参考学习:虫师

浙公网安备 33010602011771号