三、Pytest的简介
pytest是一个流行的测试框架,广泛用于单元测试、集成测试和功能测试。它具有简单、灵活、可扩展的特点,提供了丰富的功能和插件生态系统,它简化了测讨的编写和组织,pytest 通过提供丰富的功能和简洁的语法,让测试变得容易、灵活且易于理解。
1、安装
pip install pytest -i https://pypi.tuna.tsinghua.edu.cn/simple/
2、pytest编写规则(默认)
- 测试文件以test 开头(或者以 test结尾也行)
- 测试类以Test开头,并且类里面不能带有 init 初始化构造函数
- 测试函数以test 开头
- 断言使用基本的assert即可
3、pytest的运行方式
1)命令行运行方式(一般用于调试)
直接在命令行中输入“pytest”,它将自动查找并执行当前目录及其子目录中的所有以test 开头的测试用例文件。
pytest
运行指定目录的测试用例:指定要运行的目录,pytest将查找并运行该目录及其子目录下的测试用例
pytest testcase/userManager
运行指定文件的测试
pytest testcase/userManager/test deleteUser.py
使用"-k”参数并提供测试用例或测试目录的名称,可以运行四配该名称的测试用例
指定目录:pytest -k userManager
指定测试文件:pytest -k test deleteUser
指定运行测试函数:pytest -k test_login_failed
参数说明:
-s 表示输出调试信息,包括print信息
-v显示更加详细的信息
-vs 把上面这两个参数一起使用
-k 指定运行测试用例文件、目录
2)主函数方式运行
主函数运行,用于执行pytest测试,它可以通过传递命令行参数来配置和控制测试的执行
if name =='main':
pytest.main(['-s','test_add_user_01'])
3)通过读取pytest框架的配置文件--pytest.ini(做企业自动化推荐的用法)
"pytest.ini”文件是Pytest测试框架的配置文件,它允许你设置各种配置选项一自定义测试运行的行为,一般是在项目的根目录下创建"pytest.ini",文件名固定写法不能任意更改,pytest将在运行测试时读取改文件并应用其中的配置。配置文件参数说明:
- addopts:用于在运行测试时传递额外的命令行选项
- testpaths:用于指定pytest在哪些目录中查找测试文件,它允许你定义一个或多个目录,告诉pytest在这些目录下寻找测试文件
- python files:用于指定测试文件的命名四配模式
- python classes:用于指定测试类的命名四配模式
- python functions:用于指走测试函数的命名匹配模式
4、断言
assert 语句:相等、不相等、包含、真假、数据库断言
5、丰富的插件
1)并发执行(多线程/多进程),pytest提供一个插件-pytest xdist提供一个-n选项设置多进程/多线程数量,使测试用例可以在多个进程环境下并发执行,提高测试效率。
安装插件 pip install pytest-xdist
2)失败重跑
3)测试用例执行顺序
6、分组执行、跳过执行
7、参数化
将相同的测试代码,使用不同的测试数据进行执行,从而简化测试代码,使其更灵活和易维护,达到覆盖不同的测试场景。它通过@pytest.mark.parametrize装饰器去实现参数化。参数化的基本用法:
- 使用@pytest.mark.parametrize装饰器将参数传递给测试函数
- 指定参数名和参数值
- 在测试函数的参数中接收参数值,用于多次测试
- 语法:@pytest.mark.parametrize("params1,params2....",iterable)
- 测试函数接收的参数名必须要与参数化的第一个参数保持一致,参数个数也要保持一致
代码实现
@pytest.mark.parametrize('api_info', read_yaml('../../data/login.yaml'))
@pytest.mark.P1
def test_login_success(self, api_info):
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架