selenium之unittest的简单用法(二)

一、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  
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值