当前位置: 首页 > news >正文

Pytest用例执行顺序和跳过执行详解

1.py文件的执行顺序

pytest默认按字母顺序去执行的(小写英文--->大写英文--->0-9数字)

setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module

1)文件之间按照ASCLL码排序

2)文件内默认按照从上到下进行执行

文件内的用例按照从上往下执行。

2. 改变用例的执行顺序 -装饰器@pytest.mark.run(order=x)

@pytest.mark.run(order=x) 需要pip install pytest-ordering

1

2

3

4

5

6

7

8

9

10

11

12

13

@pytest.mark.run(order=x)

# x是整数(可以是正数也可以是负数)

# 全为正数或负数时,值越小,优先级越高

# 既有正数又有负数时,正数优先级高(-1,2,-3的执行顺序是2,-3,-1)

# 0是正整数中最小的,优先级最高

@pytest.mark.run(order=0)

# 两个0是,就按照正常顺序执行

已经改变了用例执行规则,针对于是全局的,会先执行完@pytest.mark.run(order=1)才会执行order=2的用例

其实总体来说,这个插件的实用场景不是很多,如果需要指定某个用例第一个执行和最后执行,可以用该插件实现。

如果要按照你指定的顺序执行下去,需要在每个用例前都加上@pytest.mark.run(order=1),其中order中的数字需递增。

 

方式一

方式二

方式三

第一个执行

:@ pytest.mark.first

:@ pytest.mark.run('first')

:@ pytest.mark.run(order=1)

第二个执行

:@ pytest.mark.second

:@ pytest.mark.run('second')

:@ pytest.mark.run(order=2)

倒数第二个执行

:@ pytest.mark.second_to_last

:@ pytest.mark.run('second_to_last')

:@ pytest.mark.run(order=-2)

最后一个执行

:@pytest.mark.last

:@ pytest.mark.run('last')

:@ pytest.mark.run(order=-1)

3. 分组执行用例

在工作中有的时候我们并不需要执行所有用例,所以就会用到分组执行啦。

这里同样也要用到装饰器@pytest.mark

1)在pytest.ini中配置分组

1

2

3

[pytest]

markers=g1

g2

这个设置的作用就是标记用例进行分组

2)测试用例加入标记

3)运行用例

需要输入pytest -m '分组名'

4) 多个分组用例运行需要用or进行连接

5)运行除标记外的用例

1

pytest.main(['-vs''zmytest/test_order.py''-m'"not g2 and not g1"])

4. pytest跳过测试用例

pytest.mark.skip:跳过用例执行

跳过执行,跳过分为有条件跳过和无条件跳过

1、无条件跳过

1

@pytest.mark.skip(reason="XXX")

2、有条件跳过

1

@pytest.mark.skipif(age>=18,reason='已成年')

1)无条件跳过

1

2

@pytest.mark.skip(reason="XXX")

@pytest.mark.skip

2)有条件跳过

@pytest.mark.skipif(条件,reason='')这个方法就是当满足条件时跳过被标记的用例,什么是被标记?就是这个装饰器下面的第一条用例

 

 感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。


http://www.mrgr.cn/news/60594.html

相关文章:

  • svg 初识+了解 + 应用 + 动画
  • Armstrong‘s axiom
  • Ribbon解说
  • Python Pandas 数据分析的得力工具:简介
  • K8S部署
  • 兼容Lodash的真正替代者
  • SQL-lab靶场less1-4
  • 《C++ 旧项目全局变量模块化改造:稳扎稳打,守护原有功能》
  • Flow-based生成模型理解
  • DevSecOps在数字政府建设中的实践研究
  • MinIO方法封装
  • 【C++】Type punning类型双关、union联合体、C++中的类型转换casting
  • 手机也能开数电票了,可能我也即将要失业了
  • Codigger桌面模式之Size Look介绍
  • 使用语言模型进行文本摘要的五个级别(llm)
  • 去中心化的概述
  • 机器学习中的谱聚类及实践案例
  • VLAN聚合
  • 1.字节大小
  • Java集合框架中的泛型有什么优点?
  • 第13天小整理
  • 机器学习入门之监督学习
  • 并联 高电压、高电流 放大器实现 2 倍输出电流模块±2A
  • 《学会提问》
  • qt-opensource-windows-x86-5.14.2.rar
  • 聚水潭到畅捷通T+的数据高效集成方案解析