《selenium2 python 自动化测试实战》(21)——unittest单元测试框架解析
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框架的默认规定。
接下来就是批量执行用例,这个我们在接口测试框架的时候介绍过,而且是专门介绍过,大家可以看一下
这些都是批量执行的方式。上面我们讲的这个只是个很low的例子,大家随便看一下就行了,接下来我会写一个具体的selenium框架,大家直接参考一下就可以。如果大家感兴趣,就需要回顾一下这些知识了:
微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~
《selenium2 python 自动化测试实战》(21)——unittest单元测试框架解析的更多相关文章
- selenium2 python自动化测试实战(回归测试)
selenium2 python自动化测试实战 最近接手商城的项目,针对后台测试,功能比较简单,但是流程比较繁多,涉及到前后台的交叉测试.在对整个项目进行第一轮测试完成之后,考虑以后回归测试任务比较重 ...
- 船长带你看书——《selenium2 python 自动化测试实战》(1)
有很多selenium的教程,你没有从头看,当你看的时候已经很难跟上作者的节奏了.现在,你有机会再从头学一次了.从今天开始,船长会从最基本的知识开始,和大家一起学selenium.能不能跟着一起就看大 ...
- Selenium2+Python自动化测试实战
本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用.后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的 ...
- 《selenium2 python 自动化测试实战》(20)——Selenium工具介绍
(一)Selenium IDE Firefox的一个插件,有助于我们理解测试框架.在附加组件里搜索下载,一般搜的结果里前几个都不是,得点那个查看更多才行,找到这个: 安装以后浏览器工具栏会有: 安装好 ...
- 《selenium2 python 自动化测试实战》(19)——webdriver错误截图
webdriver 提供错误截图函数 get_screenshot_as_file(),可以帮助我们跟踪 bug,在脚本无法继续执行时候, get_screenshot_as_file()函数将截取当 ...
- 《selenium2 python 自动化测试实战》(17)——几个cookies操作
之前我们已经学过利用cookies跳过验证码登录了,那时候我们用的方法是add_cookie()方法,这里再给大家介绍两个,一般情况下我们用不到,了解一下就可以,而且如果真的用到的时候百度也很快的: ...
- 《selenium2 python 自动化测试实战》(7)——定位一组对象
定位一组对象 定位一组对象——find_elements_by_...(),注意,这里是elements,复数.返回的结果是一个列表,我们取值的时候就要用列表取值的方式来获得自己想要的元素.需要注意的 ...
- 《selenium2 python 自动化测试实战》(4)——鼠标事件
鼠标事件包含在ActionChains类中,导入时只需要: from selenium.webdriver.common.action_chains import ActionChains 导入类即可 ...
- 船长带你看书——《selenium2 python 自动化测试实战》(2)浏览器操作
浏览器操作 # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Firef ...
随机推荐
- linux基础之Vim
- centos下搭建DNS
一.DNS名词介绍: ( Domain Name System )是“域名系统”的英文缩写 正向解析:通过域名查找IP 反向解析:通过IP查找域名 二.安装BIND: BIND即Berkeley In ...
- bzoj1007: [HNOI2008]水平可见直线 单调栈维护凸壳
在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.例如,对于直线:L1:y=x; L2:y=-x; L3 ...
- linux---nginx服务nfs服务nginx反向代理三台web
一:nginx服务 1.二进制安装nginx包 [root@bogon ~]# systemctl disable firewalld #关闭Firewalls自启动 Removed symlink ...
- Qt:表格 tableWidget
1.设置行数和列数 //设置行数 tableWidget->setRowCount(); //设置列数 tableWidget->setColumnCount(); 2.隐藏表头 tabl ...
- navicat for mysql 导入SQL Server显示中文乱码解决办法
解决方法是在navicat里右击一个连接,选择连接属性,切换到高级选项卡,去掉“使用mysql字符集”前的对勾,在编码里选择utf-8
- Algorithm4.子数组求和贪心
子数组求和最大问题 20131011 问题描述 一个数组中,有整数也有复数,求这个数组的所有子数组中,求和最大的值. 这是一个动态规划问题,乍看上去没有什么简单的方法,把所有的情况列出来就可以了,但是 ...
- Rsync安装和配置
一.Rsync简介 1.1什么是Rsync Rsync是一款快速的,开源的,多功能的,可以实现全量和增量的远程和本地的数据同步和数据备份的工具. 全量的概念是:全部备份. 增量的概念是:差异化备份.对 ...
- nodejs之log4js日志记录模块简单配置使用
在我的一个node express项目中,使用了log4js来生成日志并且保存到文件里,生成的文件如下: 文件名字叫:access.log 如果在配置log4js的时候允许了同时存在多个备份log文件 ...
- qt 音乐播放器
https://blog.csdn.net/zyx_0604/article/details/66974048?fps=1&locationNum=14 https://blog.csdn.n ...