其他分享
首页 > 其他分享> > Selenium3自动化测试【37】单元测试Unittest(2)

Selenium3自动化测试【37】单元测试Unittest(2)

作者:互联网

引言

unittest是Python标准库中自带的单元测试框架。unittest可以组织执行测试用例,并且提供了丰富的断言方法,可以判断测试用例是否通过,最终生成测试结果。


同步视频知识与系列知识内容,可关注:【公众号】:柒哥测试;【WX】:Lee-890;


1. UnitTest介绍

用uinittest单元测试框架可以进行web自动化测试。
由于unittest是Python标准库中自带的单元测试框架,因此安装完Python后就存在,无需单独安装。

2.UnitTest核心要素

unittest核心的要素是TestCase,TestSuite,TextTestRunner,Fixture。

2.1 TestCase:测试用例

一个测试用例是在unittest中执行测试的最小单元。它通过unittest提供的assert方法来验证一组特定的操作和输入以后得到的具体响应。unittest提供了一个名称为TestCase的基础类(unittest.TestCase),可以用来创建测试用例。

2.2 TestSuite:测试套件

一个测试套件(TestSuite)是多个测试用例的集合,是针对被测程序对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行。

2.3 TextTestRunner:测试执行器

测试执行器负责测试执行调度并且生成测试结果给用户。
TestTestRunner是运行测试用例的驱动类,其中的run方法可以执行TestCase、TestSuite。

2.4 TextTestResult:测试报告

测试报告用来展示所有执行用例的成功或者失败状态的汇总,执行失败的测试步骤的预期结果与实际结果,还有整体运行状况和运行时间的汇总。

2.5 Fixture:测试夹具

通过使用Fixture,可以定义在单个或多个测试执行之前的准备工作和测试执行之后的清理工作。

3. 工作流程

unittest的整个流程如下:

  1. 首先需要编写TestCase;
  2. 再把TestCase添加到TestSuite中;
  3. 再由TextTestRunner来执行TestSuite;
  4. 运行的结果保存在TextTestResult中。
    整个过程集成在unittest.main模块中。

4. UnitTest案例实战

4.1 UnitTest案例准备

通过PyCharm在工程目录下,创建UnitTestDemo的Python package,UnitTest的案例均存放在UnitTestDemo下。
1. 创建基础待测方法
在UnitTestDemo下新建mathfunc.py文件,代码如下:

加法,返回a+b的值

def add(a,b):
    return a+b

# 减法,返回a-b的值
def minus(a,b):
    return a-b

# 乘法,返回a*b的值
def multi(a,b):
    return a*b

# 除法,返回a/b的值
def divide(a,b):
    return a/b

2. 设计测试用例
为前面的测试方法设计测试用例,在UnitTestDemo下创建test_mathfunc.py,代码如下:

import unittest
from UnitTestDemo.mathfunc import *

class TestMathFunc(unittest.TestCase):
    """测试mathfunc.py"""

    def test_add(self):
        """测试加法add()"""
        self.assertEqual(3,add(1,2))
        self.assertNotEqual(3,add(2,2))

    def test_minus(self):
        """测试减法minus"""
        self.assertEqual(1,minus(3,2))

    def test_multi(self):
        """测试乘法multi"""
        self.assertEqual(6,multi(2,3))

    def test_divide(self):
        """测试除法divide"""
        self.assertEqual(2,divide(6,3))
        self.assertEqual(2.5,divide(5,2))

4.2 组织与设定测试用例的执行顺序

通过PyCharm在工程目录下,创建UnitTestDemo的Python package,UnitTest的案例均存放在UnitTestDemo下。
测试套件(TestSuite)是多个测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试。
通过TestSuite()的addTest()方法手动把TestCase添加到TestSuite中,或通过TestLoader把TestCase自动加载到TestSuite中。
1. 创建测试套件
执行单条用例调用addTest()方法,在UnitTestDemo下创建test_suite.py,代码如下:

import unittest
from UnitTestDemo.test_mathfunc import TestMathFunc

if __name__ == "__main__":
    suite = unittest.TestSuite()
    # addTest()添加单个TestCase
    suite.addTest(TestMathFunc("test_multi"))
    runner = unittest.TextTestRunner()
    runner.run(suite)

执行多条测试用例addTests()方法, test_suite.py代码如下:

import unittest
from UnitTestDemo.test_mathfunc import TestMathFunc

if __name__ == "__main__":
    suite = unittest.TestSuite()
    # addTest()添加单个TestCase
    #suite.addTest(TestMathFunc("test_multi"))
    # addTests()执行加法、减法、除法
    tests = [TestMathFunc("test_add"),TestMathFunc("test_divide"),TestMathFunc("test_minus")]
    suite.addTests(tests)
    runner = unittest.TextTestRunner()
    runner.run(suite)

精讲视频

如果你觉的文章读的不过瘾,可以查看详细的视频教程。

测试学习路线如下

热销图书

图书京东、当当有售
京东图书地址
当当图书地址
0.9733767060093851.png

同步视频知识与系列知识内容,欢迎可关注:【公众号】:柒哥测试;或【WX】:Lee-890交流

标签:TestSuite,Selenium3,unittest,37,TestCase,测试用例,测试,test,Unittest
来源: https://www.cnblogs.com/starpoint/p/16325211.html