unittest是一个单元测试框架,是Python编程的单元测试框架。有时候,也做叫做“PyUnit”,是Junit的Python语言版本。这里了解下,Junit是Java语言的单元测试框架,Java还有一个很好用的单元测试框架叫TestNG,本系列只学习Python,所以只需要unittest是Python里的一个单元测试框架就可以了。
       unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是test,也就是一个测试用例。要了解unittest单元测试框架,先来了解以下几个重要的概念。
测试固件(test fixture)
      一个测试固件包括两部分,执行测试代码之前的准备部分和测试结束之后的清扫代码。这两部分一般用函数setUp()和tearDown()表示。这里举例以下,例如要测试百度搜索selenium这个场景,我们的测试固件可以这样写,setUp()里写打开浏览器,浏览器最大化,和打开百度首页等脚本代码;在tearDown()里写结束搜索后,退出并关闭浏览器的代码。
测试用例(test case)
       unittest中管理的最小单元是测试用例,一个测试用例,包括测试固件,和具体测试业务的函数或者方法。一个测试用例中,测试固件可以不写,但是至少有一个已test开头的函数。unittest会自动化识别test开头的函数是测试代码,如果你写的函数不是test开头,unittest是不会执行这个函数里面的脚本的,这个千万要记住,所有的测试函数都要test开头,记住是小写的哦。
测试套件 (test suite)
       很简单,就是很多测试用例的集合,叫测试套件,一个测试套件可以随意管理多个测试用例。如果测试用例比作单个学生,测试套件就是好像是班级的概念。
测试执行器 (test runner)
       test runner是一个用来执行加载测试用例,并执行用例,且提供测试输出的一个组建。test runner可以加载test case或者test suite进行执行测试任务。

我们举例来,练习一下test fixture和test case的使用,学习unittest的简单用法:
1. 新建一个testbaidu.py的文件
2. 导入unittest模块
3. 当前测试类继承unittest.TestCase,相当于当前利用unittest创建了一个test case,这个test case是能够被unittest直接识别。
4. 写setUP(),主要是打开浏览器和打开站点
5. 写一个test_search()用例写搜索的代码
6. 写tearDown(),主要是浏览器退出操作

相关脚本代码如下:

# coding=utf-8
import time
import unittest
from selenium import webdriverclass BaiduSearch(unittest.TestCase):def setUp(self):"""测试固件的setUp()的代码,主要是测试的前提准备工作:return:"""self.driver = webdriver.Chrome()self.driver.maximize_window()self.driver.implicitly_wait(8)self.driver.get("https://www.baidu.com")def tearDown(self):"""测试结束后的操作,这里基本上都是关闭浏览器:return:"""self.driver.quit()def test_baidu_search(self):"""这里一定要test开头,把测试逻辑代码封装到一个test开头的方法里。:return:"""self.driver.find_element_by_id('kw').send_keys('selenium')time.sleep(2)try:assert 'selenium' in self.driver.titleprint ('Test Pass.')except Exception as e:print ('Test Fail.', format(e))if __name__ == '__main__':unittest.main()

最后结尾处的unittest.main(),添加这个是支持在cmd,里面,cd到这个脚本文件所在的目录,然后Python 脚本名.py执行,如果不添加这一段,是无法执行cmd里面运行脚本的,在PyCharm中,不添加最后一段,也可以通过,右键 Run "unittest xxx",来达到执行效果。

Python+Selenium ----unittest单元测试框架相关推荐

  1. python+selenium+unittest测试框架1-unittest单元测试框架和断言

    unittest单元测试框架和断言 一.unittest单元测试框架简介 1.导入unittest模块 import unittest 2.定义测试类 class Login(unittest.Tes ...

  2. python selenium unittest_python+selenium+unittest单元测试框架

    unittest简介 python自动化测试不得不提unittest,unittest原名为PyUnit是python自带的单元测试框架,类似于java的JUnit是有JUnit衍生而来. unitt ...

  3. python+selenium+unittest自动化测试框架

    前言 关于自动化测试的介绍,网上已有很多资料,这里不再赘述,UI自动化测试是自动化测试的一种,也是测试金字塔最上面的一层,selenium是应用于web的自动化测试工具,支持多平台.多浏览器.多语言来 ...

  4. python装饰器执行顺序_python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures...

    1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...

  5. python单元测试框架unittest介绍和使用_Python+Selenium框架设计篇之-简单介绍unittest单元测试框架...

    前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest. unittest是一 ...

  6. Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型

    1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

  7. python单元测试框架-Python unittest单元测试框架总结

    什么是单元测试 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对于函数abs(),我们可以编写的测试用例为: (1)输入正数,比如1.1.2.0.99,期待返回值与输入 ...

  8. python测试框架untest怎么循环执行_Python自动化测试-Unittest单元测试框架详解

    python中unittest模块是用来做单元测试的. unittest是一个python版本的junit,junit是java中的单元测试框架,对java的单元测试,有一句话很贴切:Keep the ...

  9. python自动化测试框架有哪几种_Python自动化测试-Unittest单元测试框架详解

    python中unittest模块是用来做单元测试的. unittest是一个python版本的junit,junit是java中的单元测试框架,对java的单元测试,有一句话很贴切:Keep the ...

  10. 华为五年自动化测试工程详细解说:unittest单元测试框架

    一.单元测试框架说明 ​单元测试是指在编程中,针对程序模块的最小单元(类中的方法)进行正确性检验的测试工作.python+selenium自动化测试中通常使用unittest或者pytest作为单元测 ...

最新文章

  1. HTTP/2 h2 协议简介
  2. 线段树(成段更新,区间求和lazy操作 )
  3. Django ModelForm 组件的应用
  4. sql语句练习(三):LeetCode
  5. 30天自制操作系统 pdf_30天自制操作系统:第四天:系统界面绘制
  6. java 操作cursor数据库_Java连接各种数据库以及调用存储过程
  7. find命令批量修改权限和用户和删除指定时间文件
  8. 软件测试第八次作业—— 缺陷管理(含缺陷管理工具的配置实验)
  9. Ubuntu Linux服务器安装图形化界面并用VNC Viewer连接
  10. linux上的 heartbeat 双机热备服务架设
  11. 初用WEB IOU,IE LAB备战启航
  12. 同济大学研究生 计算机 哪个校区,同济大学研究生院在哪个校区?宿舍条件好不好?有哪些招生专业目...
  13. 自定义微信小程序TabBar
  14. python里none什么意思_python none代表什么
  15. 基于Q-Learning 的FlappyBird AI
  16. M1 MacBook使用IE浏览器解决兼容问题
  17. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B Coin (概率计算)
  18. 中国移动业务支撑系统简介(BOSS、BASS、BOMC、4A及VGOP)
  19. Mysql主从复制之异步与半同步以及主从切换(实验)
  20. Ebox系列Corecon不同版本不宜安装在一起

热门文章

  1. 让django完成翻译,迁移数据库模型
  2. hdu 3506 Monkey Party 区间dp + 四边形不等式优化
  3. SDUST 作业10 Problem D 魔方阵
  4. .NET Framework(一)
  5. 利用图片的 onerror 事件载入默认图片
  6. 多对多表的创建方式 forms组件 session与cookie
  7. HDU 6623 Minimal Power of Prime(思维)题解
  8. Sqlserver 索引
  9. golang获取u盘序列号(通过读取注册表实现)
  10. MyBatis 简介