首页 > 代码库 > Selenium2+python自动化52-unittest执行顺序

Selenium2+python自动化52-unittest执行顺序

前言

很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行。

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

一、案例分析

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

# coding:utf-8
import unittest
import time
class Test(unittest.TestCase):
    def setUp(self):
        print "start!"

    def tearDown(self):
        time.sleep(1)
        print "end!"

    def test01(self):
        print "执行测试用例01"

    def test03(self):
        print "执行测试用例03"

    def test02(self):
        print "执行测试用例02"

    def addtest(self):
        print "add方法"

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

 

二、执行结果

D:\test\python2\python.exe D:/test/test01.py
start!
执行测试用例01
.end!
start!
执行测试用例02
end!
.start!
执行测试用例03
end!
.
----------------------------------------------------------------------
Ran 3 tests in 3.001s

OK

 

三、结果分析

1.执行顺序:

start!-执行测试用例01-end!

start!-执行测试用例02-end!

start!-执行测试用例03-end!

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

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

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

--addtest(self)这个方法没执行,说明只执行test开头的用例

 

四、selenium实例

1.具体实例参考这篇Selenium2+python自动化48-登录方法(参数化)

# coding:utf-8
from selenium import webdriver
import unittest
import time
class Bolg(unittest.TestCase):
    u‘‘‘登录博客‘‘‘
    def setUp(self):
        self.driver = webdriver.Firefox()
        url = "https://passport.cnblogs.com/user/signin"
        self.driver.get(url)
        self.driver.implicitly_wait(30)

    def login(self, username, psw):
        u‘‘‘这里写了一个登录的方法,账号和密码参数化‘‘‘
        self.driver.find_element_by_id("input1").send_keys(username)
        self.driver.find_element_by_id("input2").send_keys(psw)
        self.driver.find_element_by_id("signin").click()
        time.sleep(3)

    def is_login_sucess(self):
        u‘‘‘判断是否获取到登录账户名称‘‘‘
        try:
            text = self.driver.find_element_by_id("lnk_current_user").text
            print text
            return True
        except:
            return False

    def test_01(self):
        u‘‘‘登录案例参考:账号,密码自己设置‘‘‘
        self.login(u"上海-悠悠", u"xxxx")  # 调用登录方法
        # 判断结果
        result = self.is_login_sucess()
        self.assertTrue(result)

    def test_02(self):
        u‘‘‘登录案例参考:账号,密码自己设置‘‘‘
        self.login(u"上海-悠悠", u"xxxx")  # 调用登录方法
        # 判断结果   # 交流QQ群:232607095
        result = self.is_login_sucess()
        self.assertTrue(result)

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

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

 

学习过程中有遇到疑问的,可以加selenium(python+java) QQ群交流:232607095

觉得对你有帮助,就在右下角点个赞吧,感谢支持!

Selenium2+python自动化52-unittest执行顺序