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)

 

参考学习:虫师

 

posted @   天才九少  阅读(412)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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 热点速览」
点击右上角即可分享
微信分享提示