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

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. Marshal.PtrToStringAnsi中文乱码

    出错代码: string dec = Marshal.PtrToStringAnsi(audioOutput.psz_description);//输出 鎵0鍣?(Realtek High Defi ...

  2. 关于父窗口获取跨域iframe子窗口中的元素

    这几天在项目中遇到,一个难点, 就是需要异步加载一个pdf插件, 同时又需要获取这个插件中的点击事件来生成用户的下载记录. 刚开始也是想了很多方法,网上搜的 格式1:$("#iframe的I ...

  3. cxf webservice请求https

    本地java请求https接口,不需要添加证书: 只需要修改配置文件applicationContext-soap-client.xml: <beans xmlns="http://w ...

  4. C# 通过 Quartz .NET 实现 schedule job 的处理

    在实际项目的开发过程中,会有这样的功能需求:要求创建一些Job定时触发运行,比如进行一些数据的同步. 那么在 .Net Framework 中如何实现这个Timer Job的功能呢? 这里所讲的是借助 ...

  5. ubuntu16.04安装opencv3.4.0

    老实说这篇记录可能拖了有8个月了,早在去年6月份我应该是第一遍安装opencv.当时懒得记录,以为自己什么都能记得住.后来由于电脑各种原因,需要重装opencv,装的时候发现啥都记不住了.然后又得去找 ...

  6. 记一次线上Zabbix对Redis监控实录

    前言:Redis作为缓存服务器我想大家都比较的熟悉,那么,如果想要更好的维护和监控,那么我们会对其redis服务器统一监控起来,如何监控呢?如果在生产环境一台服务器部署多个redis,这样就会出现多个 ...

  7. js常用代码

    获取URL ?后的查询参数 function query(name) { var reg = new RegExp("(^|&)" + name + "=([^& ...

  8. 我把一些Linux的中英文命令做了对应翻译大家参考一下

    本文我们把Linux的中英文命令做了对应翻译,给需要的朋友参考一下.(http://wap.0834jl.com) 很多朋友在论坛上找Linux英文命令,我们给大家整理了比较全的Linux英文命令,并 ...

  9. 四、自动化平台搭建-Django-如何做验证码

    前提:安装包   pip install pillow==3.4.1 1.打开booktest/views.py,创建视图verify_code. from PIL import Image, Ima ...

  10. 2018年多校第三场第一题 A. Ascending Rating hdu6319

    比赛地址:http://acm.hdu.edu.cn/contests/contest_show.php?cid=804 题目编号:第一题 A. Ascending Rating  hdu6319 题 ...