今天是unittest最后一讲,我们解决一下如何只运行一次setUp和tearDown方法以及简单的数据驱动的知识。

1、只运行一次setUp和tearDown方法

很简单,只需要把setUp和tearDown分别替换为setUpClass和tearDownClass即可,但是用这两个方法必须加上 @classmethod 修饰


# coding: utf-8import unittest
import timeclass MyTest(unittest.TestCase):@classmethoddef setUpClass(cls):print "SetUp"time.sleep(2)@classmethoddef tearDownClass(cls):print "teardown"time.sleep(2)def test01(self):print "test01"def test03(self):print "test03"def test02(self):print "test02"if __name__ == '__main__':suite = unittest.TestLoader().loadTestsFromTestCase(MyTest)unittest.TextTestRunner(verbosity=2).run(suite)

上面的代码运行以后,得到的输出便是:

至于@classmethod是什么意思,大家先不要管,后面在说装饰器的时候我会专门的和大家说。

2、数据驱动

unittest里的数据驱动也要用到装饰器的知识,还是直接先记住代码即可:

# coding: utf-8import unittest
import time
import ddtinfo = [{"username": "captain", "password": 123},{"username": "warrior", "password": 456}]@ddt.ddt
class MyTest(unittest.TestCase):@classmethoddef setUpClass(cls):print "SetUp"time.sleep(2)@classmethoddef tearDownClass(cls):print "teardown"time.sleep(2)@ddt.data(*info)def test01(self, mes):print mes@ddt.data(*info)def test03(self, res):print res["username"]def test02(self):print "test02"if __name__ == '__main__':unittest.main()

运行上面代码:

可以看到,我们的info是一个列表,里面套了两个字典,在打印res["username"]的时候回将两个username都打印出来;这也是数据驱动的好处,也就是将用到的数据放到一起(比如一个Excel中),然后通过数据驱动就可以读到Excel中的所有数据了。

以上内容就是我要讲的所有的unittest需要了解的知识了,其实东西并不多,unittest模块常用的基本上就这三篇的知识,将来无论你做接口测试还是UI自动化,都会用到以上知识,所以,现在就学会了记住了,将来会少走很多弯路~~

欢迎大家关注微信公众号“自动化测试实战”,我们一起进步!

转载于:https://www.cnblogs.com/captainmeng/p/7722346.html

接口测试基础——第6篇unittest模块(三)相关推荐

  1. 接口测试基础——第5篇xlrd模块

    读取Excel表格中的内容,不多说,直接上代码: # coding: utf-8import xlrd# excel路径 excel_path = r'C:\Users\weiming\Desktop ...

  2. 接口测试基础之入门篇(待续)

    2019独角兽企业重金招聘Python工程师标准>>> 课程地址:https://www.imooc.com/learn/738 一.为什么做接口测试  地址栏大小有限制 二.接口测 ...

  3. 《鸟哥的Linux 私房菜 基础学习篇(第三版)》——1.2 Torvalds的Linux开发

    本节书摘来自异步社区<鸟哥的Linux 私房菜 基础学习篇(第三版)>一书中的第1章,第1.2节,作者:鸟哥著,更多章节内容可以访问云栖社区"异步社区"公众号查看 1. ...

  4. JS--我发现,原来你是这样的JS(三)(基础概念--灵魂篇)

    一.介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容. 红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂更不容易,要熟练js ...

  5. JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入)

    JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入) 开发流程:需求文档 接口文档 效果图 开发环境统一:JDK1.8 IDEA win10 GIT SSM SSH SpringB ...

  6. 计算机应用基础模块三项目二,计算机应用基础 高职计算机大类专业 刁爱军模块三 项目二 海报的制作.pptx...

    计算机应用基础 高职计算机大类专业 刁爱军模块三 项目二 海报的制作.pptx (31页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 模块 ...

  7. JAVASE基础模块三十三(Scanner 扫描流 RandomAccessFile随机访问流 ObjectInputStream序列流 Properties集合流 Sequence顺序流

    JAVASE基础模块三十三(Scanner 扫描流 RandomAccessFile随机访问流 ObjectInputStream序列流 Properties集合流 SequenceInputStre ...

  8. JAVASE基础模块三十五( 线程 线程创建的第一种方法 以及线程的一些方法)

    JAVASE基础模块三十五( 线程 线程创建的第一种方法 以及线程的一些方法) 线程 首先要清楚的是 线程依赖于进程 进程 是 正在运行的应用程序 一个正在运行的应用程序 是个进程 这个应用程序又要执 ...

  9. 接口测试基础-1-什么是接口测试

    前面写过了Python接口自动化入门之requests篇,想了一下,还是有必要把接口测试基础入门给介绍一下.在做接口自动化测试之前,还是需要介绍接口的手工测试一些基本概念的方法.预计会写十篇以下文章介 ...

  10. python基础教程第二版和第三版哪个好-python基础教程 2版和3版哪个适合新手?!...

    python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...

最新文章

  1. 好的开始是成功的一半:网页优化之标题篇
  2. 验证码不显示,如何进入phpcms管理后台
  3. python常用函数-python—各种常用函数及库
  4. MVC URL参数传递+变为空格解决方法
  5. ajxa异步请求数据
  6. 【待填坑】LG_4996_咕咕咕
  7. 判断一个字符串是否包含另一个字符串(用java但是不能用index()这个函数)
  8. 简单实用的人工智能自学路径
  9. centos7下安装mysql5.6_CentOS7安装后MySQL5.6如何配置MySQL5.6呢?
  10. ds6708 symbol 驱动_Symbol DS6708扫描器
  11. java编写计算器实现cancel_用Java编写的简易计算器
  12. Selenium-鼠标操作
  13. progresql数据库 数组分别显示_Postgresql常用命令函数
  14. java组件技术考试题_Java核心技术2020年春答案试题题目及答案,期末考试题库,章节测验答案...
  15. 【使用最新版本的cef,编译libcef_dll_wrapper】
  16. 两个强制屏幕旋转的方法
  17. 苹果手机更改照片大小kb_iPhone调整照片大小方法教程 无需第三方软件
  18. 嵌入式编程语言挑选的原则
  19. 【HCIA持续更新】VLAN间通信之路由器
  20. Facebook推出附近好友功能 可用手机查附近好友

热门文章

  1. linux apache 停止命令,linux 下 apache启动、停止、重启命令
  2. python能print中文吗_python用print输出中文字符
  3. 左移寄存器vhdl_用VHDL实现的通用循环移位寄存器
  4. 提取数据_R提取全球气象数据
  5. centos7.6使用Mariadb官方二进制安装
  6. 比特币技术Base58
  7. Liferay7 BPM门户开发之15: Liferay开发体系简介
  8. Python [6] IT资产管理(下)
  9. PHP用户名和密码登陆验证代码
  10. ******2:***常用工具排行榜-《百晓生兵器谱》