python selenium3 - unittest单元测试框架介绍(6)

 

1. 单元测试

unittest:python自带,最基础的单元测试框架

单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。

 

 

2. 重要概念

Unittest的工作原理:写好TestCase——>TestLoader加载TestCase到TestSuite中——>TextTestRunner运行TestSuite,运行结果保存在TextTestResult中

单元测试框架unittest–实例

Test Fixture 对一个测试用例环境的搭建和销毁,就是一个Fixture,通过覆盖TestCase的setUP()和tearDown()方法来实现

TestCase 测试用例

TestLoader 是用来加载TestCase到TestSuite中的

TestRunner 是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

TestSuite 多个测试用例集合在一起,就是TestSuite

注:测试用例的执行顺序可以由测试套件的添加顺序控制,而main()方法只能按照测试类、方法的名称来执行测试用例

 

3. 断言方法

assertEqual(a, b)判断a==b

assertNotEqual(a, b)判断a!=b

assertTrue(x) bool(x) is True

assertFalse(x)bool(x) is False

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 not in b

assertIsInstance(a, b) isinstance(a, b)

assertNotIsInstance(a, b) not isinstance(a, b)

 

4. discover方法

discover(start_dir, pattern ='test *.py', top_level_dir = None )

1. start_dir:要测试的模块名或测试用例目录;

2. pattern='test*.py':表示用例文件名的匹配原则,下面的例子中匹配文件名为以“test”开头的“.py”文件,星号“*”表示任意多个字符;

3. top_level_dir=None:测试模块的顶层目录,如果没有顶层目录,默认为None;

相比于addTest()方法,discover()方法更方便高效,也可以提高测试反馈速率。

PS:使用discover()方法,切记测试用例中需要执行的测试方法必须以test开头,否则无法加载!!!

           

5.用例执行顺序

unittest框架默认根据ACSII码的顺序加载测试用例,数字与字母的顺序为:0~9,A~Z,a~z

 

6. 执行多级目录执行

  • 执行多级目录,只需要在每个子目录下面添加__init__文件即可

 

7. 装饰器

unittest.skip(原因) 无条件的跳过测试
unittest.skipIf(条件, 原因) 如果条件为真,就跳过测试;否则执行测试
unittest.skipUnless(条件, 原因) 如果条件为真,就执行测试;否则跳过测试
unittest.expectedFailure 预期失败。执行结果失败,pass;执行结果成功,fail

 

8. Fixtures

除了用例的fixtures,unittest还提供了更大范围的fixtures,如针对模块和类的

  • 1. setUpModule/tearDownModule:在整个模块的开始于结束是被执行
  • 2. setUpClass/earDownClass:在测试类的开始与结束时被执行
  • 3. setUp/tearDown:在测试用例的开始与结束时被执行
  • 注:cls.driver和 self.driver的区别使用

 

 

posted @ 2021-11-11 14:37  小丸子姐姐  阅读(35)  评论(0编辑  收藏  举报