小米手表网站,郑州百姓网二手货车,wordpress门户cms,无法访问iis网站本文将介绍 unittest 自动化测试用例编写及执行的相关内容#xff0c;包括测试用例编写、测试用例执行、测试报告等内容。
官方文档#xff1a;
https://docs.python.org/zh-cn/3/library/unittest.mock.html
1. 测试用例编写
在 unittest 中#xff0c;一个测试用例通常…
本文将介绍 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(streamf, verbosity2)runner.run(suite)在上面的示例中我们使用 unittest.TestLoader 类从测试类 TestAdd 中加载测试用例并使用 unittest.TextTestRunner 类生成文本报告。使用 stream 参数可以将报告输出到指定文件中。
注意
生成测试用例报告时可以设置不同的输出格式、输出位置和输出等级以满足不同的需求。同时还可以使用第三方库 HTMLTestRunner 来生成漂亮的HTML报告以便进行更加直观的分析和展示。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你