学堂 学堂 学堂公众号手机端

怎么使用Selenium进行测试用例参数化和数据驱动

lewis 1年前 (2024-05-03) 阅读数 18 #技术

在Selenium中,可以使用unittest或pytest等测试框架来实现测试用例参数化和数据驱动。

以下是一个示例代码使用unittest框架来实现测试用例参数化和数据驱动:

import unittest
from selenium import webdriver

class TestGoogleSearch(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome()

    def tearDown(self):
        self.driver.quit()

    def test_search(self, search_keyword):
        self.driver.get("https://www.google.com")
        search_box = self.driver.find_element_by_name("q")
        search_box.send_keys(search_keyword)
        search_box.submit()
        assert "No results found." not in self.driver.page_source

    def test_search_multiple_keywords(self):
        keywords = ["selenium", "python", "automation"]
        for keyword in keywords:
            self.test_search(keyword)

if __name__ == '__main__':
    unittest.main()

在上面的示例代码中,test_search方法接收一个参数search_keyword,并使用该参数进行搜索。test_search_multiple_keywords方法遍历多个关键字进行搜索。


通过运行测试用例可以看到不同关键字的搜索结果。

你也可以使用pytest框架来实现测试用例参数化和数据驱动,示例代码如下:

import pytest
from selenium import webdriver

@pytest.mark.parametrize("search_keyword", ["selenium", "python", "automation"])
def test_search(search_keyword):
    driver = webdriver.Chrome()
    driver.get("https://www.google.com")
    search_box = driver.find_element_by_name("q")
    search_box.send_keys(search_keyword)
    search_box.submit()
    assert "No results found." not in driver.page_source
    driver.quit()

在上面的示例代码中,使用@pytest.mark.parametrize装饰器来指定参数化的参数,并在测试函数中使用该参数进行搜索。

无论是使用unittest还是pytest,都可以实现测试用例参数化和数据驱动,具体选择哪种框架取决于你的个人偏好和项目需求。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门