测试套件

  应用unittest的Test Suite特性,可以将不同的测试组成一个逻辑组,然后设置统一的测试套来一起执行测试。通过TestSuite、TestLoader类来创建测试套件,最后用TestRunner类来执行测试套件。

  在使用之前我们为例子(百度)添加一个新的测试,用来检验主页。新的测试代码如下 :

import unittest
from selenium import webdriver class BaiduHomePageTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.implicitly_wait(30)
cls.driver.maximize_window()
cls.driver.get('https://www.baidu.com') def test_baidu_title(self):
tag = self.driver.title
self.assertEqual("百度一下,你就知道",tag) def test_baidu_homepape(self):
tag = self.driver.find_element_by_link_text("关于百度").text
self.assertIn("百度",tag) @classmethod
def tearDownClass(cls):
cls.driver.quit() if __name__ == '__main__':
unittest.main(verbosity=2)

  然后将把新的测试和之前的测试放到一个测试组件中,代码如下:

import unittest
from searchtests import BaiduSearchTest
from homepagetests import BaiduHomePageTest #get all tests from BaiduSearchTest and BaiduHomePageTest class
search_tests = unittest.TestLoader().loadTestsFromTestCase(BaiduSearchTest)
home_page_tests = unittest.TestLoader().loadTestsFromTestCase(BaiduHomePageTest) #create a test suite combing search_tests and home_page_tests
test_suite = unittest.TestSuite([home_page_tests, search_tests]) #run the suite
unittest.TextTestRunner(verbosity=2).run(test_suite)

  使用TestLoader类,将得到指定测试文件中的所有测试方法,用TestSuite类创建测试套件,最后TestRunner类将通过调用测试套件来运行文件中的所有测试。

  运行结果如下:

  要了解更多关于TestSuite的信息参考:

  https://docs.python.org/3.6/library/unittest.html#unittest.TestSuite

unittest测试框架详谈及实操(四)的更多相关文章

  1. Selenium之unittest测试框架详谈及实操

    申明:本文是基于python3.x及selenium3.x. unittest,也可以称为PyUnit,可以用来创建全面的测试套件,可以用于单元自动化测试(模块).功能自动化测试(UI)等等. 官方文 ...

  2. unittest测试框架详谈及实操(二)

    类级别的setUp()方法与tearDown()方法 在实操(一)的例子中,通过setUp()方法为每个测试方法都创建了一个Chrome实例,并且在每个测试方法执行结束后要关闭实例.是不是觉得有个多余 ...

  3. unittest测试框架详谈及实操(五)

    测试报告——生成HTML格式的测试报告 前面的实例输出的所有测试结果都是以命令行日志的方式展示,不止于难看,但也不适合直接把那样的测试结果截图发给相关人员,尤其是领导.这时需要更加友好的测试结果,既能 ...

  4. unittest测试框架详谈及实操(三)

    断言 unittest的TestCase类提供了很多实用的方法来校验预期结果和程序返回的实际结果是否一致.当然这些方法要求必须满足某些条件才能继续执行接下的测试.大致有3种这样的方法.各覆盖一个特定类 ...

  5. linux基础实操四

    实操一: 1)为新加的硬盘分区,一个主分区大小为10剩余空间给扩展分区,在扩展分区上划分2个逻辑分别为5G 2)式化主分区为ext3系统 #mkfs.ext3 /dev/sdb1 3 将逻辑分区设置为 ...

  6. python利用unittest测试框架组织测试用例的5种方法

    利用unittest测试框架可以编写测试用例,执行方式分两大类:利用main方法和利用testsuite,其中利用测试套件来组织测试用例可以有4种写法. 在此之前,先了解几个概念 TestCase:所 ...

  7. 基于Python的接口自动化-unittest测试框架和ddt数据驱动

    引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用 ...

  8. Python 下的unittest测试框架

    unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...

  9. Python接口测试实战3(下)- unittest测试框架

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

随机推荐

  1. 浅谈PHP面向对象编程(八、多态)

    8.0  多态 在设计一个成员方法时,通常希望该方法具备一定的通用性.例如要实现一个动物叫的方法,由于每个动物的叫声是不同的,因此可以在方法中接收-个动物类型的参数的对象当传人猫类对象时就发出猫类的叫 ...

  2. cocos2dx 3.6源码分析之文件路径

    cocos2dx中资源文件都放在Resources目录中,编译后会自动复制到exe所在的目录中. 核心类是FileUtils类,一个单例类. 三个重要的函数 void addSearchPath(co ...

  3. 使用Dottrace跟踪.net代码执行时间

    当程序遇到性能问题,如IIs请求反应缓慢,.net客户端程序执行缓慢,如何分析是哪里出了问题?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,清晰的看出是哪里执行时间过长,然后再分 ...

  4. Python 迭代器和生成器(转)

    Python 迭代器和生成器 在Python中,很多对象都是可以通过for语句来直接遍历的,例如list.string.dict等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的, ...

  5. **深入了解lambda

    之前已经了解过lambda了,但是在学习了闭包之后,我们有必要在探讨一下lambda(匿名函数). 匿名函数本质上就是一个函数,它所抽象出来的东西是一组运算. 它的使用场景就是:你在某处就真的只需要使 ...

  6. c++ 字符检测 TCharacter

    c++ 字符检测 IsSurrogatePair,IsHighSurrogate,IsLowSurrogate,ConvertToUtf32http://docwiki.embarcadero.com ...

  7. dclcommon200.bpl

    xe6 dclcommon200.bpl xe7 dclcommon210.bpl xe8  dclcommon220.bpl xe7,xe8都有对应的文件,xe6为何没有?

  8. .NET 等宽、等高、等比例、固定宽高生成缩略图 类

    #region 根据原图片生成等比缩略图 /// <summary> /// 根据源图片生成缩略图 /// </summary> /// <param name=&quo ...

  9. 第二天:让我们一起来玩玩css精灵(css sprites)

    1.效果图 2.html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://ww ...

  10. WIN7下为Editplus添加右键打开

    解决某些特殊情况, EditPlus 3在Windows7下使用右键菜单无法编辑文件的问题.1.Ctrl+R运行regedit2.在 HKEY_CLASSES_ROOT\* 下新建项 shell3.在 ...