SDK 参考
构建管理

构建管理

构建(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)获取构建日志