【Unittest】自动化测试框架核心要素_unittest框架三要素

1、导包

2、自定义测试类

3、在测试类中书写测试方法 采用print 简单书写测试方法

4、执行用例

import unittest

2、自定义测试类,需要继承unittest模块中的TestCase类即可

class TestDemo(unittest.TestCase):

书写测试方法,测试用例代码,书写要求,测试方法必须test_ 开头

def test_method1(self):
print(‘测试方法1-1’)

def test_method2(self):
print(‘测试方法1-2’)

4、执行测试用例

4.1 光标放在类后面执行所有的测试用例

4.2 光标放在方法后面执行当前的方法测试用例

说明:def 定义的test_ 是测试用例,只有执行 if __name__ == ‘___mian___’ 的时候会执行测试用例,其他普通函数则不执行,通过 self 来调用执行。

二、TestSuite(测试套件)和TestRunner(测试执行)

1、TestSuite(测试套件):用来组装,打包 ,管理多个TestCase(测试用例)文件的

2、TestRunner(测试执行):用来执行 TestSuite(测试套件的)

代码:首先要准备多个测试用例的文件才可以实现TestSuite和TestRunner,以下代码是已经准备了unittest_Demo2和unittest_Demo1两个测试用例文件

1、导包

2、实例化(创建对象)套件对象

3、使用套件对象添加用例方法

4、实例化对象运行

5、使用运行对象去执行套件对象

import unittest

from unittest_Demo2 import TestDemo
from unittest_Demo1 import Demo

suite = unittest.TestSuite()

将⼀个测试类中的所有⽅法进⾏添加

套件对象.addTest(unittest.makeSuite(测试类名))

suite.addTest(unittest.makeSuite(TestDemo))
suite.addTest(unittest.makeSuite(Demo))

4、实例化运行对象

runner = unittest.TextTestRunner();

5、使用运行对象去执行套件对象

运⾏对象.run(套件对象)

runner.run(suite)

三、TestLoader(测试加载)

说明:

  1. 将符合条件的测试方法添加到测试套件中

  2. 搜索指定目录文件下指定字母开头的模块文件下test开始的方法,并将这些方法添加到测试套件中,最后返回测试套件

  3. 与Testsuite功能一样,对他功能的补充,用来组装测试用例

一般测试用例是写在Case这个文件夹里面,当测试用例超多的时候就可以考虑 TestLoader

写法:

  1. suite = unittest.TestLoader().discover(“指定搜索的目录文件”,“指定字母开头模块文件”)
  2. suite = unittest.defaultTestLoader.discover(“指定搜索的目录文件”,“指定字母开头模块文件”) 【推荐】
    注意:
    如果使用写法1,TestLoader()必须有括号。

1. 导包

2. 实例化测试加载对象并添加用例 —> 得到的是 suite 对象

3. 实例化 运行对象

4. 运行对象执行套件对象

import unittest

实例化测试加载对象并添加用例 —> 得到的是 suite 对象

unittest.defaultTestLoader.discover(‘用例所在的路径’, ‘用例的代码文件名’)

测试路径:相对路径

测试文件名:可以使用 * 通配符,可以重复使用

suite = unittest.defaultTestLoader.discover(‘./Case’, ‘cs*.py’)
runner = unittest.TextTestRunner()
runner.run(suite)

TestSuite与TestLoader区别:
共同点:都是测试套件
不同点:实现方式不同
TestSuite: 要么添加指定的测试类中所有test开头的方法,要么添加指定测试类中指定某个test开头的方法
TestLoader: 搜索指定目录下指定字母开头的模块文件中以test字母开头的方法并将这些方法添加到测试套件中,最后返回测试套件

四、Fixture(测试夹具)

是一种代码结构,在某些特定情况下,会自动执行。

4.1 方法级别

在每个测试方法(用例代码)执行前后都会自动调用的结构

def setUp(),每个测试方法执行之前都会执行 (初始化)

def tearDown(),每个测试方法执行之后都会执行 (释放)

特性:几个测试函数,执行几次。每个测试函数执行之前都会执行 setUp,执行之后都会执行tearDwon

初始化

def setUp(self):

每个测试方法执行之前执行的函数

pass

释放

def tearDown(self):

每个测试方法执行之后执行的函数

pass

场景:当你要登录自己的用户名账户的时候,都会输入网址,当你准备不用这个页面了,都会关闭当前页面;
1、输入网址 (方法级别)
2、关闭当前页面 (方法级别)

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值