Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Pytest-ordering自定义用例执行顺序

Pytest-ordering自定义用例执行顺序

作者头像
王大力测试进阶之路
发布于 2020-05-28 14:55:01
发布于 2020-05-28 14:55:01
1K00
代码可运行
举报
文章被收录于专栏:橙子探索测试橙子探索测试
运行总次数:0
代码可运行

我们一般在做自动化测试时,用例设计之间应该是可以相互独立执行的,没有一定的前后依赖关系的,如果我们真的有前后依赖,想指定用例的先后顺序,可以用到pytest-ordering插件解决这个问题

1、安装依赖包

pip install pytest-ordering

2、运用

用例方法上添加装饰器@pytest.mark.run(order=2),用例执行顺序会以order值大小升序去调用执行

3、先按Pytest默认执行顺序(根据用例的先后顺序)先执行了用例1(test_login_01)再执行了用例2(test_login_02)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/env python
# _*_coding:utf-8_*_
import pytest
 
 
class Test(object):
 
    def test_login_01(self):
        """用例1"""
        print('执行用例test_login_01断言1')
        pytest.assume(1 == 1)
        print('执行用例test_login_01断言2')
        pytest.assume(2 == 2)
 
    def test_login_02(self):
        """用例2"""
        print('执行用例test_login_02断言1')
        pytest.assume(3 == 3)
        print('执行用例test_login_02断言2')
        pytest.assume(True)
 
 
if __name__ == '__main__':
    pytest.main(['-s', 'test_C_01.py'])
 
 
 
C:\Users\admin\AppData\Local\Programs\Python\Python37\python.exe C:/Users/admin/Desktop/AutoTest/Test/test/test_C_01.py
============================= test session starts =============================
platform win32 -- Python 3.7.4, pytest-5.4.2, py-1.8.1, pluggy-0.13.1
rootdir: C:\Users\admin\Desktop\AutoTest\Test\test
plugins: assume-2.2.1, ordering-0.6
收集的测试用例:[<Function test_login_01>, <Function test_login_02>]
collected 2 items
 
test_C_01.py 执行用例test_login_01断言1
执行用例test_login_01断言2
.执行用例test_login_02断言1
执行用例test_login_02断言2
.
 
============================== 2 passed in 0.04s ==============================
 
Process finished with exit code 0

4、设置了用例先后顺序为est_login_01(@pytest.mark.run(order=2))、test_login_02(@pytest.mark.run(order=1)),调用后先执行了用例2(test_login_02)再执行了用例1(test_login_01)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/env python
# _*_coding:utf-8_*_
import pytest
 
 
class Test(object):
 
    @pytest.mark.run(order=2)
    def test_login_01(self):
        """用例1"""
        print('执行用例test_login_01断言1')
        pytest.assume(1 == 1)
        print('执行用例test_login_01断言2')
        pytest.assume(2 == 2)
 
    @pytest.mark.run(order=1)
    def test_login_02(self):
        """用例2"""
        print('执行用例test_login_02断言1')
        pytest.assume(3 == 3)
        print('执行用例test_login_02断言2')
        pytest.assume(True)
 
 
if __name__ == '__main__':
    pytest.main(['-s', 'test_C_01.py'])
 
 
C:\Users\admin\AppData\Local\Programs\Python\Python37\python.exe C:/Users/admin/Desktop/AutoTest/Test/test/test_C_01.py
============================= test session starts =============================
platform win32 -- Python 3.7.4, pytest-5.4.2, py-1.8.1, pluggy-0.13.1
rootdir: C:\Users\admin\Desktop\AutoTest\Test\test
plugins: assume-2.2.1, ordering-0.6
收集的测试用例:[<Function test_login_01>, <Function test_login_02>]
collected 2 items
 
test_C_01.py 执行用例test_login_02断言1
执行用例test_login_02断言2
.执行用例test_login_01断言1
执行用例test_login_01断言2
.
 
============================== 2 passed in 0.06s ==============================
 
Process finished with exit code 0
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 橙子探索测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Pytest标记预期失败得测试用例@pytest.mark.xfail()
除了测试函数中使用这个方法pytest.xfail()外,xfail还有一种使用方法。就是@pytest.mark.xfail()标记预期会失败的用例,即期望测试用例是失败的,但是不会影响测试用例的的执行。
王大力测试进阶之路
2020/07/23
9470
软件测试/测试开发|pytest用例执行顺序,这篇文章就够了
在使用unittest测试框架执行测试时,测试用例执行的顺序是默认按照ACSII码的顺序加载测试用例并执行,顺序为:0-9、A-Z、a-z,测试目录、测试模块、测试类、测试方法/测试函数都按照这个规则来加载测试用例。在有的时候,我们并不希望测试用例按照这样的规则来执行,pytest就可以让我们按照我们制定的规则来执行测试用例。本文就向大家介绍一下pytest用例执行顺序的这些事儿。
霍格沃兹测试开发Muller老师
2024/01/04
3050
Python测试框架pytest(20)插件 - 生成html报告、重复执行用例、用例执行顺序、多重断言
pytest-html 测试报告默认是不展示用例描述 Description 内容,可以修改生成的报告内容,添加或删除 html 报告的 table 内容。
wangmcn
2022/07/26
1.1K0
Python测试框架pytest(20)插件 - 生成html报告、重复执行用例、用例执行顺序、多重断言
pytest文档37-自定义用例顺序(pytest-ordering)
测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果. 有些同学在写用例的时候,用例写了先后顺序, 有先后顺序后,后面还会有新的问题(如:上个用例返回数据作为下个用例传参,等等一系列的问题。。。) github 上有个 pytest-ordering 插件可以控制用例的执行顺序,github插件地址https://github.com/ftobia/pytest-ordering
上海-悠悠
2020/05/07
9860
Pytest测试用例之setup与teardown方法(一)
学过unittest框架的大家都知道里面 [前置/后置setup/teardown ]非常好,用来写一些每个case执行前都需要执行的公用代码 [ 作用:在每次用例开始前和结束后都去执行一次 ]
测试小兵
2020/07/09
2.2K0
Pytest(十四)用例执行顺序
在很多人执行用例的时候呢,都会想要调整下用例的执行顺序。在pytest的原生的顺序已经满足不了我们的需求的时候呢,我们可以用pytest-ordering来控制我们的执行的顺序。
雷子
2022/04/06
1.6K0
Pytest(十四)用例执行顺序
Pytest学习笔记6——自定义用例顺序
  unittest框架和pytest框架编写的测试用例执行顺序,默认根据ACSII码的顺序加载测试用例,数字与字母的顺序为:0~9,A~Z,a~z。
全栈测试开发日记
2023/02/02
3090
Pytest学习笔记6——自定义用例顺序
Pytest Hooks方法之pytest_collection_modifyitems改变测试用例执行顺序
pytest默认执行用例顺序是根据项目下文件名称按ascii码去收集运行的,文件里的用例是从上往下按顺序执行的.
王大力测试进阶之路
2020/05/25
2.2K0
Pytest参数选项自由执行测试用例详解(二)
运行pytest可以指定目录和文件,如果不指定,pytest会搜索当前目录及其子目录中以test_开头或以_test结尾得测试函数。我们把pytest搜索测试文件和测试用例的过程称为测试搜索(test discovery)。只要遵循pytest的命名规则,pytest就能自动搜索所有待执行的测试用例。所有的包必须要有init.py文件(在使用各种编辑器时会自动生成)
王大力测试进阶之路
2021/07/28
1.3K0
pytest文档34-Hooks函数改变用例执行顺序(pytest_collection_modifyitems)
有一些小伙伴一直想改变pytest用例的执行顺序,实际上我们在用例设计原则上用例就不要有依赖顺序。 pytest默认执行用例是先根据项目下的文件夹名称按ascii码去收集的,module里面的用例是从上往下执行的. pytest_collection_modifyitems 这个钩子函数顾名思义就是改变用例的执行顺序。
上海-悠悠
2020/04/22
1.2K0
pytest文档34-Hooks函数改变用例执行顺序(pytest_collection_modifyitems)
Pytest Hooks方法之pytest_runtest_makereport获取测试用例结果
pytest提供的钩子(Hooks)方法之pytest_runtest_makereport,可以更清晰的了解用例的执行过程,并获取到每个用例的执行结果。
王大力测试进阶之路
2020/05/20
2.6K0
Pytest和Allure测试框架-超详细版+实战
:1. 简单灵活,容易上手;支持参数化; 测试用例的skip和xfail 处理; 2. 能够支持简单的单元测试和复杂的功能测试,还可以用来做 selenium/appium等自动化测试、接口自动化测试 (pytest+requests); 3. pytest具有很多第三方插件,并且可以自定义扩展, 比较好 用的如 pytest-allure(完美html测试报告生成) pytest-xdist (多CPU分发)等; 4. 可以很好的和jenkins集成;** 5. **
全栈程序员站长
2022/09/17
2.4K0
Pytest和Allure测试框架-超详细版+实战
pytest 自动化测试框架(一)
pytest 是一个成熟的全功能 Python 测试工具,可以帮助您编写更好的程序。它与 Python 自带的 Unittest 测试框架类似,但 pytest 使用起来更简洁和高效,并且兼容 unittest 框架。pytest 有以下实用特性:
霍格沃兹测试开发
2020/10/23
1.2K0
软件测试/测试开发/全日制|pytest如何标记测试用例
在pytest中,有时候我们并不需要对所有的用例全部执行。pytest提供了一种机制:有选择的挑选用例去执行,即标记测试函数。下面详细介绍几种方法给函数标记。
霍格沃兹测试开发Muller老师
2024/01/10
2220
Pytest之基本介绍
Pytest 是 Python 的一种单元测试框架,与 Python 自带的 unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。
可可的测试小栈
2020/07/21
7980
Pytest测试用例之setup与teardown方法(二)
续 日常积累 | 初识Pytest | 日常积累 | 初识pytest (二) | Pytest测试用例之setup与teardown方法(一)继续分享, 今天继模块级以及函数式setup与teardown之外的2种类与方法级的写法与执行顺序
测试小兵
2020/07/10
1.7K0
Pytest测试用例之setup与teardown方法(二)
pytest系列教程——2、pytest断言的使用
unitest单元测试框架中提供了丰富的断言方法,如assertEqual()、assertIn()、assertTrue()、assertIs()等,但是pytest没有。直接使用Python的assert进行断言
胡八万
2022/06/08
1.3K0
pytest学习和使用2-初步使用和用例运行
1 测试脚本在pytest_study文件夹下创建一个test_mm.py# -*- coding:utf-8 -*-# 作者:NoamaNelson# 日期:2021/8/27 16:51# 文件名称:test_mm.py# 作用:xxx# 联系:VX(NoamaNelson)# 博客:https://blog.csdn.net/NoamaNelsondef m_sum(x): return x * (x+1)def test_m_sum(): assert m_sum(3) == 11在py
虫无涯
2023/02/06
2230
Python自动化测试 | Pytest之参数化
软件测试中,输入相应值,检查期望值,是常见测试方法。在自动化测试中,一个测试用例对应一个测试点,通常一组测试数据无法完全覆盖测试范围,所以,需要参数化来传递多组数据。
测试小兵
2021/01/05
1.3K0
Pytest自定义标记mark及指定文件/类/方法/用例执行
pytest.main(['-s','test01.py','-m=test'])
王大力测试进阶之路
2019/12/15
1.9K0
推荐阅读
相关推荐
Pytest标记预期失败得测试用例@pytest.mark.xfail()
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验