python3的unittest中使用test suite(測試套件)執行指定測試用例


示例代碼

module.py

class baidumodule():
    def __init__(self,driver,):
        self.dr = driver #不能在類中再次導入webdriver 兩邊的driver等於兩個窗口,直接讓調用方傳入driver即可
    def login(self,values):
        login_dr = self.dr
        login_dr.get("https://www.baidu.com/")
        login_dr.find_element_by_xpath("//*[@id='kw']").send_keys(values)
        login_dr.find_element_by_xpath("//*[@id='su']").click()

    def login_out(self):
        self.dr.quit()

baidu.py

# _*_ coding:utf-8 _*_
import csv,unittest #導入csv模塊
from time import sleep
from selenium import webdriver
from module import baidumodule
class baidu(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()#最大化窗口
        self.driver.implicitly_wait(10)#隱式等待
        self.search = baidumodule(self.driver) #將driver傳給aidumodule這個類
        with open("file.csv","r") as name:
            self.lines = name.readlines()#以行讀取整個文件
    def tearDown(self):
        self.search.login_out()

    def test_search(self):
        search = self.search
        lines = self.lines
        driver = self.driver
        search.login(lines[0])
        sleep(1)
        title = driver.title
        self.assertEqual(title,'selenium_百度搜索2')
        sleep(2)
    def test_search1(self):
        search = self.search
        lines = self.lines
        driver = self.driver
        search.login(lines[1])
        sleep(1)
        title = driver.title
        self.assertEqual(title,'selenium2_百度搜索')
        sleep(2)
    def test_search2(self):
        search = self.search
        lines = self.lines
        driver = self.driver
        search.login(lines[2])
        sleep(1)
        title = driver.title
        self.assertEqual(title,'selenium3_百度搜索')
        sleep(2)
    def test_search3(self):
        search = self.search
        lines = self.lines
        driver = self.driver
        search.login(lines[3])
        sleep(1)
        title = driver.title
        self.assertEqual(title,'webdriver_百度搜索')
        sleep(2)

class counttest(unittest.TestCase):
    def setUp(self):
        self.b = 2
        self.c = 3
    def test_add(self):
        d = self.b + self.c
        self.assertEqual(d,5)

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

如上我們有可能擁有n多條測試用例,我們現新增了一條test_add,我們只需要單獨執行這條即可稍微改動一下if __name__ == "__main__":的代碼即可

# _*_ coding:utf-8 _*_
import csv,unittest #導入csv模塊
from time import sleep
from selenium import webdriver
from module import baidumodule
class baidu(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()#最大化窗口
        self.driver.implicitly_wait(10)#隱式等待
        self.search = baidumodule(self.driver) #將driver傳給aidumodule這個類
        with open("file.csv","r") as name:
            self.lines = name.readlines()#以行讀取整個文件
    def tearDown(self):
        self.search.login_out()

    def test_search(self):
        search = self.search
        lines = self.lines
        driver = self.driver
        search.login(lines[0])
        sleep(1)
        title = driver.title
        self.assertEqual(title,'selenium_百度搜索2')
        sleep(2)
    def test_search1(self):
        search = self.search
        lines = self.lines
        driver = self.driver
        search.login(lines[1])
        sleep(1)
        title = driver.title
        self.assertEqual(title,'selenium2_百度搜索')
        sleep(2)
    def test_search2(self):
        search = self.search
        lines = self.lines
        driver = self.driver
        search.login(lines[2])
        sleep(1)
        title = driver.title
        self.assertEqual(title,'selenium3_百度搜索')
        sleep(2)
    def test_search3(self):
        search = self.search
        lines = self.lines
        driver = self.driver
        search.login(lines[3])
        sleep(1)
        title = driver.title
        self.assertEqual(title,'webdriver_百度搜索')
        sleep(2)

class counttest(unittest.TestCase):
    def setUp(self):
        self.b = 2
        self.c = 3
    def test_add(self):
        d = self.b + self.c
        self.assertEqual(d,5)

if __name__ == "__main__": #如果直接執行將執行以下代碼,調用不執行以下代碼
    # unittest.main()
    #構造測試集
    suit = unittest.TestSuite()
    suit.addTest(counttest("test_add"))#把這個類中需要執行的測試用例加進去,有多條再加即可
    #suit.addTest(counttest("test_add2"))#從上到下先后順序
    runner = unittest.TextTestRunner()
    runner.run(suit)#運行測試用例

這樣就只會執行我們指定的用例了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM