测试套件就是测试集,测试集是测试用例的集合。

a.按用例顺序执行(addtest)

当addtest与unittest的测试规则冲突时,仍然按照ASCII码的顺序执行。

import unittest
from selenium import webdriver class Baidu_Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.maximize_window()
cls.driver.implicitly_wait(30)
cls.driver.get("http://www.baidu.com/") @classmethod
def tearDownClass(cls):
cls.driver.quit() def test_baidu_news(self):
self.driver.find_element_by_link_text("新闻").click()
print("aaa")
self.driver.back() def test_baidu_map(self):
self.driver.find_element_by_link_text("地图").click()
print("bbb")
self.driver.back() if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(Baidu_Test("test_baidu_news"))
suite.addTest(Baidu_Test("test_baidu_map"))
unittest.TextTestRunner().run(suite)

我是在ubuntu16.04上安装的python3.5.2,运行上述代码后发现并不是先执行的 “test_baidu_news”这个测试用例,依然是先执行“test_baidu_map”再执行“test_baidu_news”

执行结果如下:

Ran 2 tests in 13.497s

OK

Process finished with exit code 0
bbb
aaa

总结:在要按顺序执行时,可以将测试用例设置为test_001这样。

b. 按测试类执行(makesuit)
if __name__ == "__main__":
suite = unittest.TestSuite(unittest.makeSuite(F2))
unittest.TextTestRunner().run(suite)

c.按测试模块来执行

import unittest
from selenium import webdriver class baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get("http://www.baidu.com/") def tearDown(self) -> None:
self.driver.quit() def test_baidu_news(self):
self.driver.find_element_by_link_text("新闻").click() def test_baidu_map(self):
self.driver.find_element_by_link_text("地图").click() class baidu_search(unittest.TestCase):
def setUp(self) -> None:
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get("http://www.baidu.com/") def tearDown(self) -> None:
self.driver.quit() def test_badu_search(self):
self.driver.find_element_by_id("kw").send_keys("english")
self.driver.find_element_by_id("su").click() if __name__ == "__main__":
suite = unittest.TestLoader().loadTestsFromModule("unittest_case4.py")
unittest.TextTestRunner().run(suite)  
d.优化测试套件

第一种:

import unittest
from selenium import webdriver class baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get("http://www.baidu.com/") def tearDown(self) -> None:
self.driver.quit() def test_baidu_news(self):
self.driver.find_element_by_link_text("新闻").click() def test_baidu_map(self):
self.driver.find_element_by_link_text("地图").click() @staticmethod
def suite():
suite = unittest.TestSuite(unittest.makeSuite(baidu))
return suite if __name__ == "__main__":
unittest.TextTestRunner().run(baidu.suite())

第二种:把固定的语句分离出来

测试用例模块:

from test import * #倒入自己编写的模块
import unittest class baidu(Info): #继承
def test_baidu_news(self):
self.driver.find_element_by_link_text("新闻").click() def test_baidu_map(self):
self.driver.find_element_by_link_text("地图").click() if __name__ == "__main__":
unittest.main(verbosity=2)

 固定的套件模块(test.py):

import unittest
from selenium import webdriver
class Info(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get("http://www.baidu.com/")
def tearDown(self) -> None:
self.driver.quit()

  

unittest测试套件的更多相关文章

  1. unittest 测试套件使用汇总篇

    # coding=utf-8import unittestfrom inspect import isfunction def usage(): """also unit ...

  2. Python+Selenium笔记(四):unittest的Test Suite(测试套件)

    (一) Test Suite测试套件 一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行. 应用unittest的TestSui ...

  3. unittest单元测试框架之测试套件(三)

    1.测试套件(注意:测试用例先添加先执行,后添加后执行,由此组织与设定测试用例的执行顺序) addTests:添加多个测试用例 addTest:添加单个测试用例 import unittest fro ...

  4. python+unittest框架第二天unittest之简单认识Test Suite:测试套件

    今天了解下测试套件Test Suite,什么是测试套件,测试套件是由多个Test Case测试用例组成的,当然也可以由多个子测试套件组成. 接下来看下如果构建测试套件,构建测试套件的方法: 1.用un ...

  5. unittest详解(三) 测试套件(TestSuite)

    在前面一章中示例了如何编写一个简单的测试,但有两个问题: 我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序呢? 一个测试文件,我们直接执行 ...

  6. Unittest框架之测试套件:TestSuite

    前言 使用了unittest.main()方法执行当前模块里的测试用例. 除此之外,Unittest还可以通过测试套件构造测试用例集,再执行测试用例 将测试用例添加至TestSuite(测试套件) 方 ...

  7. 『心善渊』Selenium3.0基础 — 28、unittest中测试套件的使用

    目录 1.测试套件的作用 2.使用测试套件 (1)入门示例 (2)根据不同的条件加载测试用例(了解) (3)常用方式(推荐) 1.测试套件的作用 在我们实际工作,使用unittest框架会有两个问题: ...

  8. Unittest方法 -- 测试套件

    TestSuite 测试固件 一. import unittestclass F6(unittest.TestCase): def setUp(self): pass def tearDown(sel ...

  9. selenium测试套件

    1.测试套件测试套件,简单理解就是讲多个用例,装在一个容器里来同时执行完成. 2.测试套件分析 #coding=utf-8 import unittestimport BaiDuSearch,BaiD ...

随机推荐

  1. Luogu 3371【模板】单源最短路径

    Luogu 3371[模板]单源最短路径 第一次写博客用图论题来试一试 接下来是正文部分 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包 ...

  2. Tensorflow笔记二

    MNIST手写体识别 (Mixed National Institute of Standards and Technology database)的28*28字符识别共0-9类. 在ipython命 ...

  3. Linux系统(虚拟机)安装禅道

    1.查看linux系统版本 uname -a 2.禅道下载:http://www.zentao.net/download.html,找到要下载的版本,点击进入各平台下载: 3.将下载好的安装包上传到l ...

  4. 开源jar包bug导致的CPU消耗200%问题分析案例

    mapdb是什么 mapdb是一个快速.易用的嵌入式java数据库,主要提供map和set形式的数据存储,使用起来就像是在操作java本身的map,set, mapdb可以提供内存级别和磁盘级别的缓存 ...

  5. Excel—图表函数

    OFFSET(引用函数)它可以找一个区域,把一个区域的值都拿回来 函数语法:OFFSET(从哪个单元格开始,这个单元格下移多少行开始,然后现在的位置再往右多少列开始,要取的值是现在的位置开始下移多少行 ...

  6. UOJ#291. 【ZJOI2017】树状数组 树套树

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ291.html 题解 结论:这个写错的树状数组支持的是后缀加和后缀求和.这里的后缀求和在 x = 0 的时 ...

  7. 关于二进制枚举-计蒜客-得到整数X

    某君有 n个互不相同的正整数,现在他要从这 n 个正整数之中无重复地选取任意个数,并仅通过加法凑出整数 X.求某君有多少种不同的方案来凑出整数 X. 输入格式 第一行,输入两个整数 n,X(1≤n≤2 ...

  8. 四、OpenStack—glance组件介绍与安装

    一.glance介绍 Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚拟机镜像的metadata及 ...

  9. BZOJ.4842.[NEERC2016]Delight for a Cat(费用流)

    BZOJ 参考这儿. 首先如果一个活动的时间满足条件,那么另一个活动也一定满足.还有就是这题就是费用流没有为什么.不妨假设最初所有时间都用来睡觉,那么我们要对每个\(k\)大小区间选出\([t2,k- ...

  10. SpringInAction学习笔记(一):核心概念

    Spring自带了多种应用上下文 AnnotationConfigApplicationContext:从一个或多个java配置类中加载应用上下文 AnnotationConfigWebApplica ...