51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 383|回复: 1
打印 上一主题 下一主题

[python] 自动化测试框架 —— pytest框架入门篇

[复制链接]
  • TA的每日心情
    无聊
    2024-3-1 09:27
  • 签到天数: 43 天

    连续签到: 2 天

    [LV.5]测试团长

    跳转到指定楼层
    1#
    发表于 2024-1-22 13:19:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    今天就给大家说一说pytest框架。
    今天这篇文章呢,会从以下几个方面来介绍:
    1、首先介绍一下pytest框架
    2、带大家安装Pytest框架
    3、使用pytest框架时需要注意的点
    4、pytest的运行方式
    5、pytest框架中常用的插件
    01、pytest框架介绍
    pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效,支持非常丰富的插件,同时兼容 unittest 框架。这就使得我们在 unittest 框架迁移到 pytest 框架的时候不需要重写代码。
    pytest框架优点
    1、简单灵活,容易上手
    2、支持参数化
    3、能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appium等自动化测试,接口自动化测试(pytest+request)
    4、pytest具有很多第三方插件,并且可以自定义扩展,
    02、pytest框架的安装
    pytest框架的安装
    pip install pytest
    pytest框架使用注意事项
    .py 测试文件必须以test_开头(或者以_test结尾)
    测试类必须以Test开头,并且不能有 init 方法
    测试方法必须以test_开头
    断言必须使用 asser
    03、pytest运行方式
    1、、如果不提供任何参数,那么pytest会在当前目录及子目录下寻找以test_开头或者以_test结尾的测试文件,且该文件中以test_开头的测试函数
    2、当运行时指定测试文件的时候
    1.此时目录一定要切换到测试文件所在的目录,否则pytest搜索不到测试,不会执行.
    2.执行测试文件里的函数的时候,会搜索以test_开头的测试函数执行,不符合此规则的函数不会被执行
    3.如果含有测试类,那么允许该测试文件时,会搜索类名以Test开头的类,且该测试类中的函数命名也必须符合要求才会被执行
    4、运行的方式可以在命令行也可以在主方法上面运行
    例如:如:指定运行pythonDemo目录下的test_01模块
    ......
    if __name__ == "__main__":
    pytest.main(["pythonDemo/test_01.py"])
    或者命令行模式:
    pytest pythonDemo/test_01.py
    其实呢,pytest的运行方式花样非常多,有很多参数可以使用,可以达到不同的效果。
    04、pytest框架常用插件及安装
    pytest框架提供非常多的插件,可以实现不同的功能,今天给大家例举一下最常用的几种插件。
    pytest-xdist
    当用例量很多时,运行时间也会变的很长,如果想缩短脚本运行的时长,就可以用多进程来运行。多cpu分布。
    pytest-rerunfailures
    在做测试时, 短时的网络波动会导致用例运行失败, , 此时就可通过重试运行用例的方式来解决问题。(用例失败后重跑
    pytest-html
    是一个pytest用于生成XML/HTML测试报告的插件。(HTML测试报告)
    pytest-assume
    Pytest中可用assert断言, 但一个失败后面的断言将不再执行;pytest-assume可以实现对多个断言多重校验的。
    pytest-repeat
    测试过程中会出现一些偶现的bug, 对于这种问题我们会针对此用例反复执行多次, 最终复现出问题来; pytest-repeat插件就能起到这个作用: 重复执行测试用例
    pytest-ordering
    pytest默认按字母顺序去执行的(小写英文--->大写英文--->0-9数字)
    用例之间的顺序是文件之间按照ASCLL码排序,文件内的用例按照从上往下执行
    setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module
    但可以通过第三方插件pytest-ordering实现自定义用例执行顺序
    好了,今天先给大家介绍到这里

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-28 11:55 , Processed in 0.067019 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表