unittest介绍

一、unittest学习得内容:

unittest内容:
1.unittest介绍(各个组件的介绍)
2.测试固件
  a.setUp&tearDown
  b.setUpClass&tearDownClass
  c.程序执行的顺序
  d.测试用例的编写方式
3.测试执行
4.构建测试套件
  a.用例按顺序执行(addTest)
  b.测试用例执行顺序的详解
  c.按测试类执行(makeSuite)
  d.加载测试类(TestLoader)
  e.按测试模块来执行
  f.优化测试套件
5.分离测试固件(模块化的应用)
6.测试断言
assertEqual(a,b)
assertTrue(x)
assertIn(a,b)
测试断言注意事项
不正确的使用if
不正确的使用异常
7.批量执行测试用例(discover)
  a.获取所有测试用例
  b.discover方法的解读
8.生成测试报告
  a.Python2生成测试报告
  b.Python3生成测试报告
  c.测试报告的注意事项
  d.新增当前时间
  https://pypi.org/project/HTMLTestRunner/
9.unittest的缺陷
10.Coverage的应用

二、python+unittest测试框架

在写测试类以及测试用例时要规定一个命名习惯,一般测试类可以以Test开头,也可以以Test结尾。测试用例一般是以test开头。
import unittest    #导入unittest包

#创建测试类:从unittest.TestCase继承
classRomanNumeralConverterTest(unittest.TestCase):
    def setUp(self):   #初始化测试环境
  
    def tearDown(self):  #还原测试环境
    def test_(self):
#执行测试用例
if __name__ == "__main__":
    unittest.main()

注:setUp和tearDown可以选择是否需要

#将测试用例执行起来

f __name__=="__main__":  

   # loadTestsFromTestCase : 从ebloodLoginAndroidTest类中寻找测试用例

   # TestLoader用来将测试用例加入到测试组中

   suite =unittest.TestLoader().loadTestsFromTestCase(RomanNumeralConverterTest)

   # TextTestRunner是来执行测试用例的;verbosity标识日志等级

  unittest.TextTestRunner(verbosity=2).run(suite)

下图是Appium python 框架图片

 

三、unittest框架介绍

unittest基本原理

整个平台的搭建使用的是python的unittest测试框架,这里简单介绍下unittest模块的简单应用。

unittest是python的标准测试库,相比于其他测试框架是python目前使用最广的测试框架。

unittest有四个比较重要的概念是test fixture, test case, test suite, test runner, 。

test fixture:The test fixture is everything we need to have in place to exercise the sut。简单来说就是做一些测试过程中需要准备的东西,比如创建临时的数据库,文件和目录等,其中 setUp() 和 setDown() 是最常用的方法

test case:用户自定义的测试case的基类,调用run()方法,会依次调用setUP方法、执行用例的方法、tearDown()方法。

test suite:测试用例集合,可以通过addTest()方法手动增加Test Case,也可通过TestLoader自动添加Test Case,TestLoader在添加用例时,会没有顺序。

test runner:运行测试用例的驱动类,可以执行TestCase,也可执行TestSuite。执行后TestCase和Testsuite会自动管理TestResult。

通过dir(unittest),我们可以看到unittest全部的属性和方法,他们的关系如下图所示。

 

 
unittest主要类关系

正常调用unittest的流程是,TestLoader 自动将测试用例TestCase中加载到TestSuite里,TextTestRunner调用TestSuite的run方法,顺序执行里面的TestCase中以test开头的方法,并得到测试结果TestResult。在执行TestCase过程中,先进行SetUp()环境准备,执行测试代码,最后tearDown()进行测试的还原。

其中TestLoader在加载过程中,进行添加的TestCase是没有顺序的。一个TestCase里如果存在多个验证方法的话,会按照方法中test后方首字母的排序进行执行。

可以通过手动调用TestSuite的addTest、addTests方法来动态添加TestCase,这样既可以确定添加用例的执行顺序,也可避免TestCase中的验证方法一定要用test开头。

在搭建接口测试平台的时候,每新建一个接口的时,会自动生成一个 TestCase,选中运行单个接口时,使用TextTestRunner直接调用单个TestCase。运行多个接口时,手动给TestSuite添加TestCase,供TextTestRunner调用并生成测试结果

posted @ 2019-02-25 10:47  燕鸻  阅读(148)  评论(0)    收藏  举报