• 全网最牛自动化测试框架系列之pytest(3)-测试命名规则


    【文章末尾给大家留下了大量的福利】 

    前言

    在自动化测试项目中,单元测试框架运行时需要先搜索测试模块(即测试用例所在的.py文件),然后在测试模块中搜索测试类或测试函数,接着在测试类中搜索测试方法,最后加入到队列中,再按执行顺序执行测试。

    所以,只有测试模块、测试类/测试函数、测试方法都符合命名规则,框架才能去识别测试用例。

    那么,接下来我们来了解 pytest 框架中的测试命名规则。

    命名规则

    在了解pytest的测试命名规则之前,我们先需要知道 pytest 搜索用例的规则,它默认搜索规则如下:

    • 如果pytest执行命令中指定了目录,则从该指定目录中开始查找测试用例文件,如果没有指定,则从当前运行目录开始查找文件,最终的结果是找到整个项目中符合命名规则的测试用例。
    • 会查找整个项目中符合命令规则的测试模块,再由 测试模块-->测试类/测试函数-->测试方法 一层一层递归查找。

    默认命名规则

    pytest 的测试命名规则如下:

    • 测试模块:以 test_ 开头命名,如:test_login.py,或以 _test 结尾,如:login_test.py
    • 测试类:必须以Test开头命名,且测试类中不能有 init 方法
    • 测试方法/测试函数:必须以test开头,如:test_login() 或 testRegister()

    最好是将测试模块、测试方法/函数都以 test_ 开头命名,这样可读性更强,如下图:

    自定义命名规则

    pytest 框架可以通过pytest.ini配置文件自定义命名规则,在某些特定场景下可能会用到。

    在测试项目的根目录下创建pytest.ini文件,并进行如下配置:

    1. [pytest]
    2. # 更改测试模块命名规则
    3. python_files = CS*
    4. # 更改测试类命名规则
    5. python_classes = CS*
    6. # 更改测试方法/测试函数命名规则
    7. python_functions = CS*

    注意,在.ini文件中直接使用中文注释执行的时候会报错,实际使用如上代码时,需要将中文注释去掉。

    新建测试模块CS_register.py,示例如下:

    1. import pytest
    2. import requests, json
    3. class CSRegister:
    4. def CS_register(self):
    5. '''注册用户'''
    6. headers = {"Content-Type": "application/json;charset=utf8"}
    7. url = "http://127.0.0.1:5000/register"
    8. data = {
    9. "username": "张学友",
    10. "password": "123456",
    11. "sex": "0",
    12. "telephone": "13823456789",
    13. "address": "北京东城区"
    14. }
    15. res = requests.post(url=url, headers=headers, json=data).text
    16. res = json.loads(res)
    17. assert res['code'] == 0
    18. if __name__ == '__main__':
    19. pytest.main()

    执行结果如下:

    除非是特殊情况,否则不太建议自定义命名规则。

    总结

    从个人实际经验来看,不管是pytest还是unittest自动化项目,命名方式最好如下:

    1. 测试模块名以test开头,如 test_login.py
    2. 测试类名以Test开头,如 TestLogin()
    3. 测试函数/方法名以test开头,如 test_login()

    这样的命名方式,既简单又清晰,而自定义命名其实较为少用,除非项目比较特殊。

      重点:学习资料学习当然离不开资料,这里当然也给你们准备了600G的学习资料

    【需要的可以扫描文章末尾的qq群二维码自助拿走】

    【记得(备注“csdn000”)】

    群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

    项目实战:

    大型电商平台:

    全套软件测试自动化测试教学视频

    300G教程资料下载【视频教程+PPT+项目源码】

    全套软件测试自动化测试大厂面经

    python自动化测试++全套模板+性能测试

    听说关注我并三连的铁汁都已经升职加薪暴富了哦!!!!

  • 相关阅读:
    求程序段中++x或者x++的频度,时间复杂度、执行次数
    漏洞-Alibaba Nacos derby 远程代码执行漏洞
    .NET ASPIRE 预览版 7 发布
    《Effective C++》条款23
    关于容器中spring项目日志时间、容器、系统时间不一致的解决方法
    8 ActiveMQ的持久化
    JavaScript之字符串常用方法
    《JavaSE-第十七章》之LinkedList
    QT的ui设计中改变样式表的用法
    泛微E-Office前台文件读取漏洞
  • 原文地址:https://blog.csdn.net/m0_60054525/article/details/126528986