Pytest这些功能你必须要掌握 自动化脚本如何切换环境 (pytest框架)
本文目录导航:
自动化脚本如何切换环境?Pytest这些功能你必须要掌握
自由切换环境在自动化测试中至关重要。
作为测试人员,我们经常需要在不同的环境中执行测试用例,如线上环境、测试环境和预上线环境等。
为了使 Python 编写的测试用例具备灵活的环境切换能力,本文将重点介绍如何利用 pytest 框架实现这一功能。

为了便于理解,我们将从三种方法入手,逐一探讨如何通过 pytest 实现环境切换。
方法一:pytest-base-url
pytest 提供了 `pytest-base-url` 插件,专为管理 base_url 设计。
此插件可通过命令行参数或配置文件方式使用。
方法二:自定义命令行参数
利用 pytest 的 hooks 函数,如 `pytest_addoption`,可自定义命令行参数,灵活管理多个 URL 地址。
在 `` 文件中定义函数,为不同的环境(如数据库 URL)提供命令行参数。
方法三:yml 和 fixture 配合使用
创建 `` 文件用于配置当前执行环境,同时在 `` 文件中定义两个 fixture 函数,分别读取配置文件内容并配置具体的环境信息(如 QA 或 Release 环境)。
通过配置文件中的信息动态调整 `project_url` 和 `mysql_url`。
总结,灵活运用以上方法,自动化测试人员可以轻松实现测试用例在不同环境间的自由切换。
其中,使用 yml 和 fixture 的方法在灵活性上更胜一筹,可根据项目特点进行选择。
希望本文提供的内容能够帮助您在实际工作中解决环境切换难题。
自动化测试 - 重复执行测试
安装插件
全局安装:即安装在全局环境中,新创建的工程导入全局环境时会将该包导入,cmd 输入:pip install pytest-repeat。
局部安装:即安装在当前项目的环境下,新创建的工程不会同步该包,在 PyCharm→File→setting,搜索 pytest intrepreter,点击 “+” 号,如下图所示:
注意:pytest-repeat不能与测试类一起使用。
无论--count设置多少,这些测试始终仅运行一次,并显示警告。
注: 在测试用例前添加注解(value),value 表示重复的次数,来实现单条用例的重复执行。
执行效果如下:
在终端输入:
注: -s:表示输出用例中的调式信息,比如 print 的打印信息等。
-v:表示输出用例更加详细的执行信息,比如用例所在的文件及用例名称等。
执行效果如下:
作用:可以覆盖默认的测试用例执行顺序,类似fixture的scope参数
在终端输入:
命令行参数 function:默认,范围针对每个用例重复执行,再执行下一个用例 class:以class为用例集合单位,重复执行class里面的用例,再执行下一个 module:以模块为单位,重复执行模块里面的用例,再执行下一个 session:重复整个测试会话,即所有测试用例的执行一次,然后再执行第二次
执行效果如下:
方法一:通过注解的形式实现失败重运行
注: reruns: 表示重运行的次数 reruns_delay: 表示重运行次数之间的延迟时间,单位:秒
执行结果如下:
方法二:通过使用命令行参数,实现失败重运行
在终端输入:
执行结果如下:
将 pytest 的 -x 选项与 pytest-repeat 结合使用,可以实现在重复运行测试用例的过程中,测试用例第一次失败时就停止运行,具体实现方法如下:
在终端输入:
执行结果如下:
最完整的Pytest自动化用例管理参数命令整合
在Pytest的自动化测试用例管理中,通过命令行参数可以精细控制测试执行过程和输出模式。以下是一些关键的参数整合:
通过这些命令,你可以根据项目需求灵活定制Pytest的测试执行策略,提高测试效率并获取清晰的测试报告。