使用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执行即可

相关推荐
凤山老林4 小时前
Spring Boot 启动冲刺:耗时剖析、懒加载策略与事件驱动初始化优化
spring boot·后端·python
小白快快跑哦4 小时前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
远离UE44 小时前
UE5 Substrate Thin Film 源码拆析
开发语言·javascript·ue5
keyipatience4 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
Thinker QAQ4 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
java·python·go·并发编程·channel·blockingqueue·message passing
道满科技4 小时前
Function Calling 参数总出错?只修参数就行
linux·windows·python
栈帧之外5 小时前
【C++】STL之set
开发语言·c++
霸道流氓气质6 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python
catchadmin6 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.1 发布,新增 MCP 支持
开发语言·php
jimy17 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++