IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Selenium3自动化测试【36】单元测试Unittest(1) -> 正文阅读

[开发测试]Selenium3自动化测试【36】单元测试Unittest(1)

引言

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

【2021】UI自动化测试:Selenium3自动化测试
(https://edu.csdn.net/course/detail/29953)
【测试全栈列视频课程】请点击我哦…
(https://edu.csdn.net/agency/59)

1. UnitTest介绍

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

2.UnitTest核心要素

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

2.1 TestCase:测试用例

  • 一个TestCase就是一个测试用例。
  • 一个测试用例就是一个完整的测试流程,包括测试前环境准备(SetUp),执行测试代码(run),以及测试后环境的还原(tearDown)。
  • 一个测试用例就是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。用户定义测试用例需要继承TestCase类。

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

2.2 TestSuite:测试套件

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

  • TestSuite()是测试用例集合;
  • 通过addTest()方法手动把TestCase添加到TestSuite中,也可通过TestLoader把TestCase自动加载到TestSuite(TestCases之间不存在现后顺序)。

2.3 TextTestRunner:测试执行器

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

2.4 TextTestResult:测试报告

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

2.5 Fixture:测试夹具

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

  • 对一个测试用例环境的搭建和销毁,就是一个Fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现;
  • 如在测试用例中需要访问数据库,那么可以在setUp()中建立数据库连接并进行初始化。测试用例执行后需要还原环境。 tearDown的过程很重要,要为以后的TestCase留下一个干净的环境。如在tearDown()中需要关闭数据库连接。

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)

如果你觉的文章读的不过瘾,可以查看详细的视频教程。
【2021】UI自动化测试:Selenium3自动化测试
(https://edu.csdn.net/course/detail/29953)
【测试全系列视频课程】请点击我哦…
(https://edu.csdn.net/agency/59)
学习路线如下
微信图片_20210816100905.png微信图片_202108161009051.png微信图片_202108161009052.png
图书京东、当当有售
京东: https://item.jd.com/12784287.html
当当: http://product.dangdang.com/29177828.html
0.9733767060093851.png

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 12:09:15  更:2022-04-28 12:09:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:17:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码