当前位置: 首页 > news >正文

网站被k表现一起装修网北京总部官网

网站被k表现,一起装修网北京总部官网,口碑好的定制网站建设服务商,springcloud项目搭建在软件测试中,测试环境的切换是个令人头疼的问题。不同环境的配置不同,如何高效切换测试环境成为许多测试开发人员关注的重点。你是否希望在运行测试用例时,能够动态选择测试环境,而不是繁琐地手动修改配置? Pytest 测…

在软件测试中,测试环境的切换是个令人头疼的问题。不同环境的配置不同,如何高效切换测试环境成为许多测试开发人员关注的重点。你是否希望在运行测试用例时,能够动态选择测试环境,而不是繁琐地手动修改配置?

Pytest 测试框架的 hook 函数可以轻松实现这一需求! 本文将带你详细了解如何借助 pytest 的强大功能,实现测试环境的动态切换。

在自动化测试过程中,有时候我们需要切换不同的测试环境用于验证功能是否正常(比如在测试环境中功能是正常的,但是到了预发布环境中就出现了问题)。往往我们需要手动修改测试脚本中的配置适配在不同的环境执行,十分不优雅!

如果能在执行测试脚本之前指定对应环境进行自动化配置那就不需要手动一个个修改配置了,比如像pytest执行时可以通过传入丰富的内置命令行参数改变其测试行为。同样pytest也能支持自定义命令行参数,通过对应的参数选取对应的环境配置进行执行,实现这一需求可以通过pytest的hook函数。

Pytest 是 Python 社区最受欢迎的测试框架之一,其灵活的插件机制和丰富的 hook 函数,让开发者能够根据需求自定义测试行为。在动态切换测试环境的场景中,以下思路和方法非常实用:

1. 使用 pytest 的 pytest_addoption 添加命令行参数

通过为 pytest 添加命令行参数,我们可以实现环境配置的动态传递。

实现步骤:

  • conftest.py 文件中,定义一个选项用于传递环境信息。
def pytest_addoption(parser):parser.addoption("--env", action="store", default="dev", help="Specify test environment: dev/staging/prod")

关于pytest hook函数

Hook函数(钩子函数),它是pytest框架的开发者为了让用户更好的去扩展pytest的功能而预留的一些函数。而预留的这些函数在整个测试执行的生命周期中特定的阶段会被pytest自动调用执行。

关于pytest中的预留钩子,可以通过开发插件,和在conftest.py去实现这些钩子。pytest中的钩子函数按功能一共分为6类:引导钩子,初始化钩子、用例收集钩子、用例执行钩子、报告钩子、调试钩子,当然动态切换测试环境这个需求我们不需要熟悉所有的钩子函数,这里我们只需要知道pytest_addoption这个初始化钩子函数即可:

函数

pytest_addoption

参数
  • parser :参数解析器
  • pluginmanager :插件管理器
触发时机:
  • conftest文件加载完之后执行, 在测试运行开始时调用一次。
作用:
  • 添加运行命令的命令行参数,pytest.ini的配置参数

实现步骤

1:新增conftest.py文件,添加pytest_addoption钩子函数
def pytest_addoption(parser):"""注册自定义参数命令行参数"""parser.addoption("--env", default="test", choices=['dev', 'test', 'pre'],help="命令行参数 '--env' 设置环境切换")

参数说明:

  • --env 代表需要传入 --env 参数,后续通过pytest --env=test 或者 pytest --env test去运行
  • default 代表默认值,不传--env参数的情况下默认使用test环境
  • choices 设置参数范围,仅限于dev、test、pre这三个环境
  • help 代表命令行参数的帮助信息

需要注意:钩子函数名字是固定的,不能随意更改

2:定义fixture函数,用于获取命令行参数
@pytest.fixture(scope='session')
def get_env(request):option = request.config.getoption("--env")if option == 'test':print("当前环境为测试环境")elif option == "dev":print("当前环境为开发环境")elif option == "pre":print("当前环境为预发布环境")

 

3:在测试函数上使用fixture

image20230731151028054.png

我们可以看到通过--env参数可以切换不同的环境执行,不加参数的情况下使用的是test环境。

4:fixture函数解析不同的配置

上述的步骤能够完成基本的命令行参数解析,但是离动态切换环境还差一步:我们需要通过不同的参数读取对应的配置文件,将配置文件信息解析出来传递给测试用例使用。

在项目的config目录下保存项目的不同环境配置文件:dev-env.ini、test-env.ini、pre-env.ini。文件中存储不同的环境参数值(比如URL、账号信息、数据库配置信息等),如下所示:

[host]
baseurl = http://192.168.3.200:8080[account]
username = admin
password = 123456abc[dbinfo]
url = http://db.192.168.3.100:8081
port = 3306
username = root
password = 123456abc

[host] baseurl = http://test.lemonban.com [account] username = lemon_auto password = lemon123456 [dbinfo] url = http://db.lemonban.com port = 3306 username = student password = 123456a

image20230731153018604.png

通过在测试函数中引用fixture函数get_env,即可获取对应的配置参数值。

在敏捷开发和 DevOps 的背景下,动态切换测试环境已经成为软件测试流程中不可或缺的一部分。传统的手动切换环境方式效率低下,甚至可能导致配置错误,进而影响测试结果的准确性。 借助 Pytest 的灵活机制,动态切换测试环境不仅能提升测试效率,还能更好地适应多环境并行测试的需求。

Pytest 的 hook 函数为动态切换测试环境提供了强大的支持。通过简单的配置和代码调整,你可以轻松实现多环境测试的需求,让测试流程更加高效和规范化。

“测试环境切换不再是难题,Pytest 带你迈向自动化测试的新高度!”


http://www.yayakq.cn/news/306010/

相关文章:

  • 爱站关键词挖掘工具网站关键词优化的步骤和过程
  • ps做网站字体用多大的北京新鸿儒做的网站
  • 国内虚拟助手网站怎样用ps做网站的效果图
  • 黑白灰网站wordpress编程视频教程
  • 南昌知名网站建设公司内蒙古呼和浩特市邮编
  • 网站开发用的工具做网站要分几部分完成
  • 网站一键提交收录学做网站论坛VIP怎么样
  • 在淘宝做网站可以退货退款么公众号平台登录入口官网
  • 深圳创意网站建设wordpress免费的吗
  • 公司内部网站源码天津河东做网站哪家好
  • 通化网站建设中英文切换网站模板
  • 网站建设工程师职责十个常见的网络推广渠道
  • 网站建设编辑做土司的网站
  • 玉泉路网站制作wordpress怎么置顶
  • 网站建设工程师职责说明城市建设投资公司 网站
  • 贵港网站建设动态服装设计师怎么学
  • 网站有哪些类型和它的成功案例表格制作excel下载
  • 网站备案初审过了wordpress文字加效果
  • 泉州手机网站建设公司公司网站建设入什么费用
  • 建站 wordpress传统网站和手机网站的区别是什么
  • 网站开发图片存哪里上海3d建模培训学校
  • 网站设计方案案例街机网页游戏大全
  • 网站文字代码哈尔滨建设鞋城
  • 中国建设银行网站的社保板块在哪里做网站的大小
  • 网站需求怎么做西安谁家做网站
  • 网站设计例子上海网站平台建设
  • 广东网站建设系统网页紧急升级
  • 贵阳建设工程招投标网站优化营商环境存在问题及整改措施
  • 为什么自己做不出一个好网站大气集团网站模板
  • 网站数据分析建设vi设计概念