python 集成测试框架,python接口unittest测试框架

  python 集成测试框架,python接口unittest测试框架

  1.什么是单元测试?单元测试的对象是什么?

  1:什么是单元测试?根据定义,单元测试意味着测试单个模块、单个类或单个功能,这通常是开发出来的。按照阶段划分,一般是单元测试、集成测试、系统测试、验收测试。

  2:为什么要做单元测试?1)单元测试之后,就是集成测试。单个功能模块测试通过后,可以集成单个功能模块做集成测试。为了从底层发现bug,减少合成后的问题。

  2)越早发现bug越好,这样可以更早发现问题,否则问题会累积到后面。做错了就要推倒重来,浪费时间和金钱,太浪费了!

  3)对于我们的测试,我们进行单元测试来执行测试用例。

  二。单元测试的语法介绍

  1.引入自己的单元测试类:导入unit test创建一个测试类来测试你要测试的目标对象:class test math(unittest . test case)

  2.引入要测试的代码模块或类名:from class_4_test import add。

  3.创建一个单元测试用例来测试测试目标:def test_add(self)语法:函数以test开头,然后拼接下划线,再添加函数名。里面的内容是创建一个实例来调用方法。

  4.引入断言,并判断测试结果。断言相等(实际结果,预期结果,如果有错误,处理它)。

  Self.assertEqual(result_add,6,答案不等于6,所以答案是错的!)

  5.引入异常判断,用异常判断处理测试用例:try.除了错误基类:AssertionError。

  6.引入测试集以促进批量单元测试。一个完整的单元测试很少只执行一个测试用例,开发人员通常需要编写多个测试用例来完整测试某个软件功能。这些相关的测试用例称为测试用例集,由TestSuite类表示,使用TestSuite(),使用addTest执行测试集,使用TextTestRunner(),使用runner.run(suite)

  7:单元测试参数化(少量数据,十组以内)安装:pip安装参数化#通过pip安装。记得在使用pip命令之前安装pip和setuptools。

  用途:引入参数化

  从参数化导入参数化

  使用示例:

  类TestMath(unittest。测试用例):

  @ parametered . expand([

  (01, 1, 1, 2),

  (02, 2, 2, 4),

  (03, 3, 3, 6),

  ])

  def test_add(self.name,a,b,c):

  self.assertEqual(数学(a,b)。添加(),c)

  打印(测试数据为:,名称)参数化的详情请见https://github.com/wolever/parameterized。

  8.测试报告,介绍htmlreport模板1。单元测试后生成测试报告。前提,把测试报告模板HTMLTestRunner.py放在python Lib目录下。

  导入html报告

  导入时间

  #关键代码

  Suite=unittest。TestSuite() #一个收集所有单元测试用例的对象。

  suite . add test(TestMathFunc( test _ add ))

  .

  #执行测试集

  now=time . strftime( % Y-% M-% d _ % H _ % M _ % S )

  File=现在复制结果。html #给文件名添加时间

  Fp=open(filepath, wb) #wb表示二进制文件的写操作。

  #生成报告的标题,描述

  runner=HTMLTestRunner。HTMLTestRunner(stream=fp,title=Python测试报告,description=这是Python报告)

  runner.run(套件)

  9:示例导入单元测试

  从.进口.#介绍您想要测试的模块或类。例如,这是一个带有加法、加法和减法子函数的数学类。

  类TestMath(unittest。测试用例):

  定义设置(自身):

  #初始化工作,执行初始操作。

  及格

  Test_ add (self): #注意必须以Test_开头

  #编写测试代码

  T=Math() #首先实例化数学类

  result=t.add(5,6)

  Self.assertEqual(result,预期值,错误此外,预期值不等于实际值)# Assertion

  定义拆卸(自身):

  #收尾工作,在单元测试之后完成工作。

  及格

  三。代码部分

  1.我们先定义一个需要测试的目标类数学。它的文件名是mathfunc.pyclass Math:

  定义添加(自身,a,b):

  返回a b

  极好的减(自身,a,b):

  返回甲-乙

  多重定义(自身、a、b):

  返回a * b

  定义除(自我,a,b):

  返回a/b

  2: 创建测试类,它的文件名是test_mathfunc.pyimport单元测试

  从数学函数导入数学#引入你要测试的模块或者是类,打个比方,这里写了一个数学类,里面有加法添加,减法潜水艇函数

  类TestMath(单元测试.测试用例):

  定义设置(自身):

  #初始化工作,这里面做初始操作

  及格

  定义测试添加(自身):#注意这里必须以测试_开头

  尝试:

  t=Math() #先实例化数学类

  self.assertEqual(t.add(5,6),11,加法运行出错,实际值不等于期望值) #断言

  除了断言错误为e:

  打印(五)

  def测试减(自身):

  尝试:

  t=数学()

  self.assertEqual(t减(6,3),3,减法运行出错,实际值不等于期望值)

  除了断言错误为e:

  打印(五)

  定义测试_多重(自身):

  尝试:

  t=数学()

  self.assertEqual(t.multi(3,3),9,’乘法运行出错,实际值不等于期望值)

  除了断言错误为e:

  打印(五)

  def测试_除(自身):

  尝试:

  t=数学()

  self.assertEqual(t.divide(6,3),2.0,除法运行出错,实际值不等于期望值)

  除了断言错误为e:

  打印(五)

  定义拆卸(自身):

  #扫尾工作,这里面做单元测试结束后的工作

  及格

  3: 创建测试集,它的文件名为test_suite.pyimport单元测试

  从test_mathfunc导入测试数学

  #创建测试集合

  suite=unittest .测试套件()#一个对象,集合所有的单元测试用例

  套房。添加测试(测试数学( test _ add ))

  套房。添加测试(测试数学( test _ MINUS ))

  套房。添加测试(测试数学( test _ multi ))

  套房。添加测试(测试数学( test _ divide ))

  #创建一个对象来调用测试集合

  runner=unittest .TextTestRunner()

  runner.run(套件)

  4: 参数化@参数化,传递一组数据,我们修改之前的测试_数学函数。巴拉圭文件导入单元测试

  从数学函数导入数学

  从参数化导入参数化

  类TestMath(单元测试.测试用例):

  定义设置(自身):

  及格

  @ parametered。展开([

  (01, 1, 1, 2),

  (02, 2, 2, 4),

  (03, 3, 3, 6),

  ])

  def test_add(self,name,a,b,c):

  尝试:

  m=数学()

  self.assertEqual(m.add(a,b),c,’加法计算错误)

  除了断言错误为e:

  打印(五)

  否则:

  打印(测试数据是: ,名称)

  @ parametered。展开([

  (04, 3, 1, 2),

  (05, 6, 3, 3),

  (06, 5, 1, 2),

  ]

  )

  def test_minus(self,name,a,b,c):

  尝试:

  m=数学()

  self.assertEqual(m减(a,b),c,’减法计算错误)

  除了断言错误为e:

  打印(五)

  否则:

  打印(测试数据是: ,名称)

  @ parametered。展开([

  (07, 3, 3, 9),

  (08, 3, 2, 6),

  (09, 1, 5, 5),

  ])

  def test_multi(self,name,a,b,c):

  尝试:

  m=数学()

  self.assertEqual(m.multi(a,b),c,’乘法计算错误)

  除了断言错误为e:

  打印(五)

  否则:

  打印(测试数据是: ,名称)

  @ parametered。展开([

  (10, 5, 2, 2.5),

  (11, 4, 1, 4.0),

  (12, 10, 5, 2.5),

  ])

  def test_divide(self,name,a,b,c):

  尝试:

  m=数学()

  self.assertEqual(m.divide(a,b),c,除法计算错误)

  除了断言错误为e:

  打印(五)

  否则:

  打印(测试数据是: ,名称)

  定义拆卸(自身):

  及格

  5: 引入超文本标记语言报告模板,生成测试报告

  导入单元测试

  从test_mathfunc导入TestMathFunc

  导入乱码

  导入时间

  #创建测试集合

  套房。添加测试(TestMathFunc( test _ MINUS ))

  套房。添加测试(TestMathFunc( test _ multi ))

  套房。添加测试(TestMathFunc( test _ divide ))

  现在=时间。strftime( % Y-% M-% d _ % H _ % M _ % S )

  #执行测试用例集合

  filepath=pyResult 现在是 . html

  fp=打开(文件路径, wb )

  #生成测试报告的标题,描述

  runner=HTMLTestRunner .HTMLTestRunner(stream=fp,title=Python测试报告,描述=这是计算机编程语言报告)

  runner.run(套件)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: