zoukankan      html  css  js  c++  java
  • python中selenium+unittest实操

    一、unittest的常见语句

    1.  assertEqual(a, b)      判断:a == b

    2. assertNotEqual(a, b)    判断: a != b

    3. assertTrue(x)      bool(x) is True

    4. assertFalse(x)   bool(x) is False

    5. assertIs(a, b)    a  is  b
      assertIsNot(a, b)   a  is not b
      assertIsNone(x)   x  is  none
      assertIsNotNone(x)    x  is  not  none
      assertIn(a, b)    a  in  b
      assertNotIn(a, b)   a is  not  b
      assertIsInstance(a, b) 
      assertNotIsInstance(a, b) not isinstance(a, b)

    6. assertGreater(a, b) a>b

    7. assertGreaterEqual(a, b)  a >= b

    8. assertLess(a, b)    a < b

    9. assertLessEqual(a, b)     a <= b

     

    二、unittest重写和套件

        2.1 runtest方法。   2.2 test开头

    import unittest
    2.1方式一:重写  runtest()方法
    # class ReWrite(unittest.TestCase):   #创建子类继承父类
    #     def runTest(self):   #创建runtest方法,每个类中只能写一条
    #         print('重写')
    #
    #     def runTest02(self):  # 这条无效,不会被执行
    #         print('重写2')
    
    2.2方式二:重写  以test开头
    class login(unittest.TestCase):
        def test01(self):
            self.assertIsInstance(23.1,float)
            print('test01')
    
        def test02(self):
            self.assertGreater(2,1,'前个值大于后一个值')
            print('test02')
    
        def test03(self):
            self.assertIs(1,1,'两值相等')
            print('test03')
    
        <部分一>
    2.3测试套件 方式一:通过addtest添加case,其中case可以不用test开头。只执行添加的case
    ………………复制<部分一>
    if __name__=='__main__': 
    login_suite = unittest.TestSuite() #用unittest.TestSuite实例化测试套件对象 login_suite.addTest(login('test01')) #使用addtest添加case, 类(方法) login_suite.addTest(login('test02')) unittest.main(defaultTest='login_suite') #执行测试套件对象 字符串格式 ’测试套件对象‘
    
    
    2.4测试套件:方式二(通过makeSuite添加以test开头的case) 执行套件所有case
    ………………复制<部分一>
    if  __name__=='__main__':
        login_suite = unittest.TestSuite(unittest.makeSuite(login))   #用unittest.TestSuite实例化测试套件对象,makeSuite添加类
        unittest.main(defaultTest='login_suite')    #执行套件所有case

    三、加载并执行测试用例

         unittest 提供一个TestLoader类用于自动创建一个测试集,并将单个测试用例放到测试集中。TestLoader自动运行以test开头的测试方法。

    3.1  增加类下的所有用例

         loadTestsFromTestCase

         load_suite =unittest.TestSuite(unittest.makeSuite(login))

    import unittest
    class login(unittest.TestCase):
        def test01(self):
            self.assertIsInstance(23.1,float)
            print('test01')
    
        def test02(self):
            self.assertGreater(2,1,'前个值大于后一个值')
            print('test02')
    
    
        def test03(self):
            self.assertIs(1,1,'两值相等')
            print('test03')
    
    #loadTestsFromTestCase 增加类下的所有用例
    if  __name__=='__main__':
        load_suite = unittest.TestLoader().loadTestsFromTestCase(login)  方法一
    load_suite =unittest.TestSuite(unittest.makeSuite(login)) 方法二 unittest.main(defaultTest
    ='load_suite')

      3.2 增加模块下的所有用例

    import unittest
    import demo_01 #注意:要执行本模块的用例,需导入该模块
    
    class login(unittest.TestCase):
        def test01(self):
            self.assertIsInstance(23.1,float)
            print('test01')
    
        def test02(self):
            self.assertGreater(2,1,'前个值大于后一个值')
            print('test02')
    
        def test03(self):
            self.assertIs(1,1,'两值相等')
            print('test03')
    
    class login02(unittest.TestCase):
        def test04(self):
            self.assertIsInstance(23.1,float)
            print('test04')
    
        def test05(self):
            self.assertGreater(2,1,'前个值大于后一个值')
            print('test05')
    
        def test06(self):
            self.assertIs(1,1,'两值相等')
            print('test06')
    
    #增加模块下的所有用例
    if  __name__=='__main__':
        loadmodule_suite = unittest.TestLoader().loadTestsFromModule(demo_01)  #⚠️导入本模块
        unittest.main(defaultTest='loadmodule_suite')

      3.3 使用字符串的方式加载用例

    import unittest
    import demo_01 #注意:要执行本模块的用例,需导入该模块
    
    class login(unittest.TestCase):
        def test01(self):
            self.assertIsInstance(23.1,float)
            print('test01')
    
        def test02(self):
            self.assertGreater(2,1,'前个值大于后一个值')
            print('test02')
    
        def test03(self):
            self.assertIs(1,1,'两值相等')
            print('test03')
    
    class login02(unittest.TestCase):
        def test04(self):
            self.assertIsInstance(23.1,float)
            print('test04')
    
        def test05(self):
            self.assertGreater(2,1,'前个值大于后一个值')
            print('test05')
    
        def test06(self):
            self.assertIs(1,1,'两值相等')
            print('test06')
    
    #使用字符串的方式加载用例
    if  __name__=='__main__':
        load_suite = unittest.TestLoader().loadTestsFromName('demo_01.login02') #⚠️导入本模块
        unittest.main(defaultTest='loadmodule_suite')

       3.4 组合两个模块下,不同类的case

    import unittest
    import demo_01
    import unit_test
    
    suite01 =unittest.TestLoader().loadTestsFromName('demo_01.login.test02')  #'模块1名.类名.方法名'
    suite02 =unittest.TestLoader().loadTestsFromName('unit_test.TestDemo.test_notequal')   #'模块2名.类名.方法名'
    
    main_suite =unittest.TestSuite()
    main_suite.addTests(suite01)
    main_suite.addTests(suite02)
    
    unittest.main(defaultTest='main_suite')
  • 相关阅读:
    用python写一个魔塔50层怪物伤害计算器
    一个奇怪的方法解决华为ENSP模拟器路由器启动后命令行一直“#”的问题
    安卓数据库sqllite查看工具Android Debug Database使用教程
    GNS3错误’Could not start Telnet console with command 'Solar-PuTTY.exe‘
    解决从其他地方拷贝过来的Android项目在本机不能运行(报错)的问题
    python不换行输出
    哈希查找对比普通遍历查找所需时间
    第二个爬虫之爬取知乎用户回答和文章并将所有内容保存到txt文件中
    我的第一个爬虫之爬取搜狗壁纸并按分类存入本地文件夹
    What is Double 11 in China? Is it a famous festival?
  • 原文地址:https://www.cnblogs.com/miaoxiaochao/p/12686951.html
Copyright © 2011-2022 走看看