ここでは、MagicPodのテスト結果をCSVやスプレッドシート、Excel等に出力する方法を紹介します。
目次
MagicPod Web APIを使用する方法
MagicPod Web APIを使用し、レスポンスのJSONデータをCSVに変換する方法です。スクリプトやCI/CDパイプラインに組み込むことで、テスト結果の取得・保存を自動化することもできます。
MagicPod Web APIの仕様は下記を参照してください。
下記のPythonスクリプト例では、エンドポイントGET /api/v1.0/{org}/{project}/batch-runs/を使用して一括実行結果を取得し、CSVファイルとして出力しています。
import requests
import csv
API_TOKEN = "YOUR_API_TOKEN"
ORG = "ORGANIZATION_NAME"
PROJECT = "PROJECT_NAME"
BASE_URL = f"https://app.magicpod.com/api/v1.0/{ORG}/{PROJECT}"
HEADERS = {
"Authorization": f"Token {API_TOKEN}",
"accept": "application/json"
}
# 直近20件の一括実行一覧を取得
resp = requests.get(
f"{BASE_URL}/batch-runs/?count=20",
headers=HEADERS
)
data = resp.json()
batch_runs = data["batch_runs"]
# 各一括実行の詳細を取得してCSVに出力
with open("test_results.csv", "w", newline="", encoding="utf-8-sig") as f:
writer = csv.writer(f)
writer.writerow([
"batch_run_number", "status",
"test_setting_name",
"started_at", "finished_at",
"pattern_name", "device_info",
"test_case_number", "test_case_name",
"data_pattern_number",
"test_case_status", "error_message"
])
for run in batch_runs:
num = run["batch_run_number"]
detail = requests.get(
f"{BASE_URL}/batch-run/{num}/",
headers=HEADERS,
params={"errors": "true"},
).json()
for pattern in detail.get("test_cases", {}).get("details", []):
pat = pattern.get("pattern", {})
pattern_name = pattern.get("pattern_name") or ""
device_info = " / ".join(
filter(None, [pat.get("os"), pat.get("model"), pat.get("browser")])
)
for tc in pattern.get("results", []):
tc_info = tc.get("test_case", {})
tc_number = tc_info.get("number", "")
tc_name = tc_info.get("name", "")
base_row = [
num,
detail.get("status"),
detail.get("test_setting_name"),
detail.get("started_at"),
detail.get("finished_at"),
pattern_name,
device_info,
tc_number,
tc_name,
]
data_patterns = tc.get("data_patterns")
if data_patterns:
for dp in data_patterns:
dp_errors = dp.get("errors") or []
dp_error_msg = "; ".join(
e.get("message") or "" for e in dp_errors
)
writer.writerow(base_row + [
dp.get("number", ""),
dp.get("status", ""),
dp_error_msg,
])
else:
errors = tc.get("errors") or []
error_msg = "; ".join(
e.get("message") or "" for e in errors
)
writer.writerow(base_row + [
"",
tc.get("status"),
error_msg,
])
print("test_results.csv に出力しました")出力されるCSVファイル例
MagicPod MCPサーバーを使用する方法
MagicPod MCPサーバーを導入することで、AIエージェントに対して自然言語で指示を出し、テスト結果を出力してもらう方法です。詳細については、下記ページを参照してください。