使用pytest中方法控制执行步骤(test_begin.py、test_end.py,@pytest.mark.run(order=1))

测试脚本的编写如查询客户等页面都需要依赖于登录,这样的话类似需要依赖登录操作都需要在这个测试脚本中重复编写登录用例,为了避免重复写代码我们可以用pytest中的方法控制测试执行步骤

第三方工具的修改

1、增加退出驱动driver的标记以及修改这个标记的方法

python 复制代码
class UtilsDriver:
    _driver = None
  	#	修改的代码,增加一个退出driver的标记以及修改driver属性的方法
    __quit_driver = True  # 后台系统退出驱动的标识
    # 定义修改私有属性的方法
    @classmethod
    def set_quit_driver(cls, mark):
        cls.__quit_driver = mark

脚本修改

  1. 增加test_begin.py文件:第一个执行用例,设置driver为True
  2. 通过order值大小,最小的先执行,最大的后执行
python 复制代码
import pytest
from utils import UtilsDriver

#用例最开始执行
@pytest.mark.run(order=1)
class TestBegin:
    def test_begin(self):
        UtilsDriver.set_quit_driver(False)

2、增加test_end.py文件,最后执行后退出驱动

python 复制代码
import pytest
from utils import UtilsDriver

#用例最后执行,通过order值大小
@pytest.mark.run(order=9)
class TestEnd:
    def test_end(self):
        UtilsDriver.set_quit_driver(True)
        UtilsDriver.quit_driver()

3、用例执行:两个测试文件。

python 复制代码
#第一个用例执行
@pytest.mark.run(order=2)
@allure.story("登录模块")
class TestLogin:

#第二个用例执行
@pytest.mark.run(order=3)
class TestDigit:

用例执行

1、输入pytest执行即可

相关推荐
CyrusYiVPP6 分钟前
哪个用户会再来买?RFM模型+plotly画出用户分层,数据分析实战第2期
人工智能·python
李帅5152 小时前
用 CPU 做发票识别:从 OCR 文本行到结构化明细表的 4 个硬骨头
python
happylifetree2 小时前
Python79:核心语法-面向对象基础-实例方法
python
nice_lcj5203 小时前
ThreadLocal 入门:它是怎么隔离数据的、为什么会导致内存泄漏
java·开发语言·后端·面试·并发编程·内存泄漏·threadlocal
贝壳6903 小时前
bool-hybrid-array 9.13.6 偷偷加了个"按键自动升序"的字典,我翻出来测了下
python
紧跟先前的步伐3 小时前
Go AI Agent 实战 28|Agent 的预算、超时与停止条件
开发语言·人工智能·后端·ai·golang
艺杯羹3 小时前
MCP本地服务集成避坑:从Stdio管道僵死到双向JSON-RPC稳健通信
人工智能·python·ai·系统架构·大语言模型·ai编程·mcp
happylifetree3 小时前
Python78:核心语法-面向对象基础-类与对象
python
duansamve4 小时前
Python中进程
python
日日大王学编程4 小时前
AI Agent 技术发展历程、演进逻辑与技术范式综述
人工智能·python