如何理解pytest底层

很多时候报错不明白是哪里的问题,因为我用的是别人写好的框架而不是自己写的框架,所以我想出的解决方案有两种,一种是理解pytest的底层原理但是我不是开发,不明白怎么做才能看懂底层代码。第二种是自己写一套测试框架但是我明白,现在的能力有限自己的水平只能说不高不低的那种。其实我更倾向第二种,我是选择报个班学还是自学呢?有没有给我一些建议

对于你的情况,我可以给你一些建议来帮助你做出选择。

  1. 自学:自学是一种经济高效的学习方式,你可以根据自己的时间和进度来学习。对于学习测试框架,你可以找一些在线教程、文档或者视频课程来学习。同时,你可以尝试使用一些开源的测试框架进行实践,逐渐提高自己的能力。

  2. 报班学习:如果你觉得自学的效果不够理想,或者希望有一个系统化的学习过程和专业的指导,那么报班学习可能是一个更好的选择。通过报班学习,你可以获得专业的培训和指导,与其他学习者一起学习和交流,能够更快地提高自己的能力。

无论选择自学还是报班学习,以下几点建议可以帮助你更好地学习测试框架:

  • 阅读官方文档:无论是自学还是报班学习,都应该仔细阅读测试框架的官方文档。官方文档通常提供详细的介绍、示例和用法说明,能够帮助你理解框架的原理和使用方法。

  • 实践项目:通过实际项目的练习,你可以更好地理解和应用测试框架。你可以选择一些开源项目或者自己的项目来进行实践,逐步提高自己的能力。

  • 参与社区:加入相关的技术社区或者论坛,与其他开发者交流和分享经验。在社区中,你可以向其他开发者请教问题、寻求帮助,并且从他们的经验中学习。

最重要的是,持续学习和实践是提高自己的关键。不论你选择哪种学习方式,都要保持积极的学习态度,不断提升自己的技能和知识。

  • 这篇博客: pytest中参数化方法,并且根据执行的命令进行动态参数化中的 元组组成的列表进行参数化,每一组元素表示一组参数化值 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 如下使用testdata值进行参数化
    #content of test_param.py
    #coding=utf-8
    import pytest
    
    testdata = [
        (3, 4, -1),
        (6,3, 3),
    ]
    
    @pytest.mark.parametrize("a,b,expected", testdata)
    def test_diff_v0(a, b, expected):
        diff = a - b
        assert diff == expected
    
    • 执行pytest test_param.py --collect-only查看收集的用例如下:
      收集到两个用例test_diff_v0[3-4--1]test_diff_v0[6-3-3]
    D:\Python\program\practic_unittest>pytest test_param.py --collect-only
    ============================================================================ test session starts =============================================================================
    platform win32 -- Python 3.8.4, pytest-6.2.4, py-1.9.0, pluggy-0.13.1
    rootdir: D:\Python\program\practic_unittest, configfile: pytest.ini
    plugins: allure-pytest-2.8.16
    collected 2 items                                                                                                                                                             
    
    <Module test_param.py>
      <Function test_diff_v0[3-4--1]>
      <Function test_diff_v0[6-3-3]>
    
    ========================================================================= 2 tests collected in 0.02s =========================================================================