前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口测试基础——第6篇unittest模块(三)

接口测试基础——第6篇unittest模块(三)

作者头像
孟船长
发布2018-05-18 18:03:33
5960
发布2018-05-18 18:03:33
举报

今天是unittest最后一讲,我们解决一下如何只运行一次setUp和tearDown方法以及简单的数据驱动的知识。

1、只运行一次setUp和tearDown方法

很简单,只需要把setUp和tearDown分别替换为setUpClass和tearDownClass即可,但是用这两个方法必须加上 @classmethod 修饰

代码语言:javascript
复制
# coding: utf-8

import unittest
import time

class MyTest(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        print "SetUp"
        time.sleep(2)

    @classmethod
    def tearDownClass(cls):
        print "teardown"
        time.sleep(2)

    def test01(self):
        print "test01"

    def test03(self):
        print "test03"

    def test02(self):
        print "test02"

if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(MyTest)
    unittest.TextTestRunner(verbosity=2).run(suite)

上面的代码运行以后,得到的输出便是:

至于@classmethod是什么意思,大家先不要管,后面在说装饰器的时候我会专门的和大家说。

2、数据驱动

unittest里的数据驱动也要用到装饰器的知识,还是直接先记住代码即可:

代码语言:javascript
复制
# coding: utf-8

import unittest
import time
import ddt

info = [{"username": "captain", "password": 123},
        {"username": "warrior", "password": 456}]

@ddt.ddt
class MyTest(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        print "SetUp"
        time.sleep(2)

    @classmethod
    def tearDownClass(cls):
        print "teardown"
        time.sleep(2)

    @ddt.data(*info)
    def test01(self, mes):
        print mes

    @ddt.data(*info)
    def test03(self, res):
        print res["username"]

    def test02(self):
        print "test02"

if __name__ == '__main__':
    unittest.main()

运行上面代码:

可以看到,我们的info是一个列表,里面套了两个字典,在打印res["username"]的时候回将两个username都打印出来;这也是数据驱动的好处,也就是将用到的数据放到一起(比如一个Excel中),然后通过数据驱动就可以读到Excel中的所有数据了。

以上内容就是我要讲的所有的unittest需要了解的知识了,其实东西并不多,unittest模块常用的基本上就这三篇的知识,将来无论你做接口测试还是UI自动化,都会用到以上知识,所以,现在就学会了记住了,将来会少走很多弯路~~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自动化测试实战 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档