python自动化测试框架:unittest测试用例编写及执行

news/2024/11/16 9:26:56/

本文将介绍 unittest 自动化测试用例编写及执行的相关内容,包括测试用例编写、测试用例执行、测试报告等内容。

官方文档:

https://docs.python.org/zh-cn/3/library/unittest.mock.html

1. 测试用例编写

在 unittest 中,一个测试用例通常由三个组件组成:setup、test 和 teardown。其中,setup 和 teardown 分别用于测试用例的准备和清理工作,test 是实际执行测试的部分。

例如,测试一个函数 add 的功能;

代码实例:

#add函数def add(a, b):return a + b#测试用例import unittestclass TestAdd(unittest.TestCase):def setUp(self):print("setup")def test_add(self):print("test_add")self.assertEqual(add(1, 2), 3)def tearDown(self):print("teardown")

上面的代码中定义了一个名为 TestAdd 的测试类,其继承 unittest.TestCase 类。在测试类中定义了三个方法:setUp、test_add 和 tearDown。

在 setUp 方法中,编写测试用例的准备工作。在 test_add 方法中,我们编写了实际的测试代码。在本例中,使用了 assertEqual 方法来判断 add 函数的返回值是否等于预期值。

注意:

在编写测试用例时,通常要测试多种情况,需要编写多个测试方法。

前面的文章中也反复强调过unittest 中,测试方法的命名必须以 test_ 开头,以便被 unittest 框架自动识别为测试方法。

2. 测试用例执行

1)指定测试方法执行顺序

默认情况下,unittest 框架会按照测试方法的名称的字典序执行测试用例。若要控制测试用例执行的顺序,可以使用 TestSuite 类。

例如,将上面的测试用例放到一个名为 suite 的测试套件中,并按照 test_add、setUp、test_add、tearDown 的顺序执行:

if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(TestAdd('test_add'))
suite.addTest(TestAdd('setUp'))
suite.addTest(TestAdd('test_add'))
suite.addTest(TestAdd('tearDown'))
runner = unittest.TextTestRunner()runner.run(suite)

注意:

测试用例执行的顺序并不是固定的,测试用例之间存在依赖关系,有时候会出现执行顺序不符合预期的情况。因此,在编写测试用例时,需要注意不要产生测试用例之间的耦合或者尽量降低耦合度。

2) 指定测试方法运行

有时我们只想运行一个或几个测试方法,而不是运行整个测试用例,这时候可以使用 unittest 框架提供的参数化运行方式,来实现运行指定测试方法。

例如,仅运行上面的 TestAdd 测试类中的 test_add 测试方法:

if __name__ == '__main__':unittest.main(argv=['', 'TestAdd.test_add'])

在上述代码示例中,使用 unittest 框架提供的 argv 参数,来指定要运行的测试方法。其中,TestAdd 是测试类的名称,test_add 是测试方法的名称。多个测试方法之间可以使用空格分隔。

注意:

使用 argv 参数运行测试方法时,测试方法名称必须是完整的名称,包括测试类名称。否则,unittest 框架无法识别要运行的测试方法。

3)跳过测试方法执行

有时候,我们需要跳过某个测试方法,例如当测试环境不满足某些条件时,无法进行该测试方法。这时候可以使用 @unittest.skip 装饰器来跳过测试方法。

例如,跳过上面的 TestAdd 测试类中的 test_add 测试方法:

import unittest
class TestAdd(unittest.TestCase):
@unittest.skip("skip test_add")
def test_add(self):self.assertEqual(add(1, 2), 3)

在上述代码示例中,使用 @unittest.skip 装饰器对 test_add 测试方法进行跳过操作。在 skip 方法中可以指定跳过的原因。

注意:

测试方法中使用了 @unittest.skip 装饰器,那么该测试方法就不会被执行。如果想要恢复执行该测试方法,可以将装饰器注释掉或者删除。

3. 测试用例报告

自动化测试完成后需要生成测试报告,便于测试结果进行分析和统计。unittest 框架提供了多种方式来生成测试用例报告,例如使用 unittest.TextTestRunner 类生成文本报告、使用 HTMLTestRunner 第三方库生成HTML报告等。

例如,使用 unittest.TextTestRunner 类生成文本报告:

if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(TestAdd)
with open('test_report.txt', 'w') as f:
runner = unittest.TextTestRunner(stream=f, verbosity=2)runner.run(suite)

在上面的示例中,我们使用 unittest.TestLoader 类从测试类 TestAdd 中加载测试用例,并使用 unittest.TextTestRunner 类生成文本报告。使用 stream 参数可以将报告输出到指定文件中。

注意:

生成测试用例报告时,可以设置不同的输出格式、输出位置和输出等级,以满足不同的需求。同时,还可以使用第三方库 HTMLTestRunner 来生成漂亮的HTML报告,以便进行更加直观的分析和展示。


如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

END配套学习资源分享

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

加入我的软件测试交流qq群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

全套资料获取方式:


http://www.ppmy.cn/news/363542.html

相关文章

喜马拉雅xm文件转换为mp3?

我看了几种方法有检查网页代码复制下载的 有下载软件转换的,改文件名的 但是从源头上我还是推荐插件 喜马拉雅专辑下载器 (greasyfork.org) 直接转化下载

mp3转为pcm工具

首选需要引入依赖&#xff1a; <dependency><groupId>com.googlecode.soundlibs</groupId><artifactId>mp3spi</artifactId><version>1.9.5.4</version></dependency>再导入以下工具类&#xff0c;就可以开始玩耍了 import …

html教程转换mp3,kgm转换mp3图文版教程,值得收藏

KGM格式是酷狗音乐开通VIP后订阅后会员下载后的音乐存储格式。默认情况下只有酷狗音乐可以打开它。那么如何将kgm其转换为MP3&#xff1f;小编尝试了几种转换工具&#xff0c;只有格式工厂才有可以成功。下面对kgm转换mp3格式感兴趣的朋友随小编一起看看吧&#xff0c;希望对大…

音频如何转换mp3格式?

音频如何转换mp3格式&#xff1f;音频文件的格式可谓五花八门&#xff0c;种类比图片格式还要多很多&#xff0c;这也导致很多不常用的音频格式根本不好使用&#xff0c;因为很多播放器或者平台设置根本支持这些不常用的音频格式。不过大家也知道&#xff0c;mp3属于最常用的音…

怎样把mp3转换成mp4?

怎样把mp3转换成mp4&#xff1f;在日常电脑使用过程中&#xff0c;我们如果需要将mp3格式的音频文件转成mp4视频该怎么操作呢&#xff1f;很多人对音频和视频文件的编辑或者转换操作还一无所知&#xff0c;那是因为你还没有找到方法。 要想将MP3音乐转换为MP4格式&#xff0c;其…

杰林码在荧光细胞识别中的应用(一)

一、杰林码轮廓预测算法 本算法是基于我的《一种全新的图像变换理论的实验》系列博客中的算法构造的轮廓预测算法&#xff0c;能有效的进行细胞轮廓预测&#xff0c;而且从前景到背景支持50个深度层次的轮廓预测。优点&#xff1a; 1、支持各种清晰度和分辨率&#xff0c;通过…

mp3怎么转换成mp4?

大家都知道现在的自媒体平台特别多&#xff0c;很多伙伴不仅热衷于刷视频打发无聊的时间&#xff0c;更把发视频作为一种业余爱好&#xff0c;为忙碌的生活增添了些许的悠闲和快乐。但是很多小伙伴仅仅有音频文件&#xff0c;不会自己做视频&#xff0c;所以这个时候将音频MP3文…

android mp3转acc,acc转换mp3工具_Magic AAC to MP3 Converter V3.7 下载

Magic AAC to MP3 Converter 是一个非常专业的acc转换mp3工具&#xff0c;本acc转mp3工具可以批量转换AAC&#xff0c;MP4&#xff0c;m4a&#xff0c;MP3&#xff0c;WMA&#xff0c;WAV格式的音频文件为mp3格式。 此外您还可以使用Magic AAC to MP3 Converter来提取MPEG音频&…