如何通过pytest进行更改自动化测试用例的执行顺序?

news2024/12/25 2:08:17

前言

在自动化测试中,自动化测试用例设计原则就是执行过程时不能存在依赖顺序,那么如果测试用例需要按照指定顺序执行,这个时候应该怎么做呢?目前单元测试框架中unittest没有办法改变测试用例的执行顺序,但是另一个单元测试框架pytest可以做到,辅助测试人员更改测试用例的执行顺序,今天小编简单的介绍几种,如何通过pytest进行更改自动化测试用例的执行顺序。

pytest

pytest的执行顺序想必大家都清楚,是通过ascii码进行收集的,然后通过文件中从上往下的执行顺序进行运行,我们只需要将我们的测试用例在编写时,按照从上往下的顺序进行编写。

#coding:utf-8

import pytest

def test_a():

print('测试用例01')

def test_b():

print('测试用例02')

def test_c():

print('测试用例03')

通过运行后发现,顺序是按照从上往下的顺序依次执行。

pytest-ordering

pytest-ordering属于pytest的一个插件,其目的就是帮助我们控制自动化测试用例的执行顺序,而且使用起来也比较简单。

安装:pip install pytest-ordering

使用方法

使用方法比较简单,我们只需要在编写好的测试用例前加上一个装饰器,然后通过改变装饰器传入的参数进行控制其用例执行的顺序。小编这里拿到上方的用例,我们将从下往上的执行。

#coding:utf-8

import pytest

@pytest.mark.run(order=3)

def test_a():

print('测试用例01')

@pytest.mark.run(order=2)

def test_b():

print('测试用例02')

@pytest.mark.run(order=1)

def test_c():

print('测试用例03')

通过执行测试用例会很清楚的看到,我们已经将测试用例的执行顺序改变了。

pytest_collection_modifyitems

pytest_collection_modifyitems属于pytest的钩子函数,这个函数可以收集我们的测试用例,收集完成后可以对其进行一些修改和排序功能,下面小编简单的介绍该使用方法。

使用方法

首先需要将pytest_collection_modifyitems这个函数放入到conftest.py文件中,然后对其进行二次开发,这里小编通过倒叙的形似修改了收集到的测试用例,从而改变测试用例的执行顺序。

#conftest.py

#coding:utf-8

def pytest_collection_modifyitems(session,items):

print("收集到的测试用例:%s"%items)

#修改执行顺序

items.reverse()

for i in items:

print('收集到测试用例名称:%s'%i.name)

编写3个简答的测试用例,通过命令行的方式进行运行,并且会发现也将我们的测试用例顺序改变和收集到了我们的测试用例相关信息。

#coding:utf-8

import pytest

def test_a():

print('测试用例01')

def test_b():

print('测试用例02')

def test_c():

print('测试用例03')

总结

小编通过简单的案例介绍了如何在pytest中改变测试用例的执行顺序,当然上述方法并不是唯一的方法,只是提供一个简单的思路,小编还是希望大家编写测试用例时注意不要互相依赖,这样的话执行顺序就可以随机执行,保证我们的测试用例不受其他用例的干扰而成功执行。感谢您的阅读,希望本篇文章对您有所帮助。

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/585144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

北京发布Web3.0白皮书!币圈扬言:国际金融格局即将重塑!

如今,虚拟资产已成为香港数字经济与金融创新的“桥头堡”。随着加密新政生效在即,市场暗流涌动,头部交易所争相布局,香港或将迎来新一轮的加密竞争。 多家交易所进军香港 5月28日,欧易(OKX)完成…

浅谈兼容性测试点和注意项

一:兼容性测试的概念:就是验证开发出来的程序在特定的运行环境中与特定的软件、硬件或数据相组合是否能正常运行、有无异常的测试过程。 二:兼容性测试的分类: (1)浏览器兼容性测试 指的是在浏览器上检…

one-stage目标检测方法

YOLO系列算法 从区域推荐到端到端 RCNN系列的方法和核心思想在于:先找出可能存在物体的区域,再确认物体的存在 这种思路归根溯源,来自传统的目标检测算法。 为了解决传统方法中的滑动窗口的方式,来找出可能存在目标的区域&…

自学软件测试到什么程度才可以去找工作...拿到阿里offer后才知道有这些就够了!!

如果是纯自学,建议先自学软件测试基础、功能测试等,然后找一个相关的工作,在工作中,边增长项目经验,边自学更难一点的自动化编程、性能测试等。自动化测试、性能测试如果没有老师带,自学的难度比较大&#…

uniapp 使用自定义icon图标

1.下载图标文件 阿里图标库位置:iconfont-阿里巴巴矢量图标库 eg: 搜索 “书签” 图标,点击加入购物车,再进入购物车,填写加入项目,也可以直接下载,点击编辑 编辑可以设置图片颜色,或像素大小…

immutable深拷贝:数据多层属性-不可变数据结构

一、为何要用immutable深拷贝? 1.浅拷贝(浅复制) //引用赋值-浅复制、浅拷贝 var obj{name:"溜溜球"}var obj2obj;obj2.name"刘刘球";console.log(obj);//name:"刘刘球"console.log(obj2);//name:"刘刘…

[C++][opencv]opencv填充透明色到不规则polygon区域

大家用yolov5-seg分割都知道官方演示分割结果会把分割区域半透明填充到原图里面,那么C如何实现呢。今天特地研究了下。由于分割点是变动的,所以我们需要用变量控制分割点数。 参考文章写的很不错,但是有个毛病,他这个是5点必须是…

MySQL---JDBC基础操作、SQL注入

1. JDBC JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。 JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java 语言编写的接口和类组成。 JDBC需要连接…

unreal 5.1 增强输入实现

在ue5.1版本增加了增强输入,并且废弃了之前的轴映射和操作映射。 官方文档地址:https://docs.unrealengine.com/5.1/zh-CN/enhanced-input-in-unreal-engine/ 输入动作(Input Actions) 更改后的区别我体验下来,它将…

探索 PlanetIX:解读区块链游戏运营的奥秘

作者: danielfootprint.network 熊市之中,PlanetIX 成长为最强的 Web3 游戏,在 Polygon 网络上独占鳌头。而其开发团队深度使用了 Footprint Analtics 的零代码数据分析平台和-GameFi 的数据 API 来提升用户的游戏体验。 近日,Footprint 与…

Visual Studio添加native tools command prompt

学习UEFI开发,环境设置种需要用到native tools command prompt,但是看了一下VS2017的Tools菜单下没有这个选项。网上查询,解决了问题: Tools > External Tools > Add Title:VS Command PromptCommand:C:\Windows\System32\…

操作系统原理 —— 内存管理的概念(十八)

为什么要有内存管理 为什么要对内存进行管理,需要解决什么问题? 要回答这个问题,首先我们需要明白:进程运行时,需放在内存才能运行。比如在执行一个程序时,需将该程序的相关数据与指令装入内存才能运行。…

家居购项目 (上)

文章目录 🐀Java后端经典三层架构🐇MVC模型🐇开发环境搭建🐇会员注册🌳前端验证用户注册信息🌳思路分析🍉创建表🍉创建实体类🍉DAO🍌MemberDAOImpl &#x1f…

ISO21434 组织网络安全管理

目录 一、概述 二、目标 三、输入 3.1 先决条件 3.2 进一步支持信息 四、要求和建议 4.1 网络安全治理 4.2 网络安全文化 4.3 信息共享 4.4 管理系统 4.5 工具管理 4.6 信息安全管理 4.7 组织网络安全审计 五、输出 一、概述 为了实现网络安全工程,该…

Rotary Position Embedding (RoPE, 旋转式位置编码) | 原理讲解+torch代码实现

🔥 RoPE为苏剑林大佬之作,最早应用于他自研的RoFormer (Rotary Transformer),属于相对位置编码。效果优于绝对位置编码和经典式相对位置编码。出自论文:《RoFormer: Enhanced Transformer with Rotary Position Embedding》 &…

轻松高效!三种方法教你音频转文字!

我们在日常生活中,总会遇到许多需要音频转文字的情况。这个时候大部分小伙伴会选择一边播放音频一边记录的方式来整理音频的内容,这样既麻烦又费时,整理的效率也不高。其实我们只需要使用软件来协助我们将音频转换成文字,就可以很…

2023年03月六级真题全3套【可复制可划线查词】共11页PDF

2023年03月六级真题全3套【可复制可划线查词】共11页PDF 2023年03月六级真题全3套【可复制可划线查词】共11页PDF 2023年03月六级真题全3套【可复制可划线查词】共11页PDF

html基础知识总结

(一)html 1、html html:超文本标签语言,专门用来制作网页的一门语言。超文本:就是它不仅可以放文本内容,还可以是图片,声音,视频,多媒体等等内容 2、 html标签的分类 …

ASEMI双向可控硅BT137性能特点, BT137应用及购买指南

编辑-Z 本文将详细介绍可控硅BT137的性能特点、应用领域以及购买时需要注意的事项,帮助您更好地了解和选择BT137可控硅。 一、BT137可控硅简介 可控硅(Silicon Controlled Rectifier,简称SCR)是一种四层三端半导体器件&#xff…

sql 优化----》1)分析与定位策略

https://www.cnblogs.com/cshaptx4869/p/10482500.html 1:通过 show status 了解各种的SQL的执行频率 2:定位执行频率低的SQL语句: 1):通过慢日志定位 慢日志:可以通过两个方式配置 方式一:配置文件,my.cnf show_query…