python接口自动化测试 —— unittest框架suite、runner详细使用!

1065 篇文章 25 订阅
722 篇文章 2 订阅

test suite

  • 测试套件,理解成测试用例
  • 一系列的测试用例,或测试套件,理解成测试用例的集合和测试套件的集合
  • 当运行测试套件时,则运行里面添加的所有测试用例

test runner

  • 测试运行器
  • 用于执行和输出结果的组件

test suite、test runner基础使用

单元测试类

 1 # 创建单元测试类,继承unittest.TestCase
 2 class testCase(unittest.TestCase):
 3 
 4     # 测试case
 5     def test_01(self):
 6         print("test01")
 7 
 8     def test_03(self):
 9         print("test03")
10 
11     def test_04(self):
12         print("test04")
13 
14     def test_05(self):
15         print("test05")

主函数

 1 if __name__ == '__main__':
 2     # 实例化测试套件
 3     suite = unittest.TestSuite()
 4     # 实例化第二个测试套件
 5     suite1 = unittest.TestSuite()
 6     # 添加测试用例 - 方式一
 7     suite.addTest(testCase('test_03'))
 8     suite.addTest(testCase('test_01'))
 9     suite1.addTest(testCase('test_03'))
10     suite1.addTest(testCase('test_01'))
11     # 添加测试用例 - 方式二
12     testcase = (testCase('test_05'), testCase('test_04'))
13     suite.addTests(testcase)
14     # 测试套件添加测试套件
15     suite.addTest(suite1)
16     # 实例化TextTestRunner类
17     runner = unittest.TextTestRunner()
18     # 运行测试套件
19     runner.run(suite)

运行结果

 1 test03
 2 test01
 3 test05
 4 test04
 5 test03
 6 test01
 7 ......
 8 ----------------------------------------------------------------------
 9 Ran 6 tests in 0.000s
10 
11 OK

包含知识点

  • 使用测试套件时,测试用例的执行顺序可以自定义,按照添加的顺序执行
  • 有两种添加测试用例的方式,推荐方式二,代码更少更快捷
  • ,传入的 tests 可以是list、tuple、set

addTests(tests)

  • 添加的测试用例格式是:

单元测试类名(测试用例名)

  • 使用测试套件执行测试用例的大致步骤是:实例化TestSuite - 添加测试用例 - 实例化TextTestRunner - 运行测试套件
  • 测试套件也可以添加测试套件
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

测试用例批量执行

单元测试类文件

前三个文件是包含了单元测试类的文件,第四个文件是负责运行所有单元测试类,不包含测试用例

列举某个单元测试类文件代码

 1 # 创建单元测试类,继承unittest.TestCase
 2 class testCase02(unittest.TestCase):
 3 
 4     # 测试case
 5     def test_07(self):
 6         print("testCase02 test07")
 7 
 8     def test_06(self):
 9         print("testCase02 test06")
10 
11     def test_11(self):
12         print("testCase02 test11")

test_run.py 代码

批量运行测试用例方式一:

 1 import unittest
 2 from learn.unittestLearning import test_case02
 3 from learn.unittestLearning.test_case03 import testCase03
 4 
 5 if __name__ == '__main__':
 6     # 通过模块
 7     testcase02 = unittest.TestLoader().loadTestsFromModule(test_case02)
 8     # 通过单元测试类
 9     testcase03 = unittest.TestLoader().loadTestsFromTestCase(testCase03)
10     # 通过模块字符串
11     testcase04 = unittest.TestLoader().loadTestsFromName('learn.unittestLearning.test_case04')
12     # 测试用例集
13     tests = [testcase02, testcase03, testcase04]
14     # 创建测试套件
15     suite = unittest.TestSuite(tests)
16     # 运行测试套件
17     unittest.TextTestRunner(verbosity=2).run(suite)

包含知识点

  • :testCaseClass输入单元测试类,但需要先import

loadTestsFromTestCase(testCaseClass)

  • :module输入单元测试类所在模块,也需要import

loadTestsFromModule(module, pattern=None)

  • :name是一个string,需满足以下格式: module.class.method ,可以只到输入到class

loadTestsFromName(name, module=None)

  • :表示测试结果的信息详细程,一共三个值,默认是1
    • 0 (静默模式):你只能获得总的测试用例数和总的结果 比如 总共100个 失败20 成功80
    • 1 (默认模式):非常类似静默模式 只是在每个成功的用例前面有个 每个失败的用例前面有个 F
    • 2 (详细模式):测试结果会显示每个测试用例的所有相关的信息

verbosity

批量运行测试用例方式二(推荐!!):

1 import unittest
2 
3 if __name__ == '__main__':
4     # 需要运行的单元测试文件目录
5     test_path = './'
6     # 实例化defaultTestLoader
7     discover = unittest.defaultTestLoader.discover(start_dir=test_path, pattern="test_case*.py")
8     # 运行测试用例集
9     unittest.TextTestRunner().run(discover)

优点:是不是简洁。。是不是很快??只需三行代码!!

包含知识点

  • :写需要运行的单元测试文件目录

start_dir

  • :单元测试文件的匹配规则,默认是 test*.py ,可根据自己的命名规则修改此正则

pattern

  • 方法可自动根据测试目录start_dir 匹配查找测试用例文件 test*.py ,并将查找到的测试用例组装到测试套件,因此可以直接通过 run() 方法执行 discover

discover()

批量执行测试用例的结果

 1 testCase02 test06
 2 testCase02 test07
 3 testCase02 test11
 4 testCase03 test05
 5 testCase03 test08
 6 testCase03 test12
 7 testCase04 test02
 8 testCase04 test04
 9 testCase04 test13
10 .........
11 ----------------------------------------------------------------------
12 Ran 9 tests in 0.000s
13 
14 OK

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

 

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行接口自动化测试时,生成一份详细的测试报告十分重要,方便开发人员、测试人员和项目经理查看测试结果、定位问题并及时解决。其中,HTML 测试报告是一种简洁明了、易于阅读的报告形式,具有良好的视觉效果和交互性,常被用于接口自动化测试报告的生成。 下面,我们就来详细介绍一下如何使用 Python 生成 HTML 测试报告。 ## 1. 安装 HTMLTestRunnerPython 中,我们可以使用第三方库 HTMLTestRunner 来生成 HTML 测试报告。该库可以在 Python2 和 Python3 中使用,提供了多种生成测试报告的方式,并且支持自定义样式和模板。 我们可以使用 pip 命令安装 HTMLTestRunner: ``` pip install html-testRunner ``` ## 2. 编写测试用例 接下来,我们需要编写测试用例,并使用 unittest 框架运行测试用例。这里以一个简单的加法测试用例为例: ```python import unittest class TestAdd(unittest.TestCase): def test_add(self): self.assertEqual(1+2, 3) ``` ## 3. 生成 HTML 测试报告 使用 HTMLTestRunner 生成 HTML 测试报告非常简单。我们只需要在测试用例中添加几行代码即可: ```python import unittest from html_testRunner import HTMLTestRunner class TestAdd(unittest.TestCase): def test_add(self): self.assertEqual(1+2, 3) if __name__ == '__main__': # 定义测试套件 suite = unittest.TestSuite() suite.addTest(TestAdd('test_add')) # 定义测试报告的路径和文件名 report_path = './test_report.html' # 打开文件,准备写入测试报告 with open(report_path, 'wb') as report_file: # 定义测试运行器 runner = HTMLTestRunner(stream=report_file, title='接口测试报告', description='测试报告详情') # 运行测试用例 runner.run(suite) ``` 其中,HTMLTestRunner 接受一个 stream 参数,用于指定测试报告输出的文件流,title 参数用于指定测试报告的标题,description 参数用于指定测试报告的详细描述。在运行测试用例之前,我们需要先定义一个测试套件,将要运行的测试用例添加到测试套件中。最后,使用测试运行器运行测试套件,即可生成 HTML 测试报告。 ## 4. 查看测试报告 运行完测试用例后,我们可以在指定的路径下找到生成的测试报告文件 test_report.html。打开该文件,即可查看生成的 HTML 测试报告。 HTML 测试报告中包含了测试用例的执行结果、用例名称、用例执行时间、错误信息等信息,方便开发人员快速定位问题。此外,我们还可以自定义测试报告的样式和模板,使其更符合项目的需求。 至此,我们就介绍了使用 Python 生成 HTML 测试报告的方法。HTML 测试报告的优势在于其可读性高,易于阅读和理解,同时还具有良好的可视化效果和交互性。在接口自动化测试中,HTML 测试报告是一种非常实用的报告形式,可以帮助我们更好地管理测试用例和测试结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值