UnitTest基本使用

框架:为解决一类事情的功能合集

unittest框架:python自带的单元测试框架,不需额外下载

好处:能组织多个用例去执行,能用断言,能生成测试报告 自动化测试(接口自动化,UI自动化)

核心要素:

TestCase测试用例 ,用来书写真正的用例代码(脚本)

1.导包UnitTest

2.定义测试方法类,只需要让类继承unittest.TestCase类,就是测试类

class TestDemo(unittest.TestCase):

3.书写测试方法,真正的用例方法,必须以test开头

def Testxxx():

4.执行

在类名或者方法名后面右键执行

在主程序中调用unittest.main()

if __name__=='__main__':

   unittest.main()

"学习TestCase的使用"
import unittest
class TestDemo(unittest.TestCase):
    def testadd(self):
        print("测试方法1")#写真实用例
    def testmethod2(self):
        print("测试方法2")
if __name__=='__main__':
    unittest.main()

可能出现的错误:名字带中文,右键运行没有unittest for ...

批量执行测试用例(TestSuite必须和TestRunner一起)

TestSuite测试套件,用来组装(打包)testcase的,将多个测试脚本文件组装一起

1.导包unittest

2.实例化套件对象 unittest.TestSuite()

3.添加用例方法suite.addtest(类名("方法名")

3.1使用套件对象.addTest(测试类名(测试方法名))#建议复制 

suite.addTest(TestDemo1())

TestRunner测试运行,用来执行TestSuite

1.导包unittest

2.实例化执行对象unittest.TextTestRunner()

3.执行对象执行套件对象 执行对象.run(套件对象)

整体步骤:

1.导包unittest

2.实例化套件对象unittest.TestSuite()

3.添加用例方法

3.1一次添加一个测试用例suite.addTest(TestDemo2("test_method2"))

3.2一次添加整个测试类

suite.addTest(unittest.makeSuite(测试类名))

4.实例化执行对象 runner=unittest.TextTestRunner()

5.执行套件对象runner.run(suite)

测试结果查看:

TestLoader测试加载,是对TestSuite功能的补充,用来组装testcase的

作用和testsuite一样,同样需要使用TextTestRunner()去执行

1.导包import unittest

 2.实例化TestLoader加载对象并加载用例 

suite=unittest.TestLoader().discover('路径','文件名')

3.实例化执行对象

unittest.TextTestRunner().run(suite)

Fixture测试夹具 ,是一种代码结构,书写前置方法和后置代码,只写一遍

代码结构,在用例执行前后自动执行的代码结构

网站登录

1.打开浏览器(1次)

2.打开网页,点击登录(每次)

3.输入用户密码验证码,点击登录(每次)

4.关闭页面(每次)

2.打开网页,点击登录(每次)

3.输入用户密码验证码,点击登录(每次)

4.关闭页面(每次)

5.关闭浏览器(1次)

方法级别fixture

在每个用例执行前后自动调用,方法名固定的

def setup(self):#前置

        pass

def tearDown(self):#后置

        pass

类级别Fixture

在类中所有的测试方法执行前后会自动执行的代码,执行1次

#类级别的Fixture需要写作类方法
@classmethod
def setupClass(cls):#类前置
    pass



@classmethod
def tearDownClass(cls):类后置
    pass
##类前置  方法前置 用例 方法后置   方法前置 用例 方法后置... 类后置

模块级别Fixture 就是代码文件(了解即可)

##类外部定义
def setupMoudle():
    pass


def tearDownMoudle():
    pass

断言 

判断是否符合预期结果

用于TestCase之中,

参数化 将数据定义到json文件

通过参数的方式来传递数据,从而实现数据和脚本分离,并实现用例的重复执行

unittest测试框架不支持,所以需要安装扩展parameterrized

使用

1.导包 from parameterized import parameterized

2.修改测试方法 将测试方法中的测试数据使用变量表示

3.组织测试数据 格式【(),(),()】一个元组就是一组测试数据

4.参数化,在测试方法上方使用装饰器@parameterized.expand(测试数据)

5.运行(TestCase /TestSuite运行)

绝对路径名

获取文件所在路径

跳过 都用于testcase

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值