@classmethod装饰器

当一个类中有多条用例,我们在执行的时候每执行一条用例就要重新打开一次浏览器操作,例如下:

start

test1

quit

start

test2

start

若我们使用@classmethod装饰器,就只需要打开一次浏览器,执行完用例后再关闭,例如下:

start

test1

test2

quit

 

代码:

from selenium import webdriver
import unittest,time
from selenium.webdriver.support import expected_conditions as EC
class Test1(unittest.TestCase):
#测试类,是多个测试用例的集合,可以把一些相同的操作写成一个类
@classmethod
def setUpClass(cls):
cls.driver=webdriver.Chrome()
cls.driver.get("http://www.cnblogs.com/linbao/")

time.sleep(2)

def test_01(self):
u'''验证元素存在:博客园'''
locator = ("id", "blog_nav_sitehome")
text = u"博客园"
time.sleep(2)
result = EC.text_to_be_present_in_element(locator, text)(self.driver)
time.sleep(2)
self.assertTrue(result)
def test_02(self):
u'''验证元素存在:首页'''
locator = ("id", "blog_nav_myhome")
text = u"首页"
time.sleep(2)
result = EC.text_to_be_present_in_element(locator, text)(self.driver)
time.sleep(2)
self.assertTrue(result)

@classmethod
def tearDownClass(cls):
# 后置操作
time.sleep(2)
cls.driver.quit()


if __name__=="__main__":
#运行主函数
unittest.main()

 

posted @ 2017-09-21 15:10  女林  阅读(960)  评论(0编辑  收藏  举报