zoukankan      html  css  js  c++  java
  • Unnitest测试框架总结

    Unnitest总结

    第一点,setUptearDown方法

    l  每次执行test开头的用例都会执行setUptearDown方法

    l  :

     1import unittest
     2 
     3 class Mydemo(unittest.TestCase):
     4     def setUp(self):
     5         print('调用setUp方法')
     6         self.a = 1
     7     def test1(self):
     8         print("i am test1 the value of a is {}".format(self.a))
     9     def test2(self):
    10         print("i am test2 the value of a is {}".format(self.a))
    11     def test3(self):
    12         print("i am test3 the value of a is {}".format(self.a))
    13     def tearDown(self):
    14         print("调用tearDown方法")
    15 if __name__ == '__main__':
    16     unittest.main()

    n  结果:

     

    第二点: setUpClasstearDownClass方法

     

    l  :

     1import unittest
     2 class Mydemo(unittest.TestCase):
     3     @classmethod
     4     def setUpClass(cls):
     5         print("调用setUpClass
    ")
     6     def test1(self):
     7         print("i am test1")
     8     def test2(self):
     9         print("i am test2")
    10     @classmethod
    11     def tearDownClass(cls):
    12         print("调用tearDownClass")
    13 if __name__ == '__main__':
    14     unittest.main()

    l  结果:

    第三点:定义全局的属性,可以放到setUpClasstestCase中均可去调用

     

    l  :

     1class NavigationTest(unittest.TestCase):
     2     @classmethod
     3     def setUpClass(cls):
     4         cls.driver = webdriver.Chrome()
     5         cls.driver.implicitly_wait(30)
     6         cls.driver.maximize_window()
     7         cls.driver.get('https://www.baidu.com/')
     8         driver = cls.driver #定义在全局中
     9         cls.search_field = driver.find_element_by_name('wd') #定义在全局中
    10 
    11     def testBrowserNavigation(self):
    12         self.search_field.clear()
    13         print('执行test1')
    14 
    15         self.search_field.send_keys('圣女果')
    16         self.search_field.submit()
    17         time.sleep(1)
    18 
    19         self.assertEqual('圣女果_百度搜索',self.driver.title)
    20 
    21         self.driver.back()
    22         self.assertTrue(WebDriverWait(self.driver,30).until(expected_conditions.title_contains('百度一下')))
    23     def testBrowserNavigation2(self):
    24         driver = self.driver
    25         search_field = driver.find_element_by_name('wd')
    26         search_field.clear()
    27         print('执行test2')
    28 
    29         search_field.send_keys('璎珞')
    30         search_field.submit()
    31         time.sleep(1)
    32     @classmethod
    33     def tearDownClass(cls):
    34         driver = cls.driver
    35         time.sleep(10)
    36         driver.quit()
    37 
    38 if __name__ == "__main__":
    39     unittest.main()
    40

    第四点:testCase之间的执行顺序按照默认是以首字母排序的

    l  执行顺序test1,test10,....test18,test2,..........test9

     

     

     

     

    Unnitest总结

    第一点,setUptearDown方法

    l  每次执行test开头的用例都会执行setUptearDown方法

    l  :

    l   import unittest

    class Mydemo(unittest.TestCase):
       
    def setUp(self):
           
    print('调用setUp方法')
           
    self.a = 1
       
    def test1(self):
           
    print("i am test1 the value of a is {}".format(self.a))
       
    def test2(self):
           
    print("i am test2 the value of a is {}".format(self.a))
       
    def test3(self):
           
    print("i am test3 the value of a is {}".format(self.a))
       
    def tearDown(self):
           
    print("调用tearDown方法")
    if __name__ == '__main__':
        unittest.main()

    n  结果:

     

    第二点: setUpClasstearDownClass方法

    l  :

    l   import unittest
    class Mydemo(unittest.TestCase):
       
    @classmethod
       
    def setUpClass(cls):
           
    print("调用setUpClass ")
       
    def test1(self):
           
    print("i am test1")
       
    def test2(self):
           
    print("i am test2")
       
    @classmethod
       
    def tearDownClass(cls):
           
    print("调用tearDownClass")
    if __name__ == '__main__':
        unittest.main()

    l  结果:

    n 

    第三点:定义全局的属性,可以放到setUpClasstestCase中均可去调用

    l  :

    l   class NavigationTest(unittest.TestCase):
       
    @classmethod
       
    def setUpClass(cls):
           
    cls.driver = webdriver.Chrome()
           
    cls.driver.implicitly_wait(30)
           
    cls.driver.maximize_window()
           
    cls.driver.get('https://www.baidu.com/')
            driver =
    cls.driver #定义在全局中
           
    cls.search_field = driver.find_element_by_name('wd') #定义在全局中

       
    def testBrowserNavigation(self):
           
    self.search_field.clear()
           
    print('执行test1')

           
    self.search_field.send_keys('圣女果')
           
    self.search_field.submit()
            time.sleep(
    1)

           
    self.assertEqual('圣女果_百度搜索',self.driver.title)

           
    self.driver.back()
           
    self.assertTrue(WebDriverWait(self.driver,30).until(expected_conditions.title_contains('百度一下')))
       
    def testBrowserNavigation2(self):
            driver =
    self.driver
            search_field = driver.find_element_by_name(
    'wd')
            search_field.clear()
           
    print('执行test2')

            search_field.send_keys(
    '璎珞')
            search_field.submit()
            time.sleep(
    1)
       
    @classmethod
       
    def tearDownClass(cls):
            driver =
    cls.driver
            time.sleep(
    10)
            driver.quit()

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

    n   

    第四点:testCase之间的执行顺序按照默认是以首字母排序的

    l  执行顺序test1,test10,....test18,test2,..........test9

     

  • 相关阅读:
    linux安装mongodb数据库./mongod -f mongodb.conf失败或者error
    idea项目提交
    spring5.x日志问题log4j
    IDEA使用apache-tomcat-9.0.16控制台Tomcat日志中文乱码问题
    笔记本网线连服务器内网ip配置
    vue项目启动操作
    win10窗口打开一直处于最小化状态问题
    停止 WinDefend Microsoft Defender Antivirus Service
    关于apt命令和yum命令区别
    20200924-4 代码规范
  • 原文地址:https://www.cnblogs.com/jiyanjiao-702521/p/9524184.html
Copyright © 2011-2022 走看看