​自动化测试框架设计-03单元测试框架

测试框架基本能力

一款测试框架应该具备以下基本能力:

  • test case: 从程序层面只有方法函数等,如何定义一条测试用例?不同的测试框架有不同的规则,例如大部分测试框架以test开头的方法/函数 识别为一条用例。

  • test fixture: 在运行测试用例前后往往需要完成一些前置/后置的工作,例如用例执行之前需要构造测试数据,用例执行之后需要清除测试数据等,这些工作就可以在测试fixture中完成。

  • test suite: 当框架需要执行用例之前需要查找并添加用例到一个集合中,我们一般称之为测试套件。

  • test runner: 测试运行器主要用例执行测试套件中的用例,并生成日志或报告。

  • assert: 断言主要用于检查用例的结果是否正确,从而判定用例成功/失败。

如果具备了以上能力,那么我们就可以视其为一款测试框架了。

常见单元测试框架

在Python语言中有很多优秀的单元测试框架,这里我们做个简单的介绍。

  • unittest

unittest 单元测试框架是受到 JUnit 的启发,与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框架独立。

相信大家对unittest并不陌生,他现在被纳入Python语言标准库,当你安装好Python就可以使用他了。

简单示例

# test_ut.py
import unittest


class MyTest(unittest.TestCase):

    def test_case(self):
        self.assertEqual(2+2, 4)


if __name__ == '__main__':
    unittest.main()

运行结果:

.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
  • QTAF

Testbase是所有QTA测试项目的基础,主要提供测试用例管理和执行、测试结果和报告、测试项目管理配置等功能。

QTAF是由腾讯开源的一款测试工具(框架),其设计风格与unittest比较相似。QTA是腾讯公司部门的缩写,我们也可以称其为Testbase。

# qtaf_demo.py
from testbase.testcase import TestCase


class HelloTest(TestCase):
    """
    第一条用例
    """
    owner = "foo"
    status = TestCase.EnumStatus.Ready
    priority =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值