| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> unittest自动化测试-基本概念、用法 -> 正文阅读 |
|
[开发测试]unittest自动化测试-基本概念、用法 |
一、unittest基本概念1.1 unittestPython中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。 1.1.1 单元测试框架单元测试框架:指的是在编程过程中,针对程序的最小单元(函数,方法)进行正确性的测试框架。 1.1.2 自动化测试框架自动化测试框架:(1)提高测试效率,降低维护成本;(2)提高测试准确性,增加代码的重用性和可靠性; 单元测试框架是自动化测试框架的其中组成部分,主要用于管理和运行测试用例。 1.1.3 单元测试框架对比 python:unittest,pytest java:junit,testing 1.2 各模块的作用
? 1.3 导入unittestimport unittest #导入unittest模块 import HTMLTestRunner #导入HTMLTestRunner 报告模板模块 from BeautifulReport import BeautifulReport #导入BeautifulReport 报告模板模块 1.4 生成测试报告的方式报告模板HTMLTestRunner模块 报告模板BeautifulReport 1.5 基本用法
运行结果: ---------------------------------------------------------------------- OK (1)import unittest? #第一行是导入 unittest 这个模块; (2)class TestStringMethods(unittest.TestCase)? #class 这一行是定义一个测试的类,并继承 unittest.TestCase 这个类; (3)test_upper、test_isupper、test_split为测试用例:测试用例的名称要以 test 开头; (4).assert 为断言,断言其实就是拿实际结果和期望结果去对比; 如:
?(5)unittest.main()是运行主函数,运行后会看到测试结果; 1.6 使用?unittest.TestSuite
运行结果: ---------------------------------------------------------------------- OK Process finished with exit code 0 1.7 unittest的运行方式1. 命令行的运行方式 python -m :以脚本(命令行)的方式来运行测试用例。 -v:以表详细的方式运行测试用例。? ? ?2、通过main运行 ?1.8 测试用例的运行结果?1.9 测试用例的执行顺序?1.10 unittest多种测试用例加载方式1、通过套件加载测试用例?2、加载一个目录下所有的测试用例 二、unittest 各模块详解2.1 unittest模块的各个属性说明(1)unittest.TestCase:TestCase类,所有测试用例类继承的基本类 (2)unittest.main():使用它可以方便的将一个单元测试模块变为可直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行它们。执行方法的默认顺序是:根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行。 (3)unittest.TestSuite():unittest框架的TestSuite()类是用来创建测试套件的。 (4)unittest.TextTextRunner():unittest框架的TextTextRunner()类,通过该类下面的run()方法来运行suite所组装的测试用例,入参为suite测试套件。 (5)unittest.defaultTestLoader():?defaultTestLoader()类,通过该类下面的discover()方法可自动更具测试目录start_dir匹配查找测试用例文件(test*.py),并将查找到的测试用例组装到测试套件,因此可以直接通过run()方法执行discover。
(6)unittest.skip():装饰器,当运行用例时,有些用例可能不想执行等,可用装饰器暂时屏蔽该条测试用例。 2.1.1?TestCase类的属性(1)setUp():setUp()方法用于测试用例执行前的初始化工作。如测试用例中需要访问数据库,可以在setUp中建立数据库连接并进行初始化。如测试用例需要登录web,可以先实例化浏览器。 (2)tearDown():tearDown()方法用于测试用例执行之后的善后工作。如关闭数据库连接。关闭浏览器。 (3)assert*():一些断言方法:在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的。
2.1.2?TestSuite类的属性(1)addTest() addTest():?addTest()方法是将测试用例添加到测试套件中,如下方,是将test_baidu模块下的BaiduTest类下的test_baidu测试用例添加到测试套件。
?2.1.3?TextTextRunner的属性run():?run()方法是运行测试套件的测试用例,入参为suite测试套件。
参考文献: 【1】单元测试unittest及报告生成(两种报告模板) - 我已不爱凯蒂 - 博客园 【2】?unittest --- 单元测试框架 — Python 3.10.4 文档 【3】python接口自动化(二十一)--unittest简介(详解) - 北京-宏哥 - 博客园 【4】unittest_核心概念(进阶) - Old_Arthurㄟ - 博客园? |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/18 1:32:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |