unittest是展开自动化测试的基础——这个框架很重要!

我们先自己写一个测试类:

1、被测试类 Widthget.py:

# coding: utf-8

class Widthget:
   def __init__(self, size=(10, 10)):
       self._size = size    def getSize(self):
       return self._size
   
   def reSize(self, width, height):
       if width < 0 or height < 0:
           raise ValueError, 'illegal size'
       self._size = (width, height)
           

2、测试类:

# coding: utf-8

from Widthget import Widthget
import unittest # 执行测试的类
class WidthgetTestCase(unittest.TestCase):    def setUp(self):
       self.width = Widthget()    def testSize(self):
       self.assertEqual(self.width.getSize(), (10, 10))
   
   def testResize(self):
       self.width.reSize(20, 20)
       self.assertEqual(self.width.getSize(), (20, 20))
   
   def tearDown(self):
       self.width = None # 构造测试集
def suite():
   tc = unittest.TestSuite()
   tc.addTest(Widthget("testSize"))
   tc.addTest(Widthget("testResize"))
   return tc
   
if __name__ == '__main__':
   # unittest.main()
   runner = unittest.TextTestRunner()
   runner.run(suite())

运行测试文件可以看到:

  • 优化1:

我们没必要单独写构造测试集的方法,也就是说我们可以直接将suite()方法放到if __name__=='__main__':里面:

if __name__ == '__main__':

    tc = unittest.TestSuite()
   tc.addTest(Widthget("testSize"))
   tc.addTest(Widthget("testResize"))    runner = unittest.TextTestRunner()
   runner.run()

执行测试文件,可以看到用例也是可以通过的。

  • 优化2

测试用例都以test开头命名,比如测试登录,用例就命名为testLogin,测试退出用例就命名为testLoginOut,上面我们写的例子之所以能这么顺利的就通过,主要原因就在于我的用例(testSize,testResize)都是以test开头的。这是unittest框架的默认规定。

接下来就是批量执行用例,这个我们在接口测试框架的时候介绍过,而且是专门介绍过,大家可以看一下

接口测试基础——第6篇unittest模块(一)

接口测试基础——第6篇unittest模块(二)

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

这些都是批量执行的方式。上面我们讲的这个只是个很low的例子,大家随便看一下就行了,接下来我会写一个具体的selenium框架,大家直接参考一下就可以。如果大家感兴趣,就需要回顾一下这些知识了:

接口测试基础——第一篇smtplib发送文字邮件

接口测试框架——第五篇-用例和运行

HTMLTestRunner显示用例打印内容

微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~

《selenium2 python 自动化测试实战》(21)——unittest单元测试框架解析的更多相关文章

  1. selenium2 python自动化测试实战(回归测试)

    selenium2 python自动化测试实战 最近接手商城的项目,针对后台测试,功能比较简单,但是流程比较繁多,涉及到前后台的交叉测试.在对整个项目进行第一轮测试完成之后,考虑以后回归测试任务比较重 ...

  2. 船长带你看书——《selenium2 python 自动化测试实战》(1)

    有很多selenium的教程,你没有从头看,当你看的时候已经很难跟上作者的节奏了.现在,你有机会再从头学一次了.从今天开始,船长会从最基本的知识开始,和大家一起学selenium.能不能跟着一起就看大 ...

  3. Selenium2+Python自动化测试实战

    本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用.后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的 ...

  4. 《selenium2 python 自动化测试实战》(20)——Selenium工具介绍

    (一)Selenium IDE Firefox的一个插件,有助于我们理解测试框架.在附加组件里搜索下载,一般搜的结果里前几个都不是,得点那个查看更多才行,找到这个: 安装以后浏览器工具栏会有: 安装好 ...

  5. 《selenium2 python 自动化测试实战》(19)——webdriver错误截图

    webdriver 提供错误截图函数 get_screenshot_as_file(),可以帮助我们跟踪 bug,在脚本无法继续执行时候, get_screenshot_as_file()函数将截取当 ...

  6. 《selenium2 python 自动化测试实战》(17)——几个cookies操作

    之前我们已经学过利用cookies跳过验证码登录了,那时候我们用的方法是add_cookie()方法,这里再给大家介绍两个,一般情况下我们用不到,了解一下就可以,而且如果真的用到的时候百度也很快的: ...

  7. 《selenium2 python 自动化测试实战》(7)——定位一组对象

    定位一组对象 定位一组对象——find_elements_by_...(),注意,这里是elements,复数.返回的结果是一个列表,我们取值的时候就要用列表取值的方式来获得自己想要的元素.需要注意的 ...

  8. 《selenium2 python 自动化测试实战》(4)——鼠标事件

    鼠标事件包含在ActionChains类中,导入时只需要: from selenium.webdriver.common.action_chains import ActionChains 导入类即可 ...

  9. 船长带你看书——《selenium2 python 自动化测试实战》(2)浏览器操作

    浏览器操作 # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Firef ...

随机推荐

  1. Memcached append 命令

    Memcached append 命令用于向已存在 key(键) 的 value(数据值) 后面追加数据 . 语法: append 命令的基本语法格式如下: append key flags expt ...

  2. MySQL表锁和行锁

    锁粒度 MySQL 不同的存储引擎支持不同的锁机制,所有的存储引擎都以自己的方式显现了锁机制,服务器层完全不了解存储引擎中的锁实现: InnoDB 存储引擎既支持行级锁(row-level locki ...

  3. Python笔试、面试 【必看】

    本文由EarlGrey@编程派独家编译,转载请务必注明作者及出处. 原文:Sheena@codementor 译文:编程派 引言 想找一份Python开发工作吗?那你很可能得证明自己知道如何使用Pyt ...

  4. spring mvc:练习 @RequestParam(参数绑定到控制器)和@PathVariable(参数绑定到url模板变量)

    spring mvc:练习 @RequestParam和@PathVariable @RequestParam: 注解将请求参数绑定到你的控制器方法参数 @PathVariable: 注释将一个方法参 ...

  5. WPF:自定义ListBox的选择样式

    首先介绍一种简单地方法:就是通过自定义SystemColors类的参数来自定义WPF ListBox选择颜色的, SystemColors的HighlightBrushKey和HighlightTex ...

  6. 1023: Pong’s Birds(概率)

    1023: Pong’s Birds 时间限制: 1 Sec  内存限制: 128 MB提交: 94  解决: 21[提交][状态][讨论版] 题目描述 In order to train his b ...

  7. Xshell高级后门完整分析报告(ZT)

    1. 前言 近日,Xshell官方发布公告称其软件中存在后门.我们的实习生同学对该后门进行了详细的分析,确认这是一个具备恶意代码下载执行和数据回传等能力的高级木马. 后门代码存在于nssock2.dl ...

  8. 【Python】偏函数

    此文转载自廖雪峰. Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. 在介绍函数参数的 ...

  9. ansible入门七(实战)

    Ansible实战:部署分布式日志系统   本节内容: 背景 分布式日志系统架构图 创建和使用roles JDK 7 role JDK 8 role Zookeeper role Kafka role ...

  10. ie下的bug之button

    场景描述: 现在页面设计是都喜欢自定义按钮样式,某日接收到页面发现在ie下有bug,上代码: <div> <button><span><a href=&quo ...