setUp()和tearDown()函数
1.什么是setUp()和tearDown()函数?
2.为什么我们要用setUp()和tearDown()函数?
3.我们该怎样用setUp()和tearDown()?
1.什么是setUp()和tearDown()函数?
♦ setUp()函数是在众多函数或者说是在一个类类里面最先被调用的函数,而且每执行完一个函数都要从setUp()调用开始后再执行下一个函数,有几个函数就调用他几次,与位置无关,随便放在那里都是他先被调用。
♦ tearDown()函数是在众多函数执行完后他才被执行,意思就是不管这个类里面有多少函数,他总是最后一个被执行的,与位置无关,放在那里都行,最后不管测试函数是否执行成功都执行tearDown()方法;如果setUp()方法失败,则认为这个测试项目失败,不会执行测试函数也不执行tearDown()方法。
2.为什么我们要用setUp()和tearDown()函数?
♦ 我们利用这一特性在自动化中setup主要是进行测试前的初始化工作,比如在接口测试前面做一些前置的参数赋值,数据库操作等等 teardown是测试后的清除工作,比如参数还原或销毁,数据库的还原恢复等
3.我们该怎样用setUp()和tearDown()?
from selenium import webdriver
import unittest#第一步引入一个unittest
import time
class Buy_Broject_Establish(unittest.TestCase):#第二步创建继承一个unittest.TestCase的类
def setUp(self):#第三步定义一个setup,放一些准备的工作,或者准备一些测试数据。
self.driver = webdriver.Chrome()
self.driver.maximize_window()#放大浏览器
self.driver.get("http://10.20.24.45:8080/amcs/login.htm")
print(self.driver.title)#获取标题头并打印出来
print(self.driver.current_url)#获取当前页面的url
time.sleep(5)
def test_001(self):#进入登录页面
self.driver.find_element_by_id('account_content').send_keys("admin")#输入账号
self.driver.find_element_by_id('account_pass').send_keys("")#输入密码
self.driver.find_element_by_id('submitBtn').click()#点击登录
time.sleep(2)
print(u'进入首页')
def test_002(self):#进入收购项目管理首页
self.driver.find_element_by_xpath('//*[@id="J-h-menu-body"]/ul/li[3]/a').click()#进入项目管理
self.driver.find_element_by_xpath('//*[@id="J-h-menu-body"]/ul/li[3]/ul/li[1]/a/span').click()#进入收购项目管理
self.driver.implicitly_wait(5)#隐试等待
self.driver.switch_to.frame('mainFrame_assetPacketManagePro')#进入一个iframe。
time.sleep(10)
print('进入收购项目管理')
def tearDown(self):#第三步:定义一个tearDown,当我在测试完的时候我要对测试有一个销毁的过程比如说关闭浏览器,那么我们就写在tearDown当中
self.driver.quit()
if __name__ == '__main__':#如果其他的类调用的这个类的时候他就会自动忽略掉这个函数,他是为了测试自身的类用的
unittest.main()#启动程序
♦ 执行顺序如下:setUp---test_001---setUp---test_002---tearDown
setUp()和tearDown()函数的更多相关文章
- 『德不孤』Pytest框架 — 10、setUp()和tearDown()函数
目录 1.setUp()和tearDown()函数介绍 2.setUp()和tearDown()函数作用 3.setUp()和tearDown()函数说明 4.示例 (1)方法级 (2)类级 (3)函 ...
- MOOC(4)- setup和teardown函数
import unittest class TestRequest(unittest.TestCase): @classmethod def setUpClass(cls): print(" ...
- python单元测试框架pytest——fixture函数(类似unitest的setup和teardown)
pytest的setup和teardown函数(曾被一家云计算面试官问到过). pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作.与python自带的unitest ...
- nose的setup和teardown
参考:http://blog.csdn.net/linda1000/article/details/8533349 1.模块的setUp和tearDown def setUp(): print &qu ...
- python单元测试unittest、setUp、tearDown()
单元测试反应的是一种以测试为驱动的开发模式,最大的好处就是保证一个程序模块的行为符合我们设计的测试用例,在将来修改的时候,可以极大程度保证该模块行为仍然是正确的. 下面我编写一个Dict来,这个类的行 ...
- pytest自动化2:测试用例setup和teardown
前言: pytest支持函数和类两种用例方式,针对每种情况都有不同的代码 pytest用例运行级别 模块级(setup_module/teardown_module)开始于模块始末,全局的 函数级(s ...
- pytest 2.测试用例setup和teardown
之前我写的unittest的setup和teardown,还有setupClass和teardownClass(需要配合@classmethod装饰器一起使用),接下来就介绍pytest的类似于这类的 ...
- pytest文档4-测试用例setup和teardown
前言 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次. 当然还有更高级一点的setupClass和teardownClass,需 ...
- Python 单元测试 之setUP() 和 tearDown()
setUp:表示前置条件,它在每一个用例执行之前必须会执行一次 setUp可以理解为我们需要自动化测试时,需要打开网页窗口,输入对应测试地址,这一些属于前置条件. tearDown:表示释放资源,它在 ...
随机推荐
- <h1>02_Linux学习_命令</h1>
帮助命令: xxx --help man xxx 列出当前目录下的目录和文件: ls ls -l ls --help ...
- OOP的基本原则
OOP的基本原则 点击打开链接
- 单调队列——求m区间内的最小值
单调队列,顾名思义是指队列内的元素是有序的,队头为当前的最大值(单调递减队列)或最小值(单调递增序列),以单调递减队列为例来看队列的入队和出队操作: 1.入队: 如果当前元素要进队,把当前元素和队尾元 ...
- 【python进阶】深入理解系统进程2
前言 在上一篇[python进阶]深入理解系统进程1中,我们讲述了多任务的一些概念,多进程的创建,fork等一些问题,这一节我们继续接着讲述系统进程的一些方法及注意点 multiprocessing ...
- build.gradle使用gradle.property中定义的字段及乱码问题的解决
gradle.property文件可以用来定义一些字段 而这些字段可以被build.gradle文件引用到 例如:给大家贴出来一个gradle.property文件 # Project-wide Gr ...
- Hello Django
首先安装Django: 1.cmd界面,输入"pip3 install django" 2.输入"django-admin help",如下图表示安装成功 ...
- 《T-SQL查询》读书笔记Part 1.逻辑查询处理知多少
一.关于T-SQL T-SQL是ANSI和ISO SQL标准的MS SQL扩展,其正式名称为Transact-SQL,但一般程序员都称其为T-SQL. 二.逻辑查询处理各个阶段 2.1 逻辑查询处理流 ...
- mint-ui之picker爬坑记
picker的数据来源为动态获取时,数据无法正常渲染!因为方法不对,所以坑大了!深刻地体会到'业不精,我之过',谨以此文,深刻地记录一下踩坑及爬坑的整个过程,以便日后不再入坑,也给后来者提供一下参考 ...
- java ArrayList集合
ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类).在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来 ...
- 【转】详解JavaScript中的异常处理方法
有三种类型的编程错误:(1)语法错误和(2)运行时错误(3)逻辑错误:语法错误: 语法错误,也被称为解析错误,在编译时进行传统的编程语言,并出现在JavaScript解释时. 例如,下面一行将导致一个 ...