gpt4 book ai didi

jenkins动态切换环境

转载 作者:撒哈拉 更新时间:2024-08-31 13:59:04 57 4
gpt4 key购买 nike

一.代码层实现动态切换

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.开始构建 。

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

  。

最后此篇关于jenkins动态切换环境的文章就讲到这里了,如果你想了解更多关于jenkins动态切换环境的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com