unittest 框架——接口自动化测试

本文详细介绍了Python中的Unittest框架,包括其组成部分(TestCase、Testsuite、TestRunner、TestLoader和Fixture),以及如何编写和执行测试用例。重点讲解了TestSuite和TestRunner的使用,以及Fixture在测试中的作用。
摘要由CSDN通过智能技术生成

一、框架

1、 framework
为了解决一类事情的功能集合
2、Unittest 框架
是 Python 自带的单元测试框架
- 自带的, 可以直接使用, 不需要单外安装
- 测试人员 用来做自动化测试, 作为自动化测试的执行框架,
即 管理和执行用例的
3、核心组成

1. TestCase 测试用例, 这个测试用例是 unittest 的组成部分,作用是 用来书写真正的用例代码(脚本)
2. Testsuite 测试套件, 作用是用来组装(打包)TestCase(测试用例) 的,即 可以将多个用例脚本文件组装到一起
3. TestRunner 测试执行(测试运行), 作用 是用例执行TestSuite(测试套件)的
4. TestLoader 测试加载, 是对 TestSuite(测试套件) 功能的补充, 作用是用来组装(打包) TestCase(测试用例) 的
5. Fixture 测试夹具, 是一种代码结构, 书写 前置方法(执行用例之前的方法)代码 和后置方法(执行用例之后的方法) 代码 ,即 用例执行顺序 前置 ---> 用例 ---> 后置

 二、TestCase 测试用例

步骤
1. 导包 unittest
2. 定义测试类, 需要继承 unittest.TestCase 类, 习惯性
类名以 Test 开头
3. 书写测试方法, 必须以 test 开头
4. 执行

注意:
1. 代码文件名字 要满足标识符的规则
2. 代码文件名 不要使用中文

#1、导包
import unittest
#2、定义测试类,继承unittest.TestCase 类,即测试类别
class TestDemo(unittest.TestCase):
    #3、方法名以Test开头
    def  test_login(self):
        print('test1')

    def test_set_password(self):
        print('test2')
#执行4、在类名或者方法名右键运行
#4.1、在类名中执行全部用例
#4.2、在方法名中,运行当前一个用例
#4.3、在主程序中使用 unittest.main()  来执行
if __name__ == "__main__":
    unittest.main()

  三、TestSuite和TestRunner

 TestRunner(测试套件)

将多条用例脚本集合在一起,就是套件, 即用来组装用例的

1. 导包 unittest
2. 实例化套件对象 unittest.TestSuite()
3. 添加用例方法

 TestRunner(测试执行)

1. 导包 unittest
2. 实例化运行对象 unittest.TextTestRunner()
3.执行对象——套件对象    执行对象.run(套件对象)

整体步骤

1. 导包 unittest
2. 实例化套件对象 unittest.TestSuite()
3. 添加用例方法
3.1 套件对象.addTest(测试类名('测试方法名'))
4. 实例化 执行对象 unittest.TextTestRunner()
5. 执行对象执行 套件对象 执行对象.run(套件对象)

代码案例

# 1. 导包 unittest
import unittest
from testcase01 import TestDemo1
from testcase02 import TestDemo2
# 2. 实例化套件对象 unittest.TestSuite()
suit = unittest.TestSuite()
# 3. 添加用例方法
# 3.1 套件对象.addTest(测试类名('测试方法名'))
suit.addTest(TestDemo1('test_login1'))
suit.addTest(TestDemo1('test_set_password1'))
suit.addTest(TestDemo2('test_login2'))
suit.addTest(TestDemo2('test_set_password2'))
# 4. 实例化 执行对象 unittest.TextTestRunner()
runner = unittest.TextTestRunner()
# 5. 执行对象执行 套件对象 执行对象.run(套件对象)
runner.run(suit)
# 套件对象.addTest(unittest.makeSuite(测试类名)) # 在不同的 Python 版本中,可能没有提示
suit.addTest(unittest.makeSuite(TestDemo1))
suit.addTest(unittest.makeSuite(TestDemo2))

四、TestLoader 测试加载

作用和TestSuite 的作用一样,组装用例代码,同样也需要使用TextTestRunner() 去执行

makeSuite() 如果要执行10个模块要写10个
但是TestLoader只需要一行代码

1. 导包 unittest
2. 实例化加载对象并加载用例 ---> 得到的是 套件对象
3. 实例化执行对象并执行
import unittest
# 实例化加载对象并加载用例,得到套件对象
# suite = unittest.TestLoader().discover('用例所在的
目录', '用例代码文件名*.py')
suite = unittest.TestLoader().discover('.',
'hm_02*.py')
# 实例化执行对象并执行
# runner = unittest.TextTestRunner()
# runner.run(suite)
unittest.TextTestRunner().run(suite)

五、Fixture

tpshop 登录
1. 打开浏览器 (一次)
2. 打开网⻚,点击登录 (每次)
3. 输入用户名密码验证码1,点击登录 (每次, 测试方法)
4. 关闭⻚面 (每次)
2. 打开网⻚,点击登录 (每次)
3. 输入用户名密码验证码2,点击登录 (每次, 测试方法)
4. 关闭⻚面 (每次)
2. 打开网⻚,点击登录 (每次)
3. 输入用户名密码验证码3,点击登录 (每次, 测试方法)
4. 关闭⻚面 (每次)
5. 关闭浏览器 (一次)

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

def setUp(self): # 前置
# 每个用例执行之前都会自动调用
pass
def tearDown(self): # 后置
# 每个用例执行之后 都会自动调用
pass
# 方法前置 用例 方法后置
# 方法前置 用例 方法后置

  • 25
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Pythonunittest库提供了一种基于单元测试的测试框架,是一个方便易用的Python测试框架。使用unittest库进行接口自动化测试可以提高测试效率和质量,本文将分享如何使用Python unittest库搭建接口自动化测试框架。 第一步:安装Python unittest库 首先需要安装Python unittest库,Python unittest库是默认安装在Python中的,无需单独安装。 第二步:安装requests模块 接口自动化测试需要使用requests模块来发送HTTP请求、获取响应等操作,因此需要安装requests模块。使用pip安装requests命令如下: pip install requests 第三步:编写测试用例 使用unittest框架编写测试用例,首先需要导入unittest库并创建测试类,编写测试方法,方法名必须以test开头,并使用assert断言方法进行验证。例如: import unittest import requests class TestApi(unittest.TestCase): def test_get_users(self): url = 'http://localhost:8080/api/users' res = requests.get(url) self.assertEqual(res.status_code, 200) self.assertIsNotNone(res.json()) 第四步:执行测试用例 使用unittest框架执行测试用例,使用unittest.main()方法运行所有测试用例。例如: if __name__ == '__main__': unittest.main() 执行测试用例后,将输出测试结果,包括测试用例总数、成功数、失败数等。 第五步:持续集成 持续集成可以帮助实现自动化测试,可以将上述步骤集成到自动化测试框架中,提高测试效率和质量。使用持续集成工具,例如Jenkins,可以实现自动化测试的调度和执行,定期输出测试报告,是测试自动化化的不二选择。 在以上步骤中,请求地址和验证方法需要根据具体需求进行更改,但是编写测试用例的方法是类似的,熟练掌握unittest库可以快速搭建接口自动化测试框架,提高测试效率和质量。 ### 回答2: Python unittest requests 接口自动化测试框架搭建教程博客是指一篇博客文章,介绍如何使用Python unittest与requests库搭建接口自动化测试框架。该教程博客有如下几个方面: 1. 简单介绍Python unittest与requests库,以及它们在接口自动化测试中的使用; 2. 详细讲解如何安装Python unittest和requests库,并编写测试用例; 3. 讲解如何通过使用Python unittest的setUp()和tearDown()方法,在测试用例执行前后进行一些操作,以便更好地进行测试; 4. 介绍如何运行测试用例,并查看测试结果,以及如何进行测试报告生成; 5. 提供一些实例,展示如何使用Python unittest与requests库搭建接口自动化测试框架。 通过这篇教程博客,读者可以学习如何使用Python unittest与requests库搭建接口自动化测试框架,并且能够快速了解并掌握这种接口自动化测试方法的流程和基本方法。此外,该教程博客也提供一些实例,帮助读者更好地理解和应用这种方法。因此,这篇教程博客对于想要学习接口自动化测试以及深入了解Python unittest和requests库的读者来说,是一篇非常有价值的文章。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值