python之unittest框架入门

2024-05-13 02:18
文章标签 python 入门 框架 unittest

本文主要是介绍python之unittest框架入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

单元测试框架

        unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。今天笔者就总结下如何使用unittest单元测试框架来进行WEB自动化测试。

文档资料

https://docs.python.org/2/library/unittest.html

测试用例开发

1.用import语句引入unittest模块

import unittest

2.测试类应继承自TestCase类

# 继承自unittest.TestCase类
class UserTestCase(unittest.TestCase):def setUp(self):print("==tearDown==")self.name="AAA"def tearDown(self):print("==tearDown==")

3.setUp()定义测试前的初始化步骤;tearDown()定义测试后的清除步骤,在每个测试方法运行时都会被调用

注意

  1. 所有类中的方法的入参均为self,定义方法的变量是self.<变量名>
  2. 定义测试用例(方法),以test开头命名,否则不会被执行。因为unittest.main()方法会搜索该模块下所有以test开头的测试用例方法并自动执行它们
  3. 自己写的py测试文件不能用unittest.py命名,否则import unittest后会找不到TestCase类

测试套件

可以用unittest.TestSuite()类表示一个测试用例集,主要作用是:

1.用来确定测试用例的执行顺序,执行流程测试,而非单元测试

2.使用TestLoader加载TestCase到TestSuite

3.verbosity参数可以控制执行结果的输出,0是简单报告,1是一般报告,2是详细报告,默认为1

4.TextTestRunner()文本测试用例运行器

5.可以用run()方法运行测试套件的测试用例,入参为suite测试套件

if __name__ == '__main__':suite = unittest.TestSuite()suite.addTest(UserTestCase("test01"))suite.addTest(UserTestCase("test02"))suite.addTest(UserTestCase("test03"))suite.addTest(UserTestCase("test04"))runner = unittest.TextTestRunner(verbosity=0)runner.run(suite)

HTMLTestRunner

HTMLTestRunner是Python标准库的unittest模块的扩展,可以生成HTML的测试报告,但无法通过pip安装。

安装方法是下载HTMLTestRunner.py文件后,将其放入..\python\Lib目录下

注意点:py2和py3语法不一样,导致HTMLTestRunner在py3不兼容,解决方法是导入py3版的HTMLTestRunner.py文件。

import HTMLTestRunner
import timeif __name__ == '__main__':suite = unittest.TestSuite()suite.addTest(UserTestCase("test01"))suite.addTest(UserTestCase("test02"))suite.addTest(UserTestCase("test03"))suite.addTest(UserTestCase("test04"))# 文件以当前时间为前缀,以便每次执行生成不同的报告文件
file_prefix = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())
# 如果文件存在则覆盖,不存在则创建
fp = open("./"+file_prefix+"_result.html", "wb")
# 使用HTMLTestRunner框架生成html格式的测试报告
HTMLTestRunner.HTMLTestRunner(stream=fp, title="小D课堂 测试报告", description=u'测试用例执行情况')
runner.run(suite)
fp.close()

测试报告优化:为每一个测试用例添加说明

def test01(self):u'test01方法说明:首页登录测试'

 

这篇关于python之unittest框架入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/984404

相关文章

Python文件操作与IO流的使用方式

《Python文件操作与IO流的使用方式》:本文主要介绍Python文件操作与IO流的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python文件操作基础1. 打开文件2. 关闭文件二、文件读写操作1.www.chinasem.cn 读取文件2. 写

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

Python Selenium动态渲染页面和抓取的使用指南

《PythonSelenium动态渲染页面和抓取的使用指南》在Web数据采集领域,动态渲染页面已成为现代网站的主流形式,本文将从技术原理,环境配置,核心功能系统讲解Selenium在Python动态... 目录一、Selenium技术架构解析二、环境搭建与基础配置1. 组件安装2. 驱动配置3. 基础操作模

Python将字库文件打包成可执行文件的常见方法

《Python将字库文件打包成可执行文件的常见方法》在Python打包时,如果你想将字库文件一起打包成一个可执行文件,有几种常见的方法,具体取决于你使用的打包工具,下面就跟随小编一起了解下具体的实现方... 目录使用 PyInstaller基本方法 - 使用 --add-data 参数使用 spec 文件(

Python MCPInspector调试思路详解

《PythonMCPInspector调试思路详解》:本文主要介绍PythonMCPInspector调试思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录python-MCPInspector调试1-核心知识点2-思路整理1-核心思路2-核心代码3-参考网址

将图片导入Python的turtle库的详细过程

《将图片导入Python的turtle库的详细过程》在Python编程的世界里,turtle库以其简单易用、图形化交互的特点,深受初学者喜爱,随着项目的复杂度增加,仅仅依靠线条和颜色来绘制图形可能已经... 目录开篇引言正文剖析1. 理解基础:Turtle库的工作原理2. 图片格式与支持3. 实现步骤详解第

Python的pip在命令行无法使用问题的解决方法

《Python的pip在命令行无法使用问题的解决方法》PIP是通用的Python包管理工具,提供了对Python包的查找、下载、安装、卸载、更新等功能,安装诸如Pygame、Pymysql等Pyt... 目录前言一. pip是什么?二. 为什么无法使用?1. 当我们在命令行输入指令并回车时,一般主要是出现以

Python解决雅努斯问题实例方案详解

《Python解决雅努斯问题实例方案详解》:本文主要介绍Python解决雅努斯问题实例方案,雅努斯问题是指AI生成的3D对象在不同视角下出现不一致性的问题,即从不同角度看物体时,物体的形状会出现不... 目录一、雅努斯简介二、雅努斯问题三、示例代码四、解决方案五、完整解决方案一、雅努斯简介雅努斯(Janu

使用Python和SQLAlchemy实现高效的邮件发送系统

《使用Python和SQLAlchemy实现高效的邮件发送系统》在现代Web应用中,邮件通知是不可或缺的功能之一,无论是订单确认、文件处理结果通知,还是系统告警,邮件都是最常用的通信方式之一,本文将详... 目录引言1. 需求分析2. 数据库设计2.1 User 表(存储用户信息)2.2 CustomerO