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

如何通过Azure Pipeline部署API测试镜像到Kubernetes集群并执行测试

在Kubernetes中运行API测试用例的实现方案

是的,你需要基于测试项目的Docker镜像创建独立的运行单元,更推荐用Kubernetes Job而非普通Pod——因为测试是一次性任务,Job专门用于处理这类执行完成后即可终止的工作负载,比普通Pod更适配场景(普通Pod默认会在任务结束后重启,不符合测试任务的需求)。

以下是Azure Pipeline的具体实现流程:

  • 构建并推送测试镜像
    在Pipeline中添加Docker构建任务,将测试项目打包成镜像并推送到镜像仓库(比如Azure Container Registry),示例命令:

    docker build -t your-acr.azurecr.io/test-project:$(Build.BuildId) .
    docker push your-acr.azurecr.io/test-project:$(Build.BuildId)
    
  • 编写测试Job的YAML配置
    创建test-job.yaml文件,定义测试任务的运行参数:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: api-test-job
    spec:
      template:
        spec:
          containers:
          - name: api-test
            image: your-acr.azurecr.io/test-project:$(Build.BuildId)
            env:
            - name: SERVICE_ENDPOINT
              value: "http://rest-service:port" # 优先用REST服务对应的K8s Service名称,避免硬编码Pod IP
            command: ["npm", "test"] # 替换为你的测试启动命令,比如pytest、mvn test等
          restartPolicy: Never
      backoffLimit: 2 # 任务失败后重试次数
    
  • Pipeline中集成K8s部署与结果验证
    在Azure Pipeline中添加Kubernetes相关任务,完成测试执行与结果判断:

    1. 用kubectl apply -f test-job.yaml部署测试Job
    2. 等待任务完成:kubectl wait --for=condition=complete job/api-test-job --timeout=300s
    3. 拉取测试日志:kubectl logs job/api-test-job,根据日志中的测试结果标记(如失败用例)决定Pipeline是否失败
  • 清理测试资源
    测试完成后,删除测试Job:kubectl delete job/api-test-job,避免集群残留无用资源

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:10:06