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()函数的更多相关文章

  1. 『德不孤』Pytest框架 — 10、setUp()和tearDown()函数

    目录 1.setUp()和tearDown()函数介绍 2.setUp()和tearDown()函数作用 3.setUp()和tearDown()函数说明 4.示例 (1)方法级 (2)类级 (3)函 ...

  2. MOOC(4)- setup和teardown函数

    import unittest class TestRequest(unittest.TestCase): @classmethod def setUpClass(cls): print(" ...

  3. python单元测试框架pytest——fixture函数(类似unitest的setup和teardown)

    pytest的setup和teardown函数(曾被一家云计算面试官问到过). pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作.与python自带的unitest ...

  4. nose的setup和teardown

    参考:http://blog.csdn.net/linda1000/article/details/8533349 1.模块的setUp和tearDown def setUp(): print &qu ...

  5. python单元测试unittest、setUp、tearDown()

    单元测试反应的是一种以测试为驱动的开发模式,最大的好处就是保证一个程序模块的行为符合我们设计的测试用例,在将来修改的时候,可以极大程度保证该模块行为仍然是正确的. 下面我编写一个Dict来,这个类的行 ...

  6. pytest自动化2:测试用例setup和teardown

    前言: pytest支持函数和类两种用例方式,针对每种情况都有不同的代码 pytest用例运行级别 模块级(setup_module/teardown_module)开始于模块始末,全局的 函数级(s ...

  7. pytest 2.测试用例setup和teardown

    之前我写的unittest的setup和teardown,还有setupClass和teardownClass(需要配合@classmethod装饰器一起使用),接下来就介绍pytest的类似于这类的 ...

  8. pytest文档4-测试用例setup和teardown

    前言 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次. 当然还有更高级一点的setupClass和teardownClass,需 ...

  9. Python 单元测试 之setUP() 和 tearDown()

    setUp:表示前置条件,它在每一个用例执行之前必须会执行一次 setUp可以理解为我们需要自动化测试时,需要打开网页窗口,输入对应测试地址,这一些属于前置条件. tearDown:表示释放资源,它在 ...

随机推荐

  1. get请求URL的转码

    String name = new String(json.getString("name").getBytes("iso8859-1"),"UTF- ...

  2. Android Studio INSTALL_FAILED_UID_CHANGED 错误

    错误发生于:启动调试时应用安装失败,提示"INSTALL_FAILED_UID_CHANGED". 出现此问题的原因大多是APK卸载不彻底造成冲突. 解决方案: 分别进入 /dat ...

  3. 8 个最好的 jQuery 树形 Tree 插件

    由于其拥有庞大,实用的插件库,使得 jQuery 变得越来越流行.今天将介绍一些最好的 jQuery 树形视图插件,具有扩展和可折叠的树视图.这些都是轻量级的,灵活的 jQuery 插件,它将一个无序 ...

  4. mac上Python多版本共存

    http://www.cnblogs.com/mingaixin/p/6295963.html https://www.cnhzz.com/pyenv_virtualenv_virtaulenvwra ...

  5. java面试总结

    一.java的集合框架 HashMap.HashTable.CurrentHashMap的底层数据结构与区别? CurrentHashMap与HashTable是如何保证线程安全的? ArrayLis ...

  6. 一张图搞定OAuth2.0

    1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简单的一件事情,网上一堆神乎其神的讲解,让我不得不写一篇文章来终结它们. 一项新的技术,无非就是了解它是什么,为什 ...

  7. Java移位运算符详解实例

    移位运算符它主要包括:左移位运算符(<<).右移位运算符(>>>).带符号的右移位运算符(>>),移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处 ...

  8. Reflection的getCallerClass静态方法

    Reflection的getCallerClass的使用 博客分类: java基础   Reflection的getCallerClass的使用:可以得到调用者的类.这个方法是很好用的. 0 和小于0 ...

  9. linux的远程唤醒

    这里主要是针对ubuntu系统的说明 1.检查计算机硬件是否支持WOL(wake on lan)功能. 1.1.检查主板和电源是否支持WOL: 进入BIOS的Power Management Setu ...

  10. 数组、ArrayList、List、LinkedList的区别

    一.数组 数组在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. 1.一维数组 声明一个数组: ]; 初始化一个数组: ] { , , , , }; //定长 声明并初始化: ...