1、unittest是Python的标准库里的模块,所以在创建测试方法时,需直接导入unittest即可

2、unittest框架的六大模块:

测试用例TestCase

测试套件TestSuit:测试用例的集合,管理所有测试用例

测试执行:TestRun:

测试报告TestReport:测试结果的汇总报告

钩子方法:setUp()初始化方法和tearDown()收尾方法

断言:验证运行结果和期望值是否相等,相等就PASS

3、初期示例代码

#coding=utf-8
import unittest
class Dog():
def __init__(self,name):
self.name=name
def getName(self):
return self.name
class TestDog(unittest.TestCase):#测试类,要继承unittest(属于Python的标准库)模块的TestCase类
def setUp(self): #钩子方法,初始化
self.d=Dog('wang') #实例化类
print u'初始化'
def test_getName001(self):#测试用例的方法名必须以test_开头
print u'我是测试用例001'
print self.d.getName()
assert self.d.getName() in 'wang'#assert是python语言里的断言
'''验证getName方法的正确性'''
self.assertEqual(self.d.getName(),'wang')#判断运行结果和期望值是否一致。assertEqual(a,b)是unittest的断言,验证a和b的值是否一致,
def test_getName002(self):
print u'我是测试用例002'
def tearDown(self): #钩子方法,收尾。钩子方法是每个用例执行时都会执行
print u'收尾'
if __name__=='__main__':#if成立的话,表示当前这个模块是正在运行的主程序
unittest.main(verbosity=2)#1、调用unittest.main()启动自动测试,
# 2、verbosity的值是2表示打印的结果是有详细的信息

打印结果:

Ran 2 tests in 0.004s

OK
初始化
我是测试用例001
wang
收尾
初始化
我是测试用例002
收尾

4、钩子方法没必要每次执行,怎样实现只执行一次,setUp()和tearDown()是用类方法@classmethod

#!/usr/bin/env.python
#-*-coding:utf-8-*-
import unittest
from selenium import webdriver class Baidu(object): def login(self):
pass class BaiduTest(unittest.TestCase): @classmethod
def setUpClass(cls):
cls.driver=webdriver.Firefox()
cls.driver.maximize_window()
cls.driver.implicitly_wait(30)
cls.driver.get('https://www.baidu.com/') def test_01(self):
'''验证不输入账户和密码的提示信息是否正确'''
pass def test_02(self):
'''验证输入用户名,不输入密码的提示信息是否正确'''
pass def test_03(self):
'''验证输入错误用户名的提示信息是否正确'''
self.assertEqual(123,12) @classmethod
def tearDownClass(cls):
cls.driver.quit() if __name__=='__main__':
unittest.main(verbosity=2)

运行的时候,浏览器只打开和关闭了一次,运行结果如下:

test_01 (__main__.BaiduTest)
验证不输入账户和密码的提示信息是否正确 ... ok
test_02 (__main__.BaiduTest)
验证输入用户名,不输入密码的提示信息是否正确 ... ok
test_03 (__main__.BaiduTest)
验证输入错误用户名的提示信息是否正确 ... FAIL ======================================================================
FAIL: test_03 (__main__.BaiduTest)
验证输入错误用户名的提示信息是否正确
----------------------------------------------------------------------
Traceback (most recent call last):
File "D:/panda/Python/python_me/week7-5/unit1/test01.py", line 25, in test_03
self.assertEqual(123,12)
AssertionError: 123 != 12 ----------------------------------------------------------------------
Ran 3 tests in 11.007s FAILED (failures=1) Process finished with exit code 1

5、测试套件,将测试用例add到测试套件中,执行的时候执行测试套件

#!/usr/bin/env.python
#-*-coding:utf-8-*-
import unittest class Food():
def add(self,a,b):
return a+b class FoodTest(unittest.TestCase):
def setUp(self):
self.f=Food() def test_01(self):
'''测试a,b为整型'''
sum=self.f.add(2,3)
self.assertEqual(sum,5) def test_02(self):
'''测试a浮点数,b为整型'''
sum = self.f.add(2.36, 2)
self.assertEqual(sum,4.36) def tearDown(self):
pass if __name__=='__main__':
suite=unittest.testSuite()
suite.addTests(FoodTest('test_01','test_02'))
unittest.TextTestRunner(verbosity=0).run(suite)

5.1、将suite写到类的方法中,简化执行用例时的代码

#!/usr/bin/env.python
#-*-coding:utf-8-*-
import unittest
from selenium import webdriver class BaiduTest(unittest.TestCase): @classmethod
def setUpClass(cls):
cls.driver=webdriver.Firefox()
cls.driver.maximize_window()
cls.driver.implicitly_wait(30)
cls.driver.get('https://www.baidu.com/') def test_01(self):
'''验证不输入账户和密码的提示信息是否正确'''
pass def test_02(self):
'''验证输入用户名,不输入密码的提示信息是否正确'''
pass def test_03(self):
'''验证输入错误用户名的提示信息是否正确'''
self.assertEqual(123,12) @classmethod
def tearDownClass(cls):
cls.driver.quit() @staticmethod
def suite(testNum):
suite=unittest.TestSuite()
suite.addTest(BaiduTest(testNum))
return suite if __name__=='__main__':
unittest.TextTestRunner(verbosity=2).run(BaiduTest.suite('test_01'))
												

unittest之一框架、suite的更多相关文章

  1. unittest单元测试框架总结

    unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果.今天笔者 ...

  2. python实例编写(6)--引入unittest测试框架,构造测试集批量测试(以微信统一管理平台为例)

    ---恢复内容开始--- 一.python单元测试实例介绍 unittest框架又叫PyUnit框架,是python的单元测试框架. 先介绍一个普通的单元测试(不用unittest框架)的实例: 首先 ...

  3. unittest单元测试框架详解

    unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果.今天笔者 ...

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

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

  5. unittest单元测试框架

    unittest单元测试框架 概述: 单元测试框架主要用来完成以下三件事: 提供用例组织与执行:当测试用例只有几条时,可以不必考虑用例的组织,但是当用例达到成百上千条时,大量的用例堆砌在一起,就产生了 ...

  6. unittest单元测试框架简单说明

    unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果.今天笔者 ...

  7. python利用unittest测试框架组织测试用例的5种方法

    利用unittest测试框架可以编写测试用例,执行方式分两大类:利用main方法和利用testsuite,其中利用测试套件来组织测试用例可以有4种写法. 在此之前,先了解几个概念 TestCase:所 ...

  8. Python接口测试实战3(下)- unittest测试框架

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  9. Python+selenium之简单介绍unittest单元测试框架

    Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...

  10. unittest单元测试框架总结(转载)

    转载:https://www.cnblogs.com/yufeihlf/p/5707929.html unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该 ...

随机推荐

  1. webservice代码编写主要包括服务器端发布和客户端调用。

    一.java工程发布,java工程调用   (一).服务器端的编写 1.在eclipse里新建java project工程,创建功能类,通过关键字@webservice(name="newI ...

  2. Swagger : API JSON 文件 转 PDF 问题总结

    1.  swagger API 转 PDF 具体请参考:woshihoujinxin/swagger-gendoc 2. 问题总结 接口方法值返回值为  void 类型时, @ApiOperation ...

  3. Mac安装软件提示文件损坏

    Mac安装软件提示文件损坏,请移至废纸篓 sudo spctl --master-disable

  4. https知识汇总

    状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须在 ...

  5. 使用微软易升安装纯净版win10

    1.打开官方网址 https://www.microsoft.com/zh-cn/software-download/windows10 2.下载工具 3.根据你的需求,我这里是给另外以外机器安装,一 ...

  6. Linux - 搭建Web项目(Django + nginx + uwsgi)

    工作中碰到需要使用Django + nginx + uwsgi 搭建项目环境 1. 搭建基本环境 需要有python环境,不多做说明 需要安装nginx,不多做说明 需要安装uwsgi: yum in ...

  7. Ubuntu16.04源

    vim /etc/apt/sources.list # 阿里云deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420. ...

  8. JAVA记事本的图形用户界面应用程序含加密

    JAVA记事本的图形用户界面应用程序 加密 题目简介: 整体分析: 实验代码: import java.awt.EventQueue; import java.awt.event.ActionEven ...

  9. 模拟SQLserver IO压力测试 工具编 SQLIOSIM

    描述 最近有业务需求需了解客户的服务器SQLserver 的IO情况,而不仅仅是通过系统计数器 了解硬盘的IO情况或者使用CrystalDiskMark或者Trace重播进行压力测试 .这时SQL S ...

  10. vlc 控件属性和方法

    VLC调研 VLC控件支持的参数和方法 VLC对象列表 Vlc Plugin Object的方法 l        VersionInfo:成员, 返回版本信息的字符串 l        vlc.ve ...