2. 环境搭建:Go语言环境安装、RESTGo框架安装、依赖管理、第一个压测脚本运行

本章是实战的起点。你将完成从零搭建一套完整的RESTGo压测环境,包括Go语言运行时、RESTGo框架、依赖管理工具,并成功运行第一个压测脚本。环境一致性是后续所有契约校验和性能分析的基础,请严格按照以下步骤操作。

2.1 Go语言环境安装

RESTGo基于Go 1.21+开发,推荐使用Go 1.22 LTS版本。安装前请确认操作系统架构(amd64/arm64)。

操作系统安装方式验证命令
macOS (Intel/Apple Silicon)brew install go@1.22go version
Ubuntu/Debiansudo snap install go --classicgo version
Windows下载MSI安装包,勾选"添加到PATH"go version
手动安装(通用)下载tar.gz → 解压 → 设置GOROOT和GOPATHgo version
环境变量检查:安装后执行 go env GOPATH 确认路径正确。建议将 $GOPATH/bin 加入系统PATH,后续安装的RESTGo CLI工具将自动可用。

2.2 RESTGo框架安装

RESTGo框架以Go模块形式发布,通过go install命令安装CLI工具和核心库。

# 安装RESTGo CLI工具(包含压测引擎、契约校验器、报告生成器)
go install github.com/restgo/restgo-cli@latest

# 验证安装
restgo version

# 预期输出示例
# RESTGo CLI v2.3.0 (build 2025-03-15)
版本锁定:生产环境建议使用 @v2.3.0 等具体版本号,避免因最新版API变更导致脚本不兼容。本课程所有示例基于v2.3.0。

2.3 依赖管理:Go Modules与RESTGo项目初始化

RESTGo项目使用Go Modules管理依赖。每个压测项目都是一个独立的Go模块。

# 创建项目目录
mkdir restgo-demo && cd restgo-demo

# 初始化Go模块
go mod init restgo-demo

# 添加RESTGo核心库依赖
go get github.com/restgo/restgo-core@latest

# 查看依赖树
go mod graph

依赖管理的关键文件说明:

文件/目录作用是否提交到Git
go.mod模块定义和依赖声明是
go.sum依赖哈希校验文件是
vendor/依赖本地缓存(可选)否(推荐使用代理)
restgo.yamlRESTGo项目配置文件是
国内加速:如果遇到依赖下载超时,设置Go代理:go env -w GOPROXY=https://goproxy.cn,direct

2.4 第一个压测脚本:结构解析与运行

RESTGo压测脚本采用声明式YAML + Go模板语法。下面是一个完整的压测脚本,对/api/health端点执行100次请求,并校验响应状态码和响应时间。

# health_check.yaml
apiVersion: restgo.io/v1
kind: LoadTest
metadata:
  name: health-check
spec:
  target:
    baseURL: "https://api.example.com"
    timeout: 5s
  plan:
    duration: 10s
    concurrency: 10
    rampUp: 2s
  steps:
    - name: check-health
      request:
        method: GET
        path: /api/health
        headers:
          Accept: application/json
      validate:
        statusCode: 200
        body:
          - path: $.status
            value: "ok"
        performance:
          maxLatency: 500ms
          p99Latency: 300ms

运行脚本:

# 执行压测
restgo run health_check.yaml --report report.html

# 控制台实时输出示例
# [RESTGo] 2025-03-20 14:30:01 Starting load test: health-check
# [RESTGo] 2025-03-20 14:30:11 Completed: 100/100 requests
# [RESTGo] 2025-03-20 14:30:11 Avg latency: 45ms | P99: 120ms | Error rate: 0%
# [RESTGo] 2025-03-20 14:30:11 Report saved: report.html
首次运行建议:先使用 --dry-run 参数验证脚本语法:restgo run health_check.yaml --dry-run。该模式不会发送真实请求,只检查配置合法性。

2.5 环境搭建全流程架构

下图展示了从操作系统到压测脚本运行的整体依赖链路和工具链关系。

RESTGo 压测环境搭建全流程 操作系统 (macOS/Linux/Win) Go 1.22 运行时 Go Modules + go.mod / go.sum RESTGo CLI + restgo-core 库 YAML 压测脚本 → 运行 → HTML报告

2.6 常见问题与避坑指南

  • Go版本过低:RESTGo使用泛型和slog包,要求Go 1.21+。运行go version确认,低于1.21请升级。
  • CLI命令找不到:检查$GOPATH/bin是否在PATH中。执行echo $PATH | grep -o 'go/bin'确认。
  • 依赖下载失败:先设置代理go env -w GOPROXY=https://goproxy.cn,direct,再重试go get。
  • YAML缩进错误:RESTGo对缩进敏感,使用2空格缩进,禁止使用Tab。推荐VS Code + YAML插件。
  • 端口被占用:如果本地启动Mock服务,确保端口未被占用。lsof -i :8080检查。
环境验证清单:完成安装后,依次执行以下命令确认所有组件就绪:
go version → restgo version → go env GOPATH → restgo run health_check.yaml --dry-run