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测试用例执行。。。。。")

原创文章,作者:jamestackk,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/269479.html

(0)
上一篇 2022年6月22日 07:54
下一篇 2022年6月22日 07:54

相关推荐

发表回复

登录后才能评论