Python 的自动化测试框架
什么是 自动化测试框架,其实就是对于普通的测试进行一个封装,封装之后的成品,支持自动化测试的功能,它的优点自然有很多:
- 提高测试的效率
- 提高复用性,减少重复工作
- 覆盖面更广
- 不需要太多的人工干预
unittest
unittest 是什么
单元测试是软件测试的第一级,测试软件中最小的可测试部分。这用于验证软件的每个单元是否按设计执行。 unittest 测试框架是 python 的 xUnit 风格的框架。
unittest 的优点可以总结为:
- unittest 能一次执行多个测试用例
- unittest 自带很多中断言
- unittest 能够根据测试结果生成测试报告
Python 使用 unittest 做自动化测试
unittest 的主要语法包括:
- TestCase
- TestSuite
- TestRunner
- TestLoader
- Fixture
来个小案例:实现一个测试用例,测试一个加法函数
TestCase
TestCase 就是测试用例的意思。
import unittest
def add(x, y):
return x + y
class Test01(unittest.TestCase):
def testadd01(self):
add(2, 3)
def testadd02(self):
add(10, 10)
# testing.....
unittest.main("test01_testcase")
TestSuite & TextTestRunner
- TestSuite 是测试套件,可以批量执行测试用例
- TextTestRunner 是用来执行 测试套件 的
import unittest
from Unittest import Test01
suite = unittest.TestSuite()
suite.addTest(Test01("testadd01"))
# testing......
runner = unittest.TextTestRunner()
runner.run(suite)
TestLoader
TestLoader 可以执行多个测试文件(查找 test 开头的 .py 测试文件)
现在有个小案例:运行 tests 目录下 test1.py~test5.py 文件。
import unittest
suite = unittest.defaultTestLoader.discover("../tests")
unittest.TextTestRunner().run(suite)
使用 Apifox 测试 Python 接口
上面讲的是使用 unittest 测试 Python 写的一些函数方法,那如果是 Python 写的一些 API,应该怎么去测呢?
涉及到 API 的测试,我推荐是 Apifox ,它是集测试、文档、mock 于一身的超级好用的 API 调试工具。
比如我已经使用 Python 写了一个简单的接口:
/api/test/python
我们来使用 Apifox 测试一下吧~
创建请求
我们需要创建一个 API 请求,用来对我们刚刚写的那个 API 进行请求,填入
- 请求路径
- 请求方法
- 请求名
设置断言
接着我们点开后置脚本这一项,然后选择自定义脚本,Apifox 为我们提供了可视化的脚本选项。
我们点击右边的 Apifox 为我们提供的现成的脚本命令,我们预期是返回的 code 是 200。
设置完断言脚本,点击 保存 按钮。
运行调试
到运行页,点击 发送,可以看到响应结果,以及断言成功通过的提示。
Apifox
欢迎体验一下,完全免费的哦:在线使用 Apifox。
Apifox 是一体化 API 协作平台,可以实现 API 文档、API 调试、API Mock、 API 自动化测试,是更先进的 API 设计/开发/测试工具。
Apifox 提供了一种全面的 API 管理解决方案。使用 Apifox ,你可以在统一的平台上设计、调试、测试以及协作你的 API,消除了在不同工具之间切换和数据不一致的问题。
个人使用体验还是不错的,推荐使用~
知识扩展: