unittest詳解 跳過用例的執行(skip)


在執行測試用例時,有時候有些用例是不需要執行的,那我們怎么辦呢?難道刪除這些用例?那下次執行時如果又需要執行這些用例時,又把它補回來?這樣操作就太麻煩了。

unittest提供了一些跳過指定用例的方法

  • @unittest.skip(reason):強制跳轉。reason是跳轉原因
  • @unittest.skipIf(condition, reason):condition為True的時候跳轉
  • @unittest.skipUnless(condition, reason):condition為False的時候跳轉
  • @unittest.expectedFailure:如果test失敗了,這個test不計入失敗的case數目
    # coding = utf-8
    import unittest
    import warnings
    from selenium import webdriver
    from time import sleep
    # 驅動文件路徑
    driverfile_path = r'D:\coship\Test_Framework\drivers\IEDriverServer.exe'
    
    class CmsLoginTest(unittest.TestCase):
        def setUp(self):
            # 這行代碼的作用是忽略一些告警打印
            warnings.simplefilter("ignore", ResourceWarning)
            self.driver = webdriver.Ie(executable_path=driverfile_path)
            self.driver.get("http://172.21.13.83:28080/")
    
        def tearDown(self):
            self.driver.quit()
    
        @unittest.skip("用戶名密碼都為空用例不執行")
        def test_login1(self):
            '''用戶名、密碼為空'''
            self.driver.find_element_by_css_selector("#imageField").click()
            error_message1 = self.driver.find_element_by_css_selector("[for='loginName']").text
            error_message2 = self.driver.find_element_by_css_selector("[for='textfield']").text
            self.assertEqual(error_message1, '用戶名不能為空')
            self.assertEqual(error_message2, '密碼不能為空')
    
        @unittest.skipIf(3 > 2, "3大於2,此用例不執行")
        def test_login3(self):
            '''用戶名、密碼正確'''
            self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")
            self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("111111")
            self.driver.find_element_by_css_selector("#imageField").click()
            sleep(1)
            self.driver.switch_to.frame("topFrame")
            username = self.driver.find_element_by_css_selector("#nav_top>ul>li>a").text
            self.assertEqual(username,"autotest")
    
        @unittest.skipUnless(3 < 2,"2沒有大於3,此用例不執行")
        def test_login2(self):
            '''用戶名正確,密碼錯誤'''
            self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")
            self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("123456")
            self.driver.find_element_by_css_selector("#imageField").click()
            error_message = self.driver.find_element_by_css_selector(".errorMessage").text
            self.assertEqual(error_message, '密碼錯誤,請重新輸入!')
    
        @unittest.expectedFailure
        def test_login4(self):
            '''用戶名不存在'''
            self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("test007")
            self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("123456")
            self.driver.find_element_by_css_selector("#imageField").click()
            error_message = self.driver.find_element_by_css_selector(".errorMessage").text
            self.assertEqual(error_message, '用戶名不存在!')
    
        def test_login5(self):
            '''用戶名為空'''
            self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("123456")
            self.driver.find_element_by_css_selector("#imageField").click()
            error_message = self.driver.find_element_by_css_selector("[for='loginName']").text
            self.assertEqual(error_message, '用戶不存在!')
    
        def test_login6(self):
            '''密碼為空'''
            self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")
            self.driver.find_element_by_css_selector("#imageField").click()
            error_message = self.driver.find_element_by_css_selector("[for='textfield']").text
            self.assertEqual(error_message, '密碼不能為空')
    
    
    if __name__ == "__main__":
        unittest.main(verbosity=2)

     


免責聲明!

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



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