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)
参考学习:虫师
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」