【测试】Pytest

建议关注收藏!

  • 框架
    测试文档专题
    linux/vim/ssh
    pymysql
    pytest
    unittest
    移动端测试
    接口测试
    性能测试
    UI自动化=web自动化+移动自动化
    CI/CD

目录

  • pytest or unittest
  • 工程结构
  • 参数化测试
  • 灵活的前置与后置处理(测试夹具 Fixture)
  • 错误重试与失败处理
    • 异常测试与 pytest.raises 的使用
  • 集成 CI/CD
  • pytest详细说明
  • 功能测试、集成测试、回归测试

pytest or unittest

  • unittest:Python 自带单元测试框架,设计上模仿了Java 的JUnit框架 。使用unittest编写单元测试时,开发者继承各种测试类(如unittest.TestCase),并调用各种如self.assertEqual()self.assertTrue()等特定的断言方法。产生大量冗长且重复的模板代码(Boilerplate Code)
  • pytest:解决原生unittest库繁琐的继承与断言代码痛点。 功能强大、灵活、简洁和易用。
  • 原生 Assert 机制与断言重写原理
    unittest需要调用self.assertXxx()方法不同,pytest直接允许开发者使用 Python 原生的assert关键字来进行断言判断。
    在标准的 Python 运行环境中,如果assert随后的表达式判断结果为False,Python 解释器只会简单地抛出一个AssertionError异常,而不会附带任何关于变量当前值或上下文的详细信息,这导致调试时很难快速定位问题根源。
    pytest解决这一问题的底层技术被称为“断言重写”(Assert