Selenium 2自动化测试实战30(unittest补充)
unittest补充
1.用例执行的顺序
#test.py
#coding:utf-8
from Demo1 import Count
import unittest class TestBdd(unittest.TestCase): def setUp(self):
print "test TestBdd:" def test_ccc(self):
print "test ccc" def test_aaa(self):
print "test aaa" def tearDown(self):
pass class TestAdd(unittest.TestCase):
def setUp(self):
print "test TestAdd:" def test_add(self):
print "test bbb" def tearDown(self):
pass if __name__=="__main__":
unittest.main()
运行后的结果如下图所示:

无论执行多少次,结果都是一样的,通过上面的结果,规律如下:
unittest框架默认根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0~9,A~Z,a-z。所以,TestAdd类会优先于TestBdd类被执行,test_aaa()方法会优先于test_ccc()被执行,因而它并没有按照用例从上到下的顺序执行。
对于测试目录和测试文件来说,unittest框架同样是按照这个规则来加载测试用例的。
那么可不可以让test_ccc()先执行?答案是肯定的,只是不能使用默认的main()方法了,而是需要通过TestSuite类的addTest()方法按照一定的顺序来加载。
#test.py
#coding:utf-8
import unittest class TestBdd(unittest.TestCase): def setUp(self):
print "test TestBdd:" def test_ccc(self):
print "test ccc" def test_aaa(self):
print "test aaa" def tearDown(self):
pass class TestAdd(unittest.TestCase):
def setUp(self):
print "test TestAdd:" def test_add(self):
print "test bbb" def tearDown(self):
pass if __name__=="__main__":
suite=unittest.TestSuite()
suite.addTest(TestBdd("test_ccc"))
suite.addTest(TestAdd("test_add"))
suite.addTest(TestBdd("test_aaa")) runner=unittest.TextTestRunner()
runner.run(suite)
执行结果如下所示:

现在的执行顺序就是addTest()方法所加载的顺序。Discover()的加载测试用例的规则与main()方法相同。所以,我们只能通过测试用例的名称来提高被执行的优先级。例如:将希望先被执行的测试用例命名为“test_a”,希望最后执行的测试用例命名为“test_z”。
2.执行多级目录的用例
要控制web用例的数量,但是当测试用例达到一定量级时,就要考虑划分目录,比如目录如下测试目录:
test_project/test_case/
--test_bbb/
------test_ccc/
---------test_c.py
------test_b.py
--test_ddd/
---------test_d.py
test_a.py
对于这个目录,如果将discover()方法中的start_dir参数定位为“./test_case/”目录,那么只能加载test_a.py文件中的测试用例。怎样让unittest框架查找到test_case/的子目录中的测试文件呢?方法很简单,在每个目录下放一个__init__.py文件。
Selenium 2自动化测试实战30(unittest补充)的更多相关文章
- Selenium 2自动化测试实战
Selenium 2自动化测试实战 百度网盘 链接:https://pan.baidu.com/s/1aiP3d8Y1QlcHD3fAlEj4sg 提取码:jp8e 复制这段内容后打开百度网盘手机Ap ...
- Selenium 2自动化测试实战3(函数、类和方法)
一.函数.类和方法1.函数在python中通过def关键字来定义函数 创建一个add()函数,此函数接收两个参数a,b,通过print()打印a+b的结果.调用add()函数,并且上传两个参数3,5给 ...
- 《Selenium 2自动化测试实战 基于Python语言》中发送最新邮件无内容问题的解决方法
虫师的<Selenium 2自动化测试实战 基于Python语言>是我自动化测试的启蒙书 也是我推荐的自动化测试入门必备书,但是书中有一处明显的错误,会误导很多读者,这处错误就是第8章自动 ...
- Selenium 2自动化测试实战33(带unittest的脚本分析)
带unittest的脚本分析 #test.py #coding:utf-8 from selenium import webdriver from selenium.webdriver.common. ...
- Selenium 2自动化测试实战26(unittest单元测试框架)
一.unittest单元测试框架 1.认识单元测试 1.断言方法 #计算器类 #coding:utf-8 #计算器类 class Count: def __init__(self,a,b): self ...
- Selenium 2自动化测试实战27(unittest重要概念,test fixture、test case、test suite和test runne)
一.unittest重要概念 4个重要概念:test fixture.test case.test suite和test runner. 1.Test Case一个TestCase的实例就是一个测试用 ...
- Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记
背景 最近在弄 appium,然后顺便发现了 Selenium 框架和这本书,恰好这本书也介绍了一些软件测试&自动化测试的理论知识,遂拿过来学习学习.所以本文几乎没有实践内容,大多都是概念和工 ...
- Selenium+Python自动化测试实战(2)元素定位
1.Selenium2 的原理 第一篇分享简单介绍了基于Python开发的Selenium2的环境配置,这篇主要讲一下基本用法.首先讲一下Selenium2的基本原理.基本上知道了这个东西是怎么回事, ...
- Selenium 2自动化测试实战39(Page Object设计模式)
Page Object设计模式 Page object是selenium自动化测试项目开发时间的最佳设计模式之一,主要体现在对界面交互细节的封装. 1.认识page object优点如下:1.减少代码 ...
随机推荐
- IPC之namespace.c源码解读
// SPDX-License-Identifier: GPL-2.0 /* * linux/ipc/namespace.c * Copyright (C) 2006 Pavel Emelyanov ...
- shell i/o交互及重定向
标准输入:/dev/stdin,文件描述号:0,默认设备:键盘 标准输出:/dev/stdout,文件描述号:1,默认设备:显示器 标准错误输出:/dev/stderr,文件描述号:2,默认设备:显示 ...
- 异步消息处理机制相关面试问题-handler面试问题详解
什么是handler? 这个异常应该也就是引出handler的原因,也就是默认在非UI线程中是无法去更新UI的东东滴,那到底什么上handler呢? handler通过发送和处理Message和Run ...
- Ribbon整合Consul,出现No instances available for XXX 异常
先贴代码: @RestController public class CallHelloController { @Autowired private LoadBalancerClient loadB ...
- pro git 读书笔记 3 Git 分支
分支 新建分支:git branch 分支名 切换到该分支:git checkout 分支名 补充:以上两条语句等价于一句:git checkout -b 分支名 转换分支的时候最好保持一个清洁的工作 ...
- charindex函数--->检索字符在字符串中的起始位置
语法:CHARINDEX(检索字符,被检索字符串) 返回值:检索字符在被检索字符串中的起始位置.
- Linux系统安装xinetd服务
只需安装xinetd包 安装包 #yum -y install xinetd 安装成功后即可 service xinetd start service xinetd stop service xine ...
- [Android]第一个cm调试分析
0x00:写在前面 一直想入门Android安全,当时是极客大挑战出题的时候,被cx表哥甩锅强行去学了点android的开发,之后慢慢接触,感觉还是挺有意思的.cx表哥说先从逆向分析入门吧,之后可以 ...
- js上传超大文件解决方案
需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...
- 数位dp入门(内容一样,新版格式)
顾名思义,数位dp,是一种用来计数的dp,就是把一个数字拆成一个一个数位去统计 如果现在给你一道题,需要你求在区间[l,r]内满足条件的解的个数,我们很容易想到去暴力枚举,但要是数据范围太大这种办法就 ...