UnitTest----UnitTest自动化框架中的测试套及runner的应用

简介: UnitTest----UnitTest自动化框架中的测试套及runner的应用

【原文链接】

1、默认的测试类中测试用例执行顺序

默认的测试类中的测试用例是按照测试用例名称的ASCII码值从小到大去执行的,不是按照用例的先后顺序执行的,如下,虽然顺序是乱的,但是执行仍然按照1,2,3的顺序执行

import unittest


class TestDemo01(unittest.TestCase):

    def test_03(self):
        print("in test_03...")

    def test_01(self):
        print("in test_01...")

    def test_02(self):
        print("in test_02...")


if __name__ == "__main__":
    unittest.main()

执行结果如下:

Ran 3 tests in 0.002s

OK
in test_01...
in test_02...
in test_03...

2、通过向测试套增加用例的方式组织用例

通过使用测试套和runner可以自定义用例的顺序,这个功能的作用不是很大,因为从自动化测试的角度来说用例与用例之间一般都是独立的,也就是后一个用例的执行不允许依赖前一个用例的执行,因此一般不会去关注用例的执行顺序,只要用例都执行完成了就OK了
如下,在一个目录下有两个文件,test01.py和test02.py,test01.py中存放着测试类及测试用例,代码如下:

import unittest


class TestDemo01(unittest.TestCase):

    def test_01(self):
        print("in test_01...")

    def test_02(self):
        print("in test_02...")
        
    def test_03(self):
        print("in test_03...")

test02.py中为组织测试用例的测试套文件,代码如下:

import unittest
from demo.test01 import TestDemo01

suite = unittest.TestSuite()
suite.addTest(TestDemo01("test_03"))
suite.addTest(TestDemo01("test_01"))
suite.addTest(TestDemo01("test_02"))
runner = unittest.TextTestRunner()
runner.run(suite)

执行结果如下:

in test_03...
in test_01...
in test_02...
...
----------------------------------------------------------------------
Ran 3 tests in 0.000s

OK

可以看出,使用测试套之后,用例的执行顺序按照往测试套中增加测试用例的顺序执行

3、通过向测试套中增加测试类的方式组织用例

可以通过向测试套中增加测试类的方式将一个测试类中的用例都加载进来,
比如 test01.py中有如下测试类

import unittest


class TestDemo01(unittest.TestCase):

    def test_01(self):
        print("in test_01...")

    def test_02(self):
        print("in test_02...")

    def test_03(self):
        print("in test_03...")

测试套中增加测试类的代码如下:

import unittest
from demo.test01 import TestDemo01

suite = unittest.TestSuite()
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestDemo01))
runner = unittest.TextTestRunner()
runner.run(suite)

执行结果如下

in test_01...
in test_02...
in test_03...
...
----------------------------------------------------------------------
Ran 3 tests in 0.000s

OK

4、通过discover执行执行目录下的所有测试用例

比如测试用例目录结构如下:

demo
  |----__init__.py
  |----suite.py
  |----test01.py
  |----test02.py

test01.py中代码如下:

import unittest


class TestDemo01(unittest.TestCase):

    def test_01(self):
        print("in test_01...")

    def test_02(self):
        print("in test_02...")

    def test_03(self):
        print("in test_03...")

test02.py中的代码如下:

import unittest


class TestDemo01(unittest.TestCase):

    def test_04(self):
        print("in test_04...")

    def test_05(self):
        print("in test_05...")

    def test_06(self):
        print("in test_06...")

suite.py中的代码如下:

import unittest

test_dir = "./"
discover = unittest.defaultTestLoader.discover(start_dir=test_dir, pattern="test*.py")

runner = unittest.TextTestRunner()
runner.run(discover)

执行结果如下

in test_01...
in test_02...
in test_03...
in test_04...
in test_05...
in test_06...
......
----------------------------------------------------------------------
Ran 6 tests in 0.000s

OK
目录
相关文章
|
1天前
|
JSON 监控 调度
局域网管理软件的自动化任务调度:Python 中的 APScheduler 库的应用
使用 Python 的 APScheduler 库可简化局域网管理中的自动化任务调度。APScheduler 是一个轻量级定时任务调度库,支持多种触发方式如间隔、时间、日期和 Cron 表达式。示例代码展示了如何创建每 10 秒执行一次的定时任务。在局域网管理场景中,可以利用 APScheduler 定期监控设备状态,当设备离线时自动提交数据到网站,提升管理效率。
7 0
|
1天前
|
Java 中间件 测试技术
深入理解自动化测试框架Selenium的设计与实现
【5月更文挑战第10天】 本文旨在深度剖析自动化测试工具Selenium的核心架构与实现机制,通过对其设计理念、组件结构以及在实际软件测试中的应用进行详细解读,使读者能够全面理解Selenium在现代Web应用测试中的重要性和有效性。文章首先介绍Selenium的发展背景及其解决的问题,然后详细探讨其架构设计,包括各种驱动和API的作用,最后结合实际案例分析Selenium如何提高测试效率和准确性。
|
1天前
|
Linux 测试技术 Windows
LabVIEW对NI Linux RT应用程序性能进行基准测试
LabVIEW对NI Linux RT应用程序性能进行基准测试
|
3天前
|
测试技术
测试基础 Junit单元测试框架
测试基础 Junit单元测试框架
11 2
测试基础 Junit单元测试框架
|
4天前
|
Java 测试技术 持续交付
自动化测试框架选型与实战:深入探索与应用
【5月更文挑战第8天】本文探讨了自动化测试框架的选型与实战应用,强调了其在软件质量保障中的重要性。选型原则包括考虑项目需求、技术栈、可扩展性和可维护性,以及社区支持和文档。介绍了Selenium、Appium、JUnit和Pytest等常用框架,并概述了实战应用的步骤,包括明确需求、搭建环境、编写测试用例、执行测试、分析结果、维护代码和持续集成。合理选型与实践能提升测试效率,保障项目成功。
|
5天前
|
JSON 前端开发 JavaScript
快照测试在前端自动化测试中的应用
在前端自动化测试中,快照测试常用于检验组件渲染与布局。
|
20天前
|
网络协议 安全 测试技术
性能工具之emqtt-bench BenchMark 测试示例
【4月更文挑战第19天】在前面两篇文章中介绍了emqtt-bench工具和MQTT的入门压测,本文示例 emqtt_bench 对 MQTT Broker 做 Beachmark 测试,让大家对 MQTT消息中间 BenchMark 测试有个整体了解,方便平常在压测工作查阅。
114 7
性能工具之emqtt-bench BenchMark 测试示例
|
1月前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
29 0
|
14天前
|
机器学习/深度学习 数据采集 人工智能
【专栏】AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计
【4月更文挑战第27天】本文探讨了AI在软件测试中的应用,如自动执行测试用例、识别缺陷和优化测试设计。AI辅助工具利用机器学习、自然语言处理和图像识别提高效率,但面临数据质量、模型解释性、维护更新及安全性挑战。未来,AI将更注重用户体验,提升透明度,并在保护隐私的同时,通过联邦学习等技术共享知识。AI在软件测试领域的前景广阔,但需解决现有挑战。
|
3天前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
13 0

热门文章

最新文章