一、基于 SSH 的遠程執行方案
1. 環境準備流程
- 在目標服務器部署 HttpRunner 運行時環境:
# 遠程服務器執行(需 Golang 1.18+ 和 Python 3.8+)
curl -ksSL https://httprunner.com/script/install.sh | bash
- 配置免密登錄(本地機器執行):
ssh-copy-id user@remote_host
- 遠程執行命令
# 進入項目目錄,執行遠程測試用例
ssh user@remote_host "cd /path/to/project && hrp run testcases/ --html-report"
- 結果文件同步
# 拉取測試報告
scp -r user@remote_host:/path/to/project/reports ./local_reports
二、CI/CD 流水線集成方案
GitLab CI 配置示例
stages:- testhttprunner_remote:image: python:3.9stage: testvariables:HRP_BIN_URL: "https://github.com/httprunner/httprunner/releases/download/v4.3.3/hrp-v4.3.3-linux-amd64.tar.gz"script:- apt-get update && apt-get install -y curl- curl -L $HRP_BIN_URL | tar xz -C /usr/local/bin- hrp run testcases/ --log-level debugartifacts:paths:- reports/
三、HTTP API 調用方案
1. 構建 API 服務層
# api_server.py
from fastapi import FastAPI
import subprocessapp = FastAPI()@app.post("/run-tests")
async def run_tests(config: dict):result = subprocess.run(["hrp", "run", config["test_path"]],capture_output=True,text=True)return {"status": result.returncode,"output": result.stdout,"error": result.stderr}
2. 遠程調用示例
curl -X POST http://api-host:8000/run-tests \-H "Content-Type: application/json" \-d '{"test_path": "testcases/demo_api.yml"}'
四、分布式執行方案
1. 節點配置
# 啟動工作節點(需開放 5557 端口)
hrp worker --host 0.0.0.0 --port 5557
2. 主控節點調用
# 分發測試任務
hrp run testcases/ --distributed \-w "remote_host1:5557,remote_host2:5557"
五、容器化部署方案
1. Dockerfile 構建
FROM python:3.9-slimRUN apt-get update && apt-get install -y curl
RUN curl -ksSL https://httprunner.com/script/install.sh | bashWORKDIR /app
COPY . .ENTRYPOINT ["hrp", "run", "testcases/"]
2. 遠程執行命令
# 構建鏡像
docker build -t httprunner-remote .# 運行容器
docker run -v $(pwd)/reports:/app/reports httprunner-remote
實現建議:
- SSH 方案適合臨時執行場景
- CI/CD 方案適合自動化測試流水線
- 容器化方案保障環境一致性(需結合項目實際)
- 分布式方案適用于大規模性能測試(參考官方文檔)