微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pytest基础使用

pytest

认规则

  • 模块名以test_开头或者_test结尾
  • 测试类以Test开头,并且不能有init方法
  • 测试用例以test开头

pytest相关插件
pytest-html 生成html测试报告
pytest-xdist 测试用例多线程执行
pytest-ordering 改变用例执行顺序
pytest-rerunfailures 用例失败重跑
allure-pytest 生成测试报告

1.运行方式

1.1 主函数运行方式

#运行所有
pytest.main()

#指定模块运行
pytest.main(['test_login.py'])

#指定目录运行
pytest.main(["./testcase"])

1.2 命令行方式运行

#运行所有
pytest

#指定模块运行
pytest test_login.py

#指定目录运行
pytest ./testcase

1.3 命令行及主函数运行参数详解

  • -s: 表示输出调试信息
  • -v: 显示更详细的信息
  • -n支持多线程运行用例,
  • -x:只要一个用例报错,测试就会停止
  • -k: 根据测试用例的字符串模糊匹配用例执行
  • -maxfail={n}: 用例失败n次,测试停止
  • -reruns={n}: 用例失败重跑
#命令行方式:
pytest -vs ./testcase --reruns 2

#主函数方式:
pytest.main(["-vs", "./testcase", "--reruns=2"])

1.4 pytest.ini运行配置文件

  • 一般放在项目的根目录
  • 文件编码必须是ANSI编码
  • 函数或者命令行方式运行,都会去读取这个配置文件,按配置文件的规则执行用例
    addopts: 运行时添加的参数如 -v -s
    testpaths: 运行测试用例的路径
    python_files: 匹配测试模块名的规则
    python_classes: 匹配测试类的规则
    python_functions: 匹配方法名的规则

配置文件

[pytest]
addopts=-vs
testpaths=./testcase
python_files=test*
python_classes=Test*
python_functions=test*

1.5 给用例打上标签,指定运行标签关联的用例

使用装饰器给修饰在用例上,表示给此用例打上标签,如:
@pytest.mark.read
@pytest.mark.后的命名可自定义

代码

    @pytest.mark.read
    def test_login2(self):
        print("\npytest测试用例执行。。。。。")

配置文件需要添加以下参数:

markers =
    read: 只读用例

执行用例:

pytest -m "read"

如果多个标签只需要加上or关键字连接即可,如:

pytest -m "read or write"

2.执行顺序

认是按用例从上至下的方式执行

可用装饰器在用例上修饰:
@pytest.mark.run 装饰器参数order 表示用例的优先级
如果存在多个用例,只有部分用例使用装饰器,那么优先执行带有装饰器的用例,其他没有使用装饰器的用例按认顺序执行;

    @pytest.mark.run(order=1)
    def test_login2(self):
        print("\npytest测试用例执行。。。。。")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐