You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Jenkins任务在测试阶段通过指定代理传输流量?

在Jenkins测试阶段配置全局代理

当然可以做到!在Jenkins的Groovy脚本里,你只需要在执行npm run test前设置好标准的代理环境变量,就能让测试/扫描阶段的所有流量都通过指定代理传输。大多数网络工具(包括npm、各类前端测试框架、扫描工具)都会自动读取这些环境变量,无需额外修改测试代码。

具体实现方式

最规范的做法是用Jenkins的withEnv块来为测试命令注入代理环境变量,这样只会影响当前测试步骤的流量,不会污染其他阶段的环境:

stage('Test/Scan') {
    steps {
        script {
            // 替换成你的代理地址和端口
            def proxyServer = "http://your-proxy-host:8080"
            // 排除不需要走代理的地址(比如本地服务、内部域名)
            def noProxyList = "localhost,127.0.0.1,your-internal-domain.com"
            
            withEnv([
                "HTTP_PROXY=${proxyServer}",
                "HTTPS_PROXY=${proxyServer}",
                "http_proxy=${proxyServer}",  // 兼容只认小写变量的工具
                "https_proxy=${proxyServer}",
                "NO_PROXY=${noProxyList}",
                "no_proxy=${noProxyList}"
            ]) {
                // 这里执行的测试命令会自动走代理
                sh "npm run test"
            }
        }
    }
}

关键注意事项

  • 代理认证处理:如果你的代理需要用户名密码认证,可以把代理地址写成http://username:password@proxy-host:port,但千万不要硬编码密码!建议用Jenkins凭证管理存储认证信息,比如:
    def proxyCreds = credentials('proxy-authentication-id')
    def proxyServer = "http://${proxyCreds.username}:${proxyCreds.password}@your-proxy-host:8080"
    
  • 代理访问权限:确保Jenkins构建节点的IP地址被允许访问代理服务器,否则会出现连接超时或拒绝访问的问题。
  • 特殊工具适配:少数自定义测试脚本或小众工具可能不识别标准代理环境变量,这时候你需要查看工具的文档,在其配置文件中单独设置代理参数,但这种情况比较少见。

内容的提问来源于stack exchange,提问作者dcblack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:51:32