unittest测试套件
测试套件就是测试集,测试集是测试用例的集合。
当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这样。
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)
第一种:
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测试套件的更多相关文章
- unittest 测试套件使用汇总篇
# coding=utf-8import unittestfrom inspect import isfunction def usage(): """also unit ...
- Python+Selenium笔记(四):unittest的Test Suite(测试套件)
(一) Test Suite测试套件 一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行. 应用unittest的TestSui ...
- unittest单元测试框架之测试套件(三)
1.测试套件(注意:测试用例先添加先执行,后添加后执行,由此组织与设定测试用例的执行顺序) addTests:添加多个测试用例 addTest:添加单个测试用例 import unittest fro ...
- python+unittest框架第二天unittest之简单认识Test Suite:测试套件
今天了解下测试套件Test Suite,什么是测试套件,测试套件是由多个Test Case测试用例组成的,当然也可以由多个子测试套件组成. 接下来看下如果构建测试套件,构建测试套件的方法: 1.用un ...
- unittest详解(三) 测试套件(TestSuite)
在前面一章中示例了如何编写一个简单的测试,但有两个问题: 我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序呢? 一个测试文件,我们直接执行 ...
- Unittest框架之测试套件:TestSuite
前言 使用了unittest.main()方法执行当前模块里的测试用例. 除此之外,Unittest还可以通过测试套件构造测试用例集,再执行测试用例 将测试用例添加至TestSuite(测试套件) 方 ...
- 『心善渊』Selenium3.0基础 — 28、unittest中测试套件的使用
目录 1.测试套件的作用 2.使用测试套件 (1)入门示例 (2)根据不同的条件加载测试用例(了解) (3)常用方式(推荐) 1.测试套件的作用 在我们实际工作,使用unittest框架会有两个问题: ...
- Unittest方法 -- 测试套件
TestSuite 测试固件 一. import unittestclass F6(unittest.TestCase): def setUp(self): pass def tearDown(sel ...
- selenium测试套件
1.测试套件测试套件,简单理解就是讲多个用例,装在一个容器里来同时执行完成. 2.测试套件分析 #coding=utf-8 import unittestimport BaiDuSearch,BaiD ...
随机推荐
- ELK全Dokcer 部署
环境准备: docker-complete 解压 su root 进入目录 rpm -Uvh *.rpm 安装docker systemctl start docker systemctl enabl ...
- FTP、FTPS和SFTP
FTP 一.两种传输方式 ASCII传输方式 假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那 ...
- Android6.0以上系统动态获取权限
动态权限的申请方法: 1.首先,需要在AndroidManifest.xml静态申请权限,否则无法动态申请权限: <uses-permission android:name="andr ...
- CentOS Linux Jenkins安装、部署、更新
1.安装:https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions2.部署: 注意事项: ...
- VB 字符串转换为UTF-8
dim e as object Set e=CreateObject("MSScriptControl.ScriptControl") e.Language = "jav ...
- 从svn迁移至Git并保留所有 commit 记录
用户映射文件user.txt,等号左边为svn账号,右边为Git用户名和邮箱.注意:svn中有多少用户就要映射多少 test1=test1<147258369@qq.com>test2=t ...
- spring-data-rest的魔力 10分钟实现增删改查
目录 创建项目 启动项目 添加person 查看person 及 person 列表 条件查询 分页查询 controller 去哪里了 自定义 spring-data-rest 魔力之外的contr ...
- 解决问题SyntaxError: Unexpected token import
ES6语法的模块导入导出(import/export)功能,我们在使用它的时候,可能会报错: SyntaxError: Unexpected token import 语法错误:此处不应该出现impo ...
- RabbitMQ通过Exchange.headers属性代替routekey,x-match实现队列精准匹配
消费者: static void Main(string[] args) { ConnectionFactory factory = new ConnectionFactory() { HostNam ...
- Selenium Webdriver点击事件失效问题
最近在用selenium webdriver时,遇到一个棘手的问题,点击事件有时候会失效,具体原因我也不知道是什么. 但是有两个解决办法,第一,在点击该标签前,先点击它的父标签,也就是点击两次. dr ...