构建管理
构建(Build)是测试配置的模板,包含应用、脚本、目标设备、执行参数等。触发构建会创建一个 Job。
列出构建
from pandatest import PandaTest
client = PandaTest(api_key="pk_xxx", base_url="https://your-domain.com")
scope = client.project(2)
result = scope.builds.list(page=1, page_size=20)
for build in result.items:
print(f"{build.id}: {build.name} ({build.status})")获取构建详情
build = scope.builds.get("build-14-abc123")
print(f"{build.name} - {build.status}")
print(f"App: {build.app_name}")
print(f"Total jobs: {build.total_jobs}")创建构建
build = scope.builds.create(
name="Android 全量回归",
app=1,
test_script=3,
description="每日回归测试",
target_devices=[
{"device_id": 1},
{"device_id": 2},
{"device_id": 3},
],
device_filter={"platform": "android"},
execution_config={
"parallel": True,
"concurrency": 3,
"timeout": 3600,
"task_timeout": 1800,
"execution_mode": "replicate",
"framework_options": {
"reruns": 2,
"marker_expression": "not slow",
},
},
environment_vars={"ENV": "staging", "DEBUG": "true"},
)
print(f"Created: {build.id}")触发构建
result = scope.builds.trigger(
"build-14-abc123",
timeout=1800,
task_timeout=600,
parallel=True,
concurrency=3,
environment_vars={"ENV": "production"},
)
print(f"Job ID: {result.job_id}")
print(f"Status: {result.status}")如果需要触发并等待完成,CLI 推荐使用 pt run --build <id> --wait,SDK 使用 scope.jobs.wait(job_id)。
删除构建
scope.builds.delete("build-14-abc123")更多 SDK 方法
以下方法仅在 SDK 中可用:
| 方法 | 说明 |
|---|---|
scope.builds.update(id, **fields) | 更新构建配置 |
scope.builds.duplicate(id) | 复制构建 |
scope.builds.toggle_pin(id) | 切换置顶状态 |
scope.builds.recent_jobs(id, limit=10) | 获取最近的 Job 列表 |
scope.builds.trigger_image_build(id) | 触发 Runner 镜像构建 |
scope.builds.image_status(id) | 获取 Runner 镜像状态 |
scope.builds.logs(id, tail=500) | 获取构建日志 |