ReportPortal是否有API用于创建/编辑仪表盘及部件以实现自动化?
ReportPortal 仪表盘批量创建的自动化方案
ReportPortal 完全支持通过 REST API 实现仪表盘的批量自动化创建,不用再手动重复操作相似配置的仪表盘。以下是具体实现思路和可行方案:
核心实现方式:利用 REST API 批量生成
ReportPortal 的 REST API 包含完整的仪表盘管理端点,只是官网文档可能未重点提及。具体步骤如下:
- 创建模板仪表盘:先通过 UI 配置好一个符合需求的基础仪表盘(设置好所有通用组件,只保留需要修改的过滤值未配置)。
- 导出模板配置:调用
GET /{projectName}/dashboard/{dashboardId}接口,获取该模板仪表盘的完整 JSON 配置。 - 批量修改配置:复制模板配置,针对每个目标配置值,修改仪表盘名称和对应的过滤参数(比如环境标签、测试配置项等)。
- 调用创建接口:循环调用
POST /{projectName}/dashboard接口,将修改后的 JSON 作为请求体发送,即可批量生成仪表盘。
认证说明
所有 API 请求需要在请求头中携带认证 Token:
Authorization: Bearer {你的API Token}
Token 可在 ReportPortal 个人设置的「API Keys」选项中生成。
简单脚本示例(Python)
import requests # 替换为你的实例信息 BASE_URL = "https://your-reportportal-domain/api/v1" API_TOKEN = "your-generated-api-token" PROJECT_NAME = "your-target-project" # 替换为你创建的模板仪表盘ID TEMPLATE_DASH_ID = "template-dashboard-id" # 需要批量生成的配置值列表 TARGET_CONFIGS = ["Config-1", "Config-2", "Config-3"] headers = { "Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json" } # 获取模板仪表盘配置 template_res = requests.get(f"{BASE_URL}/{PROJECT_NAME}/dashboard/{TEMPLATE_DASH_ID}", headers=headers) template_config = template_res.json() for config in TARGET_CONFIGS: # 复制模板并修改关键参数 new_dash = template_config.copy() new_dash["name"] = f"测试仪表盘 - {config}" # 根据实际配置结构修改过滤条件,这里仅为示例 for widget in new_dash["widgets"]: if "filter" in widget: # 替换目标过滤字段的值 for condition in widget["filter"]["conditions"]: if condition["filter_field"] == "test_config": condition["filter_value"] = config # 创建新仪表盘 create_res = requests.post(f"{BASE_URL}/{PROJECT_NAME}/dashboard", json=new_dash, headers=headers) if create_res.status_code == 201: print(f"成功创建仪表盘:{config}") else: print(f"创建失败 [{config}]:{create_res.text}")
其他可行方案
- 模板复用:如果你的 ReportPortal 版本支持「共享仪表盘模板」,可以先保存模板,再基于模板快速创建新仪表盘时仅修改过滤值,适合少量配置的场景。
- 社区参考:你可以在项目的 GitHub Issues 或讨论区搜索「dashboard automation」,能找到其他开发者分享的自动化脚本案例。
官方规划
目前 REST API 已经覆盖仪表盘的全生命周期管理,官方后续会持续完善 API 文档和功能覆盖,你可以关注项目仓库的更新日志或提交需求反馈。
内容的提问来源于stack exchange,提问作者John Y.
相关产品推荐
相关产品推荐

