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

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. .Net Core项目管理----Git的一些基本使用方法

    使用git的基本操作 1.Git的克隆 git clone https://XXXXXXXXXXXXXXXXXXXXX 2.拉取 git pull 3.查询状态 git status 4.添加 git ...

  2. 基于spark-streaming实时推荐系统

    基于spark-streaming实时推荐系统(一) 基于spark-streaming实时推荐系统( 二) 基于spark-streaming实时推荐系统(三)

  3. 关于haproxy

    高性能负载均衡软件 haproxy 一.四层和七层负载均衡的区别: 所谓的四层就是OSI参考模型中的第四层,四层负载均衡也称为四层交换机,他主要是通过分析IP层及TCP/UDP层的流量实现的基于IP加 ...

  4. 使用X509Certificate2类操作证书文件

    public class CertHelper { string pfxPath = @"E:\开发辅助项目\cert\taisuyuanqing.pfx"; string cer ...

  5. .Net Core Web/Console 下使用Nlog

    .Net Core Console 下使用Nlog 官方介绍: https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-C ...

  6. Angular动画

    Angular动画基于W3C的Web Animations标准.不在Angular Core中了. 组件里面定义一个或多个触发器trigger,每个触发器有一系列的状态和过渡效果来实现. 动画其实就是 ...

  7. 爬虫之正则和xpath

    一.正解解析 常用正则表达式回顾: 单字符: . : 除换行以外所有字符 [] :[aoe] [a-w] 匹配集合中任意一个字符 \d :数字 [-] \D : 非数字 \w :数字.字母.下划线.中 ...

  8. Ext使用中问题总结

    隐藏 Ext.form.DateField 的触发(trigger)元素使其内容不能修改并使其所有的文本框(text field)显示格式为Y-m-d items : [{ xtype : ' dat ...

  9. 关机,重启BAT命令

    关机命令shutdown -s -t 重启命令 shutdown -r -t

  10. 安装es6编译babel

    1.它的安装命令如下. 全局安装 :$ npm install --global babel-cli项目下安装: $ npm install -g babel-cli --save-dev 2.配置. ...