热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

unittest自动化测试测试夹具TestFixtrue与忽略测试用例方法

一、TestFixtrue1、TestFixture简介TestFixture用在测试方法前,或者测试方法后,主要功能是提供一些测试需要用的装置&#x
一、TestFixtrue

 

1、TestFixture简介

TestFixture用在测试方法前,或者测试方法后,主要功能是提供一些测试需要用的装置,这些装置可以是数据,可以是环境配置也可以是一个运行前状态。

2、TestFixture分类

(1)setup(), teardown()的方式,分别在每个测试方法执行前后执行。
(2)setUpClass(), tearDownClass()的方式,分别在每个测试类执行前后执行, setUpClass()和tearDownClass()只会执行一次,即使这个测试类有多个测试函数。

(3)setUpModule :整个模块开始前执行,tearDownModule:整个模块结束时执行。

setUpClass/tearDownClass 为类方法,需要通过@classmethod 进行装饰,另外方法的参数为cls,cls和self没有本质上的区别,都只表示方法的第一个参数

3、实例

import unittest
# 整个模块开始前执行
def setUpModule():print("模块级别开始test module start")
# 整个模块结束时执行
def tearDownModule():print("模块级别结束test module end")class MyTest(unittest.TestCase):# 测试用例类开始前执行@classmethoddef setUpClass(cls) :print("类级别开始 test class start" )# 测试用例类结束时执行@classmethoddef tearDownClass(cls) :print("类级别结束 test class end")# 测试用例开始前执行(以一条测试用例为单位)def setUp(self) -> None:print("用例级别开始 test case start")# 测试用例结束时执行(以一条测试用例为单位)def tearDown(self) -> None:print("用例级别结束 test case end")def test_case1(self):print("用例 test case1")def test_case2(self):print("用例 test case2")if __name__ == '__main__':unittest.main()

 

->None :建议函数返回None。

二、测试框架

1、自动化测试的设计模式

(1)PMO设计模式

基础封装层

页面对象层

测试用例层

(2)关键字驱动模式

关键字封装

2、公共的封装层

(1)夹具的封装;

(2)selenium二次封装;

(3)ini和yaml全局配置文件封装;

(4)excel、csv文件的读写封装;

(5)数据库操作封装;

(6)调用外部的第三方库封装;

3、数据层

(1)excel数据驱动

(2)csv数据驱动

(3)yaml数据驱动

(4)数据库数据驱动

4、文件层:

(1)HTML报告文件;

(2)log日志文件;

(3)全局配置文件;

(4)错误截图文件;

(5)邮件附件文件;

(6)接口关联文件;

三、忽略测试用例

不需要的测试用例

import unittestclass MyTest(unittest.TestCase):a = 18@unittest.skip('无条件忽略')def test_case1(self):print("用例 test case1")@unittest.skipIf(a >= 16,"条件为true忽略")def test_case2(self):print("用例 test case2")@unittest.skipUnless(a >= 20, "条件为false忽略")def test_case3(self):print("用例 test case3")if __name__ == '__main__':unittest.main()

 输出结果:

参考文献:

【1】测试框架实践--TestFixture_疯狂的程序员丶的博客-CSDN博客_fixture test


推荐阅读
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • Java 中的十进制样式 getZeroDigit()方法,示例 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • 高级缩放示例.就像谷歌地图一样.它仅缩放图块,但不缩放整个图像.因此,缩放的瓷砖占据了恒定的记忆,并且不会为大型缩放图像调整大小的图像.对于简化的缩放示例lookhere.在Win ... [详细]
  • 在Python编程中,经常需要处理文件下载的任务。本文将介绍三种常用的下载方法:使用urllib、urllib2以及requests库进行HTTP请求下载,同时也会提及如何通过ftplib从FTP服务器下载文件。 ... [详细]
  • 洛谷 P4009 汽车加油行驶问题 解析
    探讨了经典算法题目——汽车加油行驶问题,通过网络流和费用流的视角,深入解析了该问题的解决方案。本文将详细阐述如何利用最短路径算法解决这一问题,并提供详细的代码实现。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • 本文详细介绍了C++中的构造函数,包括其定义、特点以及如何通过构造函数进行对象的初始化。此外,还探讨了转换构造函数的概念及其在不同情境下的应用,以及如何避免不必要的隐式类型转换。 ... [详细]
author-avatar
手机用户2602913921
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有