Magic-Pod / japanese-issue-and-doc

MagicPodに関する機能要望管理を行っていましたが、現在はMagicPod Product Portal https://portal.magicpod.com に機能を移行しました。今後このリポジトリの更新は行われません。
31 stars 5 forks source link

batch-runs API で取得できる test_caseds以下のデータ構造をsucceededとfailedの有無問わず統一してほしい #569

Open gkzz opened 1 year ago

gkzz commented 1 year ago

以下の MagicPod Web API で記載されている batch-runs API で取得できる test_cases 以下のデータ構造をsucceeded と failed の有無問わず統一してほしいです。

https://magic-pod.com/api/v1.0/doc/

定期実行で回している succeeded と failed の件数を追う上で左記2つの値をかんたんに取得したいので、 要望として提出させていただきます。

たとえば、failed がない場合(0件である場合)、以下のように test_cases 以下は failed が 0 と表示されないです。

$ curl -sS -X GET https://app.magicpod.com/api/v1.0/${organization_name}/${project_name}/batch-runs/  \
> -H "Authorization: Token ${token}" | \
> jq -r '.batch_runs[0]'
{
  "batch_run_number": <batch_run_number>,
  "test_setting_name": "<test_setting_name>",
  "status": "succeeded",
  "started_at": "略",
  "finished_at": "略",
  "test_cases": {
    "succeeded": 1,
    "total": 1
  },
  "url": "URL"
}
gkzz commented 1 year ago

ワークアラウンドですが、succeededfailed の有無問わず、値を取得することができました。

url=https://app.magicpod.com/api/v1.0/${organization_name}/${project_name}/batch-runs/

# レスポンスを `res` に格納。
res=$(curl -sS -X GET ${url}  -H "Authorization: Token ${token}" | jq -r '.batch_runs[0]')

# Batch Run の結果を `status` に格納。
status=$(echo ${res} | jq -r .status)

# 以下の場合、`failed_test_cases(failed)` が0であることは確定。
if [ ${status} == "succeeded" ];
then 
  succeeded_test_cases=$(( ${total_test_cases} + 0 ))
  failed_test_cases=0 ; 
fi

# `succeeded_test_cases(succeeded)` が 0 件であり値が取れないかどうか不確定。
# 一方、`failed_test_cases(failed)` は 1件以上あることは確定であることから、 
# 先に `failed_test_cases(failed)` を取得。
# `succeeded_test_cases(succeeded)` は `total` から `failed` を差し引くことで求める。 
if [ ${status} == "failed" ];
then 
  failed_test_cases=$(( $(echo ${res} | jq -r .test_cases.failed) + 0 ))
  succeeded_test_cases=$(( ${total_test_cases} - ${failed_test_cases} )) ;
fi