转载地址:https://blog.csdn.net/u013378642/article/details/82386226

Selenium自动化测试-unittest单元测试框架使用

unittest官方文档


一、前置条件(setUp)、后置条件(tearDown)和Test Suite的使用

#文件名: test_case01.py
#coding=utf-8
import unittest
class TestCase_01(unittest.TestCase): # 继承unittest.TestCase@classmethoddef setUpClass(cls):print('这是所有case的前置条件01')@classmethoddef tearDownClass(cls):print('这是所有case的后置条件01')def setUp(self):print('这是每条case的前置条件01')def tearDown(self):print('这是每条case的后置条件01')def testThird_01(self): # 测试用例的命名必须以test开头,否则不予执行print('01: 第三条case')def testFirst_01(self):print('01: 第一条case')@unittest.skip('不执行这条case') # 跳过这条casedef testSecond_01(self):print('01: 第二条case')def testFourth_01(self):print('01: 第四条case')if __name__ == '__main__':# unittest.main() # 使用main()直接运行时,将按case的名称顺序执行suite = unittest.TestSuite()suite.addTest(TestCase_01('testThird_01')) # 将需要执行的case添加到Test Suite中,没有添加的不会被执行suite.addTest(TestCase_01('testFirst_01'))suite.addTest(TestCase_01('testFirst_01'))unittest.TextTestRunner().run(suite) # 将根据case添加的先后顺序执行

输出:

这是所有case的前置条件01
这是每条case的前置条件01
01: 第三条case
这是每条case的后置条件01
.s这是每条case的前置条件01
01: 第一条case
这是每条case的后置条件01
.这是所有case的后置条件01
 
----------------------------------------------------------------------
Ran 3 tests in 0.001s

OK (skipped=1)

二、同时运行多个.py文件中的测试用例

准备两个测试文件test_case01.py和test_case02.py(内容与上面类似),里面有需要执行的测试脚本。新建一个run_case.py,用来执行所有测试。

#run_case.py
#coding=utf-8
import unittest
import osclass RunCase(unittest.TestCase):def test_case(self):case_path = os.getcwd() # casea所在路径discover = unittest.defaultTestLoader.discover(case_path, pattern="test_case*.py")# discover相当于在指定的case所在的路径里寻找所有名称模式匹配pattern的文件并加载其内容runner = unittest.TextTestRunner(verbosity=2) # verbosity控制输出的执行结果的详细程度,可为0, 1, 2,其中0最简单,1是默认值,2最详细runner.run(discover)if __name__ == '__main__':unittest.main()

输出:(标有01的是test_case01.py里面的,02是test_case02.py里面的,将verbosity设为2后结果里也很容易分辨)

这是所有case的前置条件01
testFirst_01(test_case01.TestCase_01) ... 这是每条case的前置条件01
01:第一条case
这是每条case的后置条件01
ok
testFourth_01 (test_case01.TestCase_01) ... 这是每条case的前置条件01
01: 第四条case
这是每条case的后置条件01
ok
testSecond_01 (test_case01.TestCase_01) ... skipped '不执行这条case'
testThird_01 (test_case01.TestCase_01) ... 这是每条case的前置条件01
01: 第三条case
这是每条case的后置条件01
ok
这是所有case的后置条件01
这是所有case的前置条件02
testFirst_02 (test_case02.TestCase_02) ... 这是每条case的前置条件02
02: 第一条case
这是每条case的后置条件02
ok
testSecond_02 (test_case02.TestCase_02) ... 这是每条case的前置条件02
02: 第二条case
这是每条case的后置条件02
ok
testThird_01 (test_case02.TestCase_02) ... 这是每条case的前置条件02
01: 第三条case
这是每条case的后置条件02
ok
这是所有case的后置条件02----------------------------------------------------------------------
Ran 7 tests in 0.006sOK (skipped=1)
.
----------------------------------------------------------------------
Ran 1 test in 0.021sOK

另外也可以遍历每个test_case*.py里面的case并将其添加到Test Suite中,最后一并执行,输出结果和上面一样。

#run_case.py
#coding=utf-8
import unittest
import osclass RunCase(unittest.TestCase):def test_case(self):case_path = os.getcwd() #case所在路径discover = unittest.defaultTestLoader.discover(case_path, pattern="test_case*.py")runner = unittest.TextTestRunner(verbosity=2)# runner.run(discover)test_unit = unittest.TestSuite()for test_suite in discover:for test_case in test_suite:test_unit.addTest(test_case)runner.run(test_unit)if __name__=='__main__':unittest.main()

Python3--unitest框架的使用相关推荐

  1. Unitest框架的使用(一)准备工作,接口定义和Unittest方法

    准备工作 工具安装 · Pycharm 编辑器用的是社区版的,足够满足一般的日常需要,大家自行下载 · Unitest Unitest,本地引用时,发现已经安装好了,没有安装的,安装方法大家可以自行搜 ...

  2. python unitest框架,Python unittest框架操作实例解析

    操作步骤 导入框架,import unitest 测试类必须继承类:.class 类名(unittest.TestCase): 在类中所有定义testXXX(区分大小写)开头的函数都是可执行的测试用例 ...

  3. python unitest框架_python单元测试框架Unitest

    一.unitest简介 unittest是python内置的单元测试框架,具备编写用例.组织用例.执行用例.输出报告等自动化框架的条件. 使用unittest前需要了解该框架的五个概念: test c ...

  4. python中unitest_基于Python的unitest框架介绍

    一:unitest介绍 1.unittest是python自带的单元测试框架. 2.unittest的流程: 由TestLoader加TestCase到TestSuite, 由TextTestRunn ...

  5. python3数据库框架_Python3 MySQL 数据库连接:安装pymysql(mysql数据库驱动), sqlalchemy(ORM框架)。...

    Python3 MySQL 数据库连接 python3使用mysql作为数据库,安装pymysql作为驱动,然后安装sqlalchemy框架 PyMySQL 驱动 安装: $ python3 -m p ...

  6. python3.4勾股定理代码_用于解答算法题目的Python3代码框架

    前言 最近在实习,任务并不是很重,就利用闲暇时间使用Python3在PAT网站上刷题,并致力于使用Python3的特性和函数式编程的理念,其中大部分题目都有着类似的输入输出格式,例如一行读入若干个数字 ...

  7. Python3 Flask框架

    Flask框架 内容原创,侵权必究.学习分享请注明地址:https://blog.csdn.net/Jackie_ZHF/article/details/82592928 博主有时间会不定期更新大数据 ...

  8. python3数据库框架_python3之pymysql

    pymsql是Python中操作MySQL的模块并且只有在Python3.0版本中才存在,其使用方法和MySQLdb几乎相同. 下载安装pymsql模块 pip3 install pymysql 操作 ...

  9. python3 Django框架报错(备忘录)

    这篇博客主要总结的学习Django框架中,遇到的报错如何去解决问题: 1.decimal.InvalidOperation: decimal.InvalidOperation: [<class ...

  10. python3 web框架_循序渐进Python3(十二) --0--  web之框架

    上述通过socket来实现了其本质,而对于真实开发中的python web程序来说,一般会分为两部分:服务器程序和应用程序.服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据 ...

最新文章

  1. WCF服务创建与使用(双工模式)
  2. setsockopt函数全面解析
  3. 浅谈开发中的MVVM模式及与MVP和MVC的区别
  4. 构件之法读书笔记04
  5. 小米官网静态网页练习记录
  6. vnc远程桌面很慢_服务器远程桌面连接很慢
  7. Javascript-逻辑运算符()
  8. OCP 12c最新考试原题及答案(071-4)
  9. 双稳态电路的两个稳定状态是什么_电子电路原理图识图心得及电路分析方法
  10. 软件产品案例分析(团队)
  11. 使用 openssl 进行 base64 编解码
  12. mysql容灾方案_mysql 容灾 灾备 备份
  13. 和的区别(与) 和 ||和|的区别(或)
  14. matlab 判断大小写,匹配正则表达式(区分大小写)
  15. 如何将训练好的Glove转换成word2vec
  16. Python获取pi值的五种方法
  17. 作者年份 soft computing参考文献格式要求,LaTeX实现
  18. fabric contract链码案例
  19. BIOS、UEFI、Boot Loader都是些什么
  20. COMSOL仿真教程—激光烧蚀

热门文章

  1. Java 线程的 5 种状态
  2. docker部署resin应用
  3. jms学习-基本概念(一)
  4. ES6减少魔法操作之Reflect
  5. 【已解决】Exception in thread “Thread-0“ redis.clients.jedis.exceptions.JedisConnectionException: java.n
  6. 假设你有一个数组,其中第i 个元素是第i天给定股票的价格。设计算法以找到最大利润。你可以根据需要完成尽可能多的交易(即,多次买入并卖出一股股票)。注意:您不能同时进行多笔交易(即,您必须在再次购买之前
  7. python包括几种数据类型_简单谈谈Python中的几种常见的数据类型
  8. python bs4模块_python爬虫之Beautifulsoup模块用法详解
  9. index.html图片弹窗,原生javascript实现图片弹窗交互效果
  10. bipush java,Java Opcodes.BIPUSH屬性代碼示例