3.2 unittest执行顺序

前言
很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行。
本篇通过最简单案例详细讲解unittest执行顺序。

一、案例分析
1.先定义一个测试类,里面写几个简单的case

  1. # coding:utf-8
  2. import unittest
  3. import time
  4. class Test(unittest.TestCase):
  5.     def setUp(self):
  6.         print "start!"
  7.     def tearDown(self):
  8.         time.sleep(1)
  9.         print "end!"
  10.     def test01(self):
  11.         print "执行测试用例01"
  12.     def test03(self):
  13.         print "执行测试用例03"
  14.     def test02(self):
  15.         print "执行测试用例02"
  16.  
  17.     def addtest(self):
  18.         print "add方法"
  19. if __name__ == "__main__":
  20.     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.具体实例参考 登录方法(参数化)

  1. # coding:utf-8
  2. from selenium import webdriver
  3. import unittest
  4. import time
  5. class Bolg(unittest.TestCase):
  6.     u'''登录博客'''
  7.     def setUp(self):
  8.         self.driver = webdriver.Firefox()
  9.         url = "https://passport.cnblogs.com/user/signin"
  10.         self.driver.get(url)
  11.         self.driver.implicitly_wait(30)
  12.     def login(self, username, psw):
  13.         u'''这里写了一个登录的方法,账号和密码参数化'''
  14.         self.driver.find_element_by_id("input1").send_keys(username)
  15.         self.driver.find_element_by_id("input2").send_keys(psw)
  16.         self.driver.find_element_by_id("signin").click()
  17.         time.sleep(3)
  18.     def is_login_sucess(self):
  19.         u'''判断是否获取到登录账户名称'''
  20.         try:
  21.             text = self.driver.find_element_by_id("lnk_current_user").text
  22.             print text
  23.             return True
  24.         except:
  25.             return False
  26.     def test_01(self):
  27.         u'''登录案例参考:账号,密码自己设置'''
  28.         self.login(u"上海-悠悠", u"xxxx")  # 调用登录方法
  29.         # 判断结果
  30.         result = self.is_login_sucess()
  31.         self.assertTrue(result)
  32.     def test_02(self):
  33.         u'''登录案例参考:账号,密码自己设置'''
  34.         self.login(u"上海-悠悠", u"xxxx")  # 调用登录方法
  35.         # 判断结果
  36.         result = self.is_login_sucess()
  37.         self.assertTrue(result)
  38.     def tearDown(self):
  39.         self.driver.quit()
  40.  
  41. if __name__ == "__main__":
  42.     unittest.main()

3.2 unittest执行顺序的更多相关文章

  1. python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)

    简介 大多数的初学者在使用 unittest 框架时候,不清楚用例的执行顺序到底是怎样的.对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行.虽然或许通过代码实现了,也是稀里糊涂的一知 ...

  2. unittest执行顺序,使用unittest.main()按照test开头,由0-9,A-Z,a-z的顺序执行; 可使用TestSuite类的addTest方法改变执行顺序;

    import unittestclass Study(unittest.TestCase): # def setUp(self): # print('start') # def tearDown(se ...

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

    前言 很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的.对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行. 本篇通过最简单案例详细讲解unittest执行顺 ...

  4. Selenium2+python自动化52-unittest执行顺序【转载】

    前言 很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的.对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行. 本篇通过最简单案例详细讲解unittest执行顺 ...

  5. unittest测试用例的执行顺序

    unittest的测试顺序为:有几个测试用例,测试固件就会执行多少次. 例如:只有一个测试用例时: setup--testcase1--teardown import unittest class F ...

  6. python+unittest 控制用例的执行顺序

    unittest的main()方法执行用例的顺序是按照测试类.测试方法的名字的ASCII顺序来执行测试方法.所以可能执行的顺序和你想要的顺序不一样,可能通过下面两种方法修改执行顺序 1. 通过Test ...

  7. python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures

    1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...

  8. unittest中setUp与setUpClass执行顺序

    最基础的概念 1.setUP(self)看下面的执行顺序 import unittest class TestGo(unittest.TestCase): def setUp(self): print ...

  9. python单元测试框架-unittest(三)之用例执行顺序

    执行顺序规则: 测试类或测试方法的数字与字母顺序0~9,A-Z 执行如下脚本,理解用例执行顺序 #coding=utf-8 import unittest class Test1(unittest.T ...

随机推荐

  1. flutter 常用插件

    audio_recorder: any #录音.播放 flutter_sound: ^1.1.5#录音 dropdown_menu: ^1.1.0#下拉菜单 simple_permissions:#权 ...

  2. MySQL5.7 编译安装

    准备 yum install cmake yum install -y bison yum install -y libaio-devel yum install -y boost 下载 percon ...

  3. java中什么是泛型

    一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(Stri ...

  4. oracle中number数据类型简单明了解释

    NUMBER (p,s) p和s范围: p 1-38 s -84-127 number(p,s),s大于0,表示有效位最大为p,小数位最多为s,小数点右边s位置开始四舍五入,若s>p,小数点右侧 ...

  5. 一道简单树形dp

    题意:给定一棵树,从中选出一些节点,使得不成父子关系的节点对数最多.问这个最大值是多少. 思路:首先既然是给定一颗树,先要选择合适的数据结构,来保存这颗树.由于这颗树只关心根节点在哪里,所以只需要用一 ...

  6. Win32汇编学习(9):窗口控件

    这次我们将探讨控件,这些控件是我们程序主要的输入输出设备. 理论: WINDOWS 提供了几个预定义的窗口类以方便我们的使用.大多数时间内,我们把它们用在对话框中,所以我们一般就它们叫做子窗口控件.子 ...

  7. centos6.5下安装Redis

    已有redis-3.2.1.tar.gz文件 拖到centos系统的桌面 现在在桌面目录下 tar -zxv -f redis-3.2.1.tar.gz以解压压缩包 cd redis-3.2.1以切换 ...

  8. Android外包团队——Jquery乱码解决方案

    最近使用jQuery遇到中文乱码问题,其实他的中文乱码就是因为contentType没有指定编码,只需在jQuery.js中搜索’contentType’ 然后在application/x-www-f ...

  9. Android View 阴影的总结

    关于 Android 阴影,大家肯定不陌生的.但是Android 中到底有多少种方式可以实现阴影效果以及各种方式之间有什么区别和优缺点,这就是我想总结的.下面我们一个一个来说: 一.各种实现阴影的方式 ...

  10. 『计算机视觉』Mask-RCNN_训练网络其一:数据集与Dataset类

    Github地址:Mask_RCNN 『计算机视觉』Mask-RCNN_论文学习 『计算机视觉』Mask-RCNN_项目文档翻译 『计算机视觉』Mask-RCNN_推断网络其一:总览 『计算机视觉』M ...