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实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图