selenium之unittest的简单用法(二)

来源:互联网 发布:淘宝客学生采集群 编辑:程序博客网 时间:2024/06/06 06:31

一、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  
原创粉丝点击