自動化測試:通過Parameterized實現(xiàn)參數(shù)化

Parameterized 是 Python 的一個參數(shù)化庫,同時支持 unittest、Nose 和 pytest 單元測試
框架。
GitHub 地址:https://github.com/wolever/parameterized。
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"

    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實現(xiàn)參數(shù)化
    @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+"_百度搜索")

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

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

首先,導入 Parameterized 庫下面的 parameterized 類。
其次,通過@parameterized.expand()來裝飾測試用例 test_search()。
在@parameterized. expand()中,每個元組都可以被認為是一條測試用例。元組中的數(shù)據(jù)
為該條測試用例變化的值。在測試用例中,通過參數(shù)來取每個元組中的數(shù)據(jù)。
在 test_search()中,name 參數(shù)對應(yīng)元組中第一列數(shù)據(jù),即“case1”“case2”“case3”,
用來定義測試用例的名稱;search_key 參數(shù)對應(yīng)元組中第二列數(shù)據(jù),即“selenium”“unittest”
“parameterized”,用來定義搜索的關(guān)鍵字。
最后,使用 unittest 的 main()方法,設(shè)置 verbosity 參數(shù)為 2,輸出更詳細的執(zhí)行日志。
運行上面的測試用例,結(jié)果如下。


image.png

通過測試結(jié)果可以看到,因為是根據(jù)@parameterized.expand()中元組的個數(shù)來統(tǒng)計測試
用例數(shù)的,所以產(chǎn)生了 3 條測試用例。test_search 為定義的測試用例的名稱。參數(shù)化會自
動加上“0”、“1”和“2”來區(qū)分每條測試用例,在元組中定義的“case1”“case2”“case3”
也會作為每條測試用例名稱的后綴出現(xiàn)。
--來源蟲師《Selenium3自動化測試實戰(zhàn)——基于Python語言》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容