您的位置:首页 > 其它

selenium之unittest的简单用法(二)

2017-08-28 15:58 225 查看

一、unittest 的执行顺序

很多初学者在使用 unittest 框架时候,不清楚用例的执行顺序到底是怎样的。

对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行。

本篇通过最简单案例详细讲解 unittest 执行顺序。

二、案例分析

1.先定义一个测试类,里面写几个简单的 case

#-*- coding:utf-8 -*-
import unittest
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
import time

class Test(unittest.TestCase):
def setUp(self):
print "开始"
def tearDown(self):
time.sleep(1)
print "结束"
def test01(self):
print "01测试"
def test02(self):
print "02测试"
def testadd(self):
print "add方法"
def test03(self):
print "03测试"
if __name__ == '__main__':
unittest.main()


2.执行结果:

C:\Python27\python.exe F:/pycharm-workspace/Django_Test/test2.py
开始
01测试
结束
开始
02测试
..结束
开始
03测试
.结束
开始
add方法
.
----------------------------------------------------------------------
Ran 4 tests in 4.001s

OK
结束

Process finished with exit code 0


3.结果分析

1).执行顺序:

开始-执行测试用例 01-结束

开始-执行测试用例 02-结束

开始-执行测试用例 03-结束

开始-执行测试用例add方法-结束

2).从执行结果可以看出几点

–先执行的前置 setUp,然后执行的用例(test*),最后执行的后置 tearDown

–测试用例(test*)的执行顺序是根据 01-02-03 执行的,也就是说根据用例名称来顺序执行的

三、selenium 实例

#-*- coding:utf-8 -*-
import unittest
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
import time

class bolg(unittest.TestCase):
u'''登录博客'''
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("https://passport.csdn.net/?service=http://write.blog.csdn.net/postedit?ref=toolbar")
self.driver.implicitly_wait(10)
def login(self,username,password):
u'''这里写一个登录的方法,账号和密码参数化'''
self.driver.find_element_by_id('username').send_keys(username)
self.driver.find_element_by_id('password').send_keys(password)
self.driver.find_element_by_class_name('logging').click()
time.sleep(2)
def is_login_sucess(self):
u'''判断是否获取到登录账号'''
try:
text = self.driver.find_element_by_class_name('user_name').text
print text
return True
except:
return False
def test_01(self):
u'''登录案例参考:账号,密码'''
self.login('MTbaby','123456') #调用登录方法
#判断结果
result = self.is_login_sucess()
self.assertTrue(result)
def test_02(self):  #这里写两遍的目的是为了说明装饰器的好处,具体在后面的文字会涉及
u'''登录案例参考:账号,密码'''
self.login('MTbaby','123456')
result = self.is_login_sucess()
self.assertTrue(result)

def tearDown(self):
self.driver.quit()

if __name__ == '__main__':
unittest.main()


执行结果:

C:\Python27\python.exe F:/pycharm-workspace/Django_Test/test2.py
MTbabyMTbaby的博客
.MTbabyMTbaby的博客
.
----------------------------------------------------------------------
Ran 2 tests in 90.184s

OK

Process finished with exit code 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: