博客
关于我
pytest简介及jenkins集成
阅读量:797 次
发布时间:2023-03-05

本文共 1974 字,大约阅读时间需要 6 分钟。

pytest 实用指南

1. pytest 简介

pytest 是一个基于 unittest 的现代化单元测试框架,具有自动发现测试模块和方法的能力。其独特之处在于:

  • 断言:仅需使用 assert + 表达式即可完成验证
  • ** fixtures**:支持在测试会话、模块、类或函数级别定义数据准备和清理工作
  • 灵活性:支持共享前置和后置操作,通过 conftest.py 实现

2. 安装命令

  • 安装 pytest:pip install pytest
  • 安装 HTML 报告插件:pip install pytest-html
  • pytest 插件地址:可通过官方文档获取

3. 测试用例收集规则

  • 文件名规则:匹配 test_*.py*_test.py
  • 函数命名规则:以 test_ 开头
  • 类命名规则:以 Test 开头且不包含 __init__ 方法
  • 标签支持:可在测试用例、测试类或模块文件中打标签,支持按标签过滤运行用例
    • 标签定义方式:在测试用例前使用 @pytest.mark.标签名 或在类/模块中定义

4. 测试用例打标签

  • 方式1:在测试用例前直接使用 @pytest.mark.标签名
  • 方式2:在测试类或模块中定义标签
    pytestmark = pytest.mark.标签名pytestmark = [pytest.mark.标签1, pytest.mark.标签2]  # 多标签模式
  • 示例
    @pytest.mark.slowdef test_login_success(self, init_driver):    init_driver[1]....

5. Fixtures 功能

  • 定义方式:在 conftest.py 文件中定义
    def pytest_configure(config):    config.addinivalue_line("markers", "smoke1:标记只运行冒烟用例")    config.addinivalue_line("markers", "demo1:示例运行")
  • 使用方式
    • 测试用例直接调用
    • 通过 @pytest.mark.usefixtures("fixture_name") 装饰
    • 使用 pytest.fixture 装饰器定义 fixture

6. 参数化测试用例

  • 使用 @pytest.mark.parametrize 定义参数化规则
    @pytest.mark.parametrize("参数名", [(1, 2, 3), (4, 5, 6)])def test_add(self, a, b, c):    assert a + b == c
  • 组合参数化
    @pytest.mark.parametrize("x", [1, 2])@pytest.mark.parametrize("y", [2, 3])def test_foo(x, y):    pass
  • 生成 4 个组合:1,21,32,22,3

7. 失败重试

  • 安装插件 pytest-rerunfailurespip install pytest-rerunfailures
  • 命令行使用:
    pytest --reruns 2  # 失败用例重试 2 次pytest --reruns-delay 5  # 失败用例间隔 5 秒重试

8. 测试报告

  • HTML 报告:安装 pytest-html 插件,使用命令生成报告
    pytest --html=report/test.html
  • JunitXML 格式:使用 --junitxml 生成 XML 报告
    pytest --junitxml=report/test.xml
  • Allure 报告:安装 allure-pytest 插件,使用命令生成 Allure 报告
    pytest --alluredir=report/allure

9. Jenkins 集成

  • 安装 Allure Jenkins 插件
  • 配置路径:D:\allure-2.13.5
  • 在 Jenkins 中选择 Allure 报告并配置路径

10. 分布式测试

  • master/slave 模式
    • master:Jenkins 服务器,负责任务分配
    • slave:执行机,负责执行任务并反馈结果
  • 节点管理
    • 新建节点时选择“随机选取”
    • 可指定执行器数量、远程工作目录、标签等
    • 启动方式:通过 Java Web 连接或命令行启动

11. 配置节点

  • 节点属性:设置环境变量和工具路径
  • 连接方式:下载 slave-agent.jnlp 直接运行或作为系统服务安装
  • 启动方式:可通过命令行启动节点

通过以上配置,pytest 可以帮助开发者高效、可靠地执行单元测试任务,并生成多种样式的测试报告。

转载地址:http://jnafk.baihongyu.com/

你可能感兴趣的文章
pycharm的安装配置和简单使用
查看>>
pycharm的环境管理-ChatGPT4o作答
查看>>
pycharm社区版不能使用conda
查看>>
Pycharm终端中conda无法切换到虚拟环境的解决方法(两种方案)
查看>>
pycharm连接sqlite
查看>>
Pycharm那些隐藏的实用小技巧,yyds!
查看>>
PyCharm配置SSH和SFTP远程连接服务器
查看>>
Pycharm隐藏的实用小技巧!建议收藏
查看>>
PyChord 项目常见问题解决方案
查看>>
pydoc使用
查看>>
pyechart
查看>>
pyecharts中管理工具按钮以及修改图表主题
查看>>
pyechart值域区间
查看>>
pyest+appium实现APP自动化测试,思路全总结在这里
查看>>
Pygame
查看>>
Pygame 围绕轴旋转立方体
查看>>
Pygame 的详细介绍-ChatGPT4o作答
查看>>
Pygame 窗口几秒钟后没有响应
查看>>
Pygame.display.togling_fulcreen()不起作用
查看>>
Pygame中的倒数计时器
查看>>