Python自动化学习Unittest框架

#一、 测试用例定义

#定义测试类
class 测试类名(unittest.TestCase):
      
#测试用例类
def test_测试用例名(self):
 # 断言
     self.assertEqual(reason1, reason2)


#主函数
if __name__ == '__main__':
  测试类名.main()

## 二、unittest模块说明

1. TestCase:一个TestCase的实例就是一个测试用例,是一个完整的测试流程,包括测试前准备环境的搭建(setUp),实现测试过程的代码(run),测试后环境的还原(tearDown).
2. Test Suite:把多个测试用例集合在一起来执行。可以通过addTest加载TestCase到Test Suite(测试套件)中,从而返回一个TestSuite实例。

# 方法1:可以通过addTest()加载TestCase到TestSuite中。用于少量的测试用例
# 创建测试套件
suite = unittest.TestSuite()
# 给测试套件添加测试用例
suite.addTest(测试类名('测试用例名'))


#方法2:同时添加多个测试用例到套件之中
# 创建测试套件
suite = unittest.TestSuite()
# 给测试套件添加测试用例
cases = [测试类名('测试用例名1'),测试类名('测试用例名2')]
# addTests可以接受一个列表
suite.addTests(cases)


# 方法3:添加整个类中的测试用例到套件中
# 创建测试套件
suite = unittest.TestSuite()
# 给该测试类添加测试用例
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(测试类名))


# 方法4:添加文件中的某些测试用例到套件中
#模糊匹配
suite=unittest.defaultTestLoader.discover("路径",'文件名')


3. Test Runner:测试的执行,通过TextTestRunner类提供的run()方法来执行Test Suite/TestCase。Test Runner可以使用图形界面,文本界面,或者返回一个特殊的值的方式来表示测试执行的结果。



import unittest
from day04.CountTest import CountTest
# 创建测试套件
suite = unittest.TestSuite()
# 给该测试类添加测试用例
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(测试类名))
# 创建测试执行器
runner = unittest.TextTestRunner()
# 执行套件
runner.run(suite)


4. Test Fixture:对一个测试用例环境的初始化和清除。通过覆盖TestCase的setUp()和tearDown()方法来实现。tearDown()为下一个测试用例提供一个干净的环境。
 

 ```python
  _______________这是setUpModule_____________
  _______________这是setUpClass_____________
  _______________这是setUp_____________
  ***********test_add************
  _______________这是tearDown_____________
  _______________这是tearDownClass_____________
  _______________这是tearDownModule_____________

## 三、测试用例跳过

# @unittest.skip("该用例所对应的功能未开发完成")
# skipIf 如果为true则跳过不执行,
# @unittest.skipIf(5>4, "因为我要测试一下")
# 如果为true则报错,如果为false则跳过
# @unittest.skipUnless(3>4, "因为我要测试一下")
# 不论结果如何都是失败
# @unittest.expectedFailure("功能未能实现")
# 如果断言失败,不计入执行case数目中

## 四、生成测试报告



import unittest
import time
import os
from common.HTMLTestRunner import HTMLTestRunner
# 测试报告的存放路径
report_path = "./report/"
# 测试报告的标题
report_title = "冒烟测试"
# 测试的描述
report_desc = "本次测试是对于加减法功能的测试"
# 做一个判断,如果有了report目录直接使用,没有则创建
if not os.path.exists(report_path):
    # 没有则创建
    os.mkdir(report_path)
# 构建获取时间日期,作为报告的名字,避免重复
gettime = time.strftime("%Y%m%d%H%M%S")
# 构建测试报告存放路径和名字
filepath = report_path + f"report{gettime}.html"
# 执行测试,生成测试报告
# 执行加载用例的路径
case_path = "./test_case"
# 模糊匹配
suite = unittest.defaultTestLoader.discover(start_dir=case_path, pattern='C*.py')
with open(filepath, "wb") as f1:
    # 使用HTMLTestRunner
    # 第一个参数指的生成的测试报告给那个文件写入
    # 第一个参数是测试用例的标题
    # 第三个参数是对这一次测试的描述
    runner = HTMLTestRunner(f1, title=report_title, description=report_desc)
    # 执行测试套件
    runner.run(suite)

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值