码迷,mamicode.com
首页 > 其他好文 > 详细

UnitTest基础、测试实例

时间:2020-06-17 16:49:48      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:rbo   key   lazy   span   设定   end   element   自动   erb   

1.四大组件:
a.test fixture:setUp(前置条件),tearDown(后置条件),用于初始化测试用例及清理和释放资源
b.test case:测试用例,通过集成unittest.TestCase,来实现用例的继承。在UnitTest中,测试用例都是通过test来识别的。
例:class forTest(unites.TestCase);def test_xx
c.test suite:测试套件,也称为测试用例集
d.test runner:运行器,一般通过runner来调用suite去执行测试

2.UnitTest运行机制:通过在main函数中,调用unittest.main()运行所有内容。

import unittest

class forTest(unittest.TestCase):

    # 类的初始化
    @classmethod
    def setUpClass(cls) -> None:
        print(sClass)

    # 类的释放
    @classmethod
    def tearDownClass(cls) -> None:
        print(tclass)

    # 用例初始化(用例执行前执行)
    def setUp(self) -> None:
        print(setUp)

    # 用例释放(用例执行后执行)
    def tearDown(self) -> None:
        print(tearDown)

    #函数
    def plus(self,a,b):
        print(a+b)
        return a+b

    def test_c(self):
        self.plus(1,2)
        print(c)

    # 测试用例
    def test_a(self):
        print(a)

    def test_b(self):
        print(b)

if __name__==__main__:
    unittest.main(verbosity=2)  # verbosity=2 让结果更细致些

‘‘‘
只有test_xx() 的函数才能执行
‘‘‘

打印结果:

技术图片

 

 

3.ddt数据驱动
ddt(data-driver tests), 在实际测试中,单个测试需要用多种不同的条件(测试数据)对其测试。

a. 在class前定义@ddt,data用于设定参数

下面的例子实现自动打开百度,并输入‘网球王子‘ 、‘王者荣耀‘,相当于两条测试数据

import unittest
from selenium import webdriver
import time
from ddt import ddt,data,

@ddt
class forTest01(unittest.TestCase):

    def setUp(self) -> None:
        self.driver = webdriver.Chrome()
        self.driver.get(http://www.baidu.com/)
        # pass

    def tearDown(self) -> None:
        time.sleep(2)
        # pass

    @data(网球王子, 王者荣耀)
    def test_1(self, txt):
        self.driver.find_element_by_id(kw).send_keys(txt)
        self.driver.find_element_by_id(su).click()

if __name__==__main__:
    unittest.main()

 

b. unpack用于解析参数。当需要传入多个参数时,unpack可以依次解析传参。

@ddt
class forTest01(unittest.TestCase):

    def setUp(self) -> None:
        self.driver = webdriver.Chrome()
        # pass

    def tearDown(self) -> None:
        time.sleep(2)
        # pass

    @data((http://www.baidu.com/, 王者荣耀),(http://www.baidu.com/,网球王子))
    @unpack
    def test_1(self, url, txt):
        self.driver.get(url)
        self.driver.find_element_by_id(kw).send_keys(txt)
        self.driver.find_element_by_id(su).click()

 

UnitTest基础、测试实例

标签:rbo   key   lazy   span   设定   end   element   自动   erb   

原文地址:https://www.cnblogs.com/suancaipaofan/p/13153199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!