首页 > 极客资料 博客日记
jenkins动态切换环境
2024-08-31 12:30:02极客资料围观32次
文章jenkins动态切换环境分享给大家,欢迎收藏极客之家,专注分享技术知识
一.代码层实现动态切换
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.开始构建
在构建选项中可以看到我们设置的环境选项以及描述,选择一个环境后开始构建即可。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”