首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

jenkins动态切换环境

编程知识
2024年08月31日 11:18

一.代码层实现动态切换

1.首先在conftest.py下声明pytest_addoption钩子函数,写法如下

def pytest_addoption(parser):
    # 设置要接收的命令行参数
    parser.addoption("--env", default="prod", choices=['pre', 'uat', 'prod', 'test'],
                     help="命令行参数,--env设置环境切换")

--env:命令行参数

default:启动时未传--env,则默认值为prod

choices:参数值范围

help:命令行说明,可在终端执行:pytest --help查看

2.config文件下创建config.ini配置文件,写法如下

[HOST]
pre=https://pre-www.baidu.com
prod=http://www.baidu.com
uat=https://uat-www.baidu.com
test=https://test-www.baidu.com

这里不同环境对应的是不同地址

3.common在创建basecase封装读取ini文件的方法

def read_ini(config_path):
    with open(config_path, mode='r') as f:
        dict_ini = {i.strip().split('=')[0]: i.strip().split('=')[1] for i in f.readlines()[1:]}
        return dict_ini

config_path为ini地址,return返回的是处理过后的dict格式数据

4.用例层调用方法拿到不同的环境地址

from common.basecase import read_ini
from common.headle_path import config_path


# @pytest.mark.order(1)
def test_login(request,webdriver_init):
    custom_arg = request.config.getoption("--env")
    webdriver_init.get(read_ini(config_path)[custom_arg])

request:固定写法,通过request.config.getoption('--env')来获取启动时传递的参数

webdriver_init:conftest中初始化webdriver的固件函数

5.main.py中启动用例

import pytest

if __name__ == '__main__':
    pytest.main(['-s', '-v', '--env=prod'])

二.jenkins实现动态切换

基础配置可参考:https://www.cnblogs.com/lihongtaoya/p/18351371

1.在job配置下选择:This project is parameterized

 填写名称,选项,以及描述

2.Execute Windows batch command下填写win运行命令

 %env%:表示运行python脚本时向代码中传递一个值,env就是在This project is parameterized下设置的名称

3.如何取到这个值

python中可以通过os模块中argv列表来获取,run.py写法如下

import sys

import pytest

if __name__ == '__main__':
    # pytest.main(['-s', '-v', '--env=prod'])
    arg_one = sys.argv[1]
    pytest.main(['-s', '-v', f'--env={arg_one}'])

sys.argv[1]:表示获取传递的一个值

4.开始构建

 在构建选项中可以看到我们设置的环境选项以及描述,选择一个环境后开始构建即可。

 

From:https://www.cnblogs.com/lihongtaoya/p/18390111
本文地址: http://www.shuzixingkong.net/article/1607
0评论
提交 加载更多评论
其他文章 Session的运行机制
浏览器通过web访问服务器,服务器的web服务开启后,第一步就是开启session,这也是session的第一阶段: session_start() 这个函数的作用:开启session,然后根据以前设置的session_name去读取cookie信息,判断$_Cookies[$session_nam
FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP
​对各高校即将毕业的学子来说,毕业设计算是在大学里的最后一个大作业。特别是软件、计算机、电子等相关专业,毕业设计非常讲究实操,往往要求实现一个实用的、可用的、易用的软件系统或手机APP。 不管是软件还是APP,都要通过编程来实现。对于编程类的毕业设计,既有图书馆管理系统这样万年不变的增删改查软件,也
网络安全公开数据集Maple-IDS,恶意流量检测数据集开放使用!
Maple Dataset 枫叶数据集Maple Dataset枫叶数据集由东北林业大学网络安全实验室(https://maple.nefu.edu.cn/lab/)公开发布,是用于入侵检测评估的数据集,其目的在于提升异常基础入侵检测系统(IDS)以及入侵预防系统(IPS)的性能与可靠性。在网络攻击
一个操作系统的设计与实现——第21章 高级可编程中断控制器
21.1 什么是高级可编程中断控制器 我们已经使用过型号为8259A的可编程中断控制器(Programmable Interrupt Controller,PIC)。在单CPU计算机中,中断的处理相对简单:所有的外设和CPU都连接在PIC上即可。然而,如果计算机中不止一个CPU,情况就会变得复杂起来
一个操作系统的设计与实现——第21章 高级可编程中断控制器
SimpleTranslationAIAgent:基于C#与LLM的翻译AI Agent
基于C#与LLM通过简单对话即可实现文件到文件的翻译任务 该软件是MIT协议完全开源免费的,但是调用LLM的API可能需要费用,但是没关系,赛博菩萨硅基流动与智谱AI等都有免费的模型可调了。 这个Translation AI Agent只是一个简单的AI Agent示例应用,可能很多人都不需要它。
SimpleTranslationAIAgent:基于C#与LLM的翻译AI Agent SimpleTranslationAIAgent:基于C#与LLM的翻译AI Agent SimpleTranslationAIAgent:基于C#与LLM的翻译AI Agent
手把手在STM32F103C8T6上构建可扩展可移植的DHT11驱动
前言 如何驱动一个你陌生的传感器呢?别看我,也别在网上死马当活马医!你需要做的,首先是明确你的传感器的名称,在这里,我们想要使用的是DHT11温湿度传感器 可能需要的前置知识 简单的OLED驱动原理 简单的IIC通信知识 基础的查手册能力 相对稳固的C语言基础 不会没关系,我会详细说明的! 一种可能
手把手在STM32F103C8T6上构建可扩展可移植的DHT11驱动 手把手在STM32F103C8T6上构建可扩展可移植的DHT11驱动 手把手在STM32F103C8T6上构建可扩展可移植的DHT11驱动
使用 nuxi build-module 命令构建 Nuxt 模块
title: 使用 nuxi build-module 命令构建 Nuxt 模块 date: 2024/8/31 updated: 2024/8/31 author: cmdragon excerpt: nuxi build-module 命令是构建 Nuxt 模块的核心工具,它将你的模块打包成适合
使用 nuxi build-module 命令构建 Nuxt 模块 使用 nuxi build-module 命令构建 Nuxt 模块
探索一下 Enum 优化
探索一下 Enum 优化 SV.Enums主要是探索如何让 enum 更高效 其中涉及的优化手段并非完全自创 很多内容参考于以下项目 NetEscapades.EnumGenerators FastEnum runtime 主要优化手段 其实主要全是 空间换时间,大量缓存 封装入口方法以及 sour