selenium - 数据驱动应用(parameterizedDDT)

Posted xiaochongc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium - 数据驱动应用(parameterizedDDT)相关的知识,希望对你有一定的参考价值。

1. parameterized

parameterized是python的一个参数化库,同时支持unittest、nose、pytest单元测试框架

安装:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests parameterized

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


class TestBaidu(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Chrome()
        cls.base_url = http://www.baidu.com

    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()
        time.sleep(3)

    # 通过parameterized实现参数化
    @parameterized.expand([   # 每个元组都被认为是一条测试用例。测试用例中,通过参数来取每个元组中的数据
        (case1, selenium),
        (case2, unittest),
        (case3, parameterized),
    ])
    def test_search(self, name, search_key):  # name对应元组中的第一列数据,search_key对应第二列
        self.baidu_search(search_key)
        self.assertEqual(self.driver.title, search_key + _百度搜索)

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()


if __name__ == __main__:
    unittest.main(verbosity=2)  # verbosity设置为2,表示输出更详细的日志

运行结果如下:

test_search_0_case1 (__main__.TestBaidu) ... ok
test_search_1_case2 (__main__.TestBaidu) ... ok
test_search_2_case3 (__main__.TestBaidu) ... ok

----------------------------------------------------------------------
Ran 3 tests in 15.239s

OK

test_search是测试用例的名称,参数化会自动加上0、1、2用来区分每条测试用例,元组中的case1后缀在名称上

 

2. DDT

 DDT(data-driven tests)是针对unittest单元测试框架设计的扩展库。允许使用不同的测试数据来运行一个测试用例,并将其展示为多个测试用例。

 安装:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests ddt

 

以上是关于selenium - 数据驱动应用(parameterizedDDT)的主要内容,如果未能解决你的问题,请参考以下文章

数据驱动框架 - Selenium Webdriver

数据驱动的 Selenium 测试

Web 应用程序中的 Selenium Web 驱动程序获取用户输入

Python Selenium 之数据驱动测试

带有Python的Selenium Webdriver - 无法使用Selenium Web驱动程序在Web应用程序中提供输入(Date)

Python Selenium 之数据驱动测试的实现