簡體   English   中英

如何在Selenium Python中編寫功能/集成測試

[英]How to write functional/integration tests in Selenium Python

我是新手測試,我想

1)測試登錄

2)創建一個文件夾

3)將內容(頁面)添加到文件夾中

我已經編寫了每個測試並且它們工作但顯然我想建立彼此的ontop,例如,為了做3我需要做1然后2.為了做2我需要做1.這是我的基本測試結構:

class TestSelenium(unittest.TestCase):
    def setUp(self):
        # Create a new instance of the Firefox driver
        self.driver = webdriver.Firefox()

    def testLogin(self):
        print '1'
        ...

    def testFolderCreation(self):
        print '2'
        ...

    def testContentCreation(self):
        print '3'
        ...

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

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

起初,我認為測試會按順序運行,第二個功能會在第一個功能停止的地方繼續,但我發現情況並非如此,似乎每次測試都會重新開始。 我也意識到它們以相反的順序執行。 我在終端輸出了3,2,1。 我應該如何實現我想要的? 如果我在運行我想要的那個之前調用前面的函數,我覺得它反復測試同樣的東西,因為每個函數都是一個測試(例如,在testContentCreation ,我會調用'testLogin'然后調用testFolderCreation並在testFolderCreation調用testLogin 。如果我要做更多的事情, testLogin會被多次調用!)。 我是否應該將前面的步驟轉換為常規的非測試函數,並在最后的最后一個(測試函數)中按順序調用前面的步驟? 如果我這樣做那么我猜如果任何步驟失敗,最后一個失敗,將有一個大的測試功能。

關於如何編寫此類測試的任何建議? 另外,為什么測試以相反的順序運行?

謝謝!

你看到你所看到的,我想,因為你所做的關於假設的一些不正確的假設unittest做。 假設每個測試用例都是一個獨立的實體,因此不會強制執行運行順序。 此外, SetUp()TearDown()在每個案例之前和之后運行。 如果要進行全局設置/拆卸,則需要創建名為SetUpClass()TearDownClass() 您可能還想查看TestSuite類。 更多信息: http//docs.python.org/library/unittest.html

請記住,當unittest庫進行測試發現(反映您的測試用例類以查找要運行的測試用例)時,它基本上僅限於查看對象的.__dict__dir()值,這些值本質上是無序的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM