2017-05-25 11 views
1

私は、テスト実行手順の一括更新を行うつもりです。テストセットフォルダ - >テストセットインスタンス - >テストランを作成しました。私は、URLでJSON を掲載することにより、テスト実行を更新することができALM APIを使用したHP ALMでの一括更新の実行手順

https://qcurl/qcbin/rest/domains/DOMAIN_NAME/projects/PROJECT_NAME/runs/run_id 

{"Fields":[{"Name":"status","values":[{"value":"Passed"}]}]} 

これは

今すぐ作成するか、または複数のエンティティを更新するには入れAPI

ポストによれば、正常に動作します同じエンティティ タイプでは、要求本体にデータを渡します。 に準拠したXML文字列をエンティティコレクションスキーマまたは同じ 形式のJSON文字列に渡します。これは、コレクションのGET操作によって返されます。

エンティティを作成するには、HTTP POST呼び出しを使用します。エンティティを更新するには、 HTTP PUT呼び出しを使用します。これらのコンテンツタイプヘッダの

パス1:; コンテンツタイプ= コンテンツタイプ=「タイプ=コレクションアプリケーション/ xml」で「アプリケーション/ JSON;タイプ=コレクション」

コンテンツタイプを使用しますあなたは今、私は

{ 
"Id": "qccore.method-not-allowed", 
"Title": "Method not allowed", 
"ExceptionProperties": null, 
"StackTrace": null 
} 

とエラーが出るたび、一括更新のためのJSONを掲示する多くの組み合わせを試してみました

を送信しているデータと一致するヘッダJSONは私はそれらの

http://ALM_URI/runs/<run_id>/run-steps 


{ 
"entities": [{ 
     "Fields": [ 
      { 
       "Name": "id", 
       "values": [{ 
         "value": "1219" 
        } 
       ] 
      }, { 
       "Name": "status", 
       "values": [{ 
         "value": "Failed" 
        } 
       ] 
      } 
     ] 
    }, { 
     "Fields": [ 
      { 
       "Name": "id", 
       "values": [{ 
         "value": "1220" 
        } 
       ] 
      }, { 
       "Name": "status", 
       "values": [{ 
         "value": "Passed" 
        } 
       ] 
      } 
     ] 
    } 

] 

}

と、この1と同様

{ 
"data": [ 
    { 
     "Fields": [ 
      { 
       "Name": "id", 
       "values": [ 
        { 
         "value": "1215" 
        } 
       ] 
      }, 
      { 
       "Name": "status", 
       "values": [ 
        { 
         "value": "N/A" 
        } 
       ] 
      } 
     ] 

    }, 
    { 
     "Fields": [ 
      { 
       "Name": "id", 
       "values": [ 
        { 
         "value": "1216" 
        } 
       ] 
      }, 
      { 
       "Name": "status", 
       "values": [ 
        { 
         "value": "N/A" 
        } 
       ] 
      } 
     ] 

    } 
    ] 

}

これまでのところ、どれもが仕事であるように思わないURLに掲載してみました。誰かがALM APIリソースに対して一括操作を行った場合は、投稿要求が間違っている箇所を指摘することができます。 FYIこれはPUTリクエストです。事前にありがとう

答えて

0

@ Macintosh_89:操作は可能であるべきです(単独で)。どのようなあなたのケースで逃していること(URLで)実行の手順です:

POST/PUT/GET/DELETE https://qcurl/qcbin/rest/domains/DOMAIN_NAME/projects/PROJECT_NAME/runs/run_id/run-steps 

あなたには、いくつかの既存の実行手順を取得したい場合は、あなたも、前の最後には、実行手順-IDを与えることができますライン。

REST API(POST-PUT-GET-DELETE)による実行ステップの変更は、QC 11.50よりも高いバージョンで可能になるはずですので、QC RESTライブラリを参照してください。

複数の実行ステップについて一括クエリを送信できる場合は、解決策も探していますが、これまではすべての実行ステップを1つずつレポートするforループを使用しています。

実行手順を1つだけ送信してから、次の手順をQCに送信してください。 QCに1回の撮影で複数のリクエストを送信できる場合は、教えてください。

上記の方法は、私のケースでは安定して動作していますが、それほど時間がかかりません。

これがあなたの質問を明確にすることを願っています!チャオと楽しい一日を。

HP ALM 12.53では一度に複数のインスタンスを更新することができました。下のリンクを見て:私は使用しています11.52のような以前のバージョンで

http://alm-help.saas.hpe.com/en/12.53/api_refs/REST/Update_Multiple_Instances.htm

、複数のエンティティ上で一括操作を送信することも可能ですが、としてヘッダにコンテンツタイプを追加することを忘れないでくださいあなたは言及しました。

投稿、入力同じエンティティ タイプの複数のエンティティを作成または更新するには、そのデータを要求本体に渡します。 に準拠したXML文字列をエンティティコレクションスキーマまたは同じ 形式のJSON文字列に渡します。これは、コレクションのGET操作によって返されます。

エンティティを作成するには、HTTP POST呼び出しを使用します。エンティティを更新するには、 HTTP PUT呼び出しを使用します。これらのコンテンツタイプヘッダの

パス1:;「?アプリケーション/ JSONタイプ=コレクション」 コンテンツタイプ=「アプリケーション/ xmlのタイプ=コレクション」 コンテンツタイプ=

コンテンツタイプを使用します送信しているデータと一致するヘッダー。

最後に、実行ステップについては、この操作は許可されていないと思います。実行ステップは、1つのエンティティの副題と考えられる可能性があるためです。もし私が11.52のために大量の方法を見つけたら、あなたに知らせてくれます;)

私はちょっとお手伝いしました。 Ciao

+0

@Macro smdm、回答ありがとうございます。あなたが正しいと指摘したように、操作が不可能であることがわかりました。それは、1つのエンティティのサブエンティティとしてみなされているからです。私は一括してポストするのではなく、一括更新を行うことが可能なオプションを持っていたいと思います。 –

+0

@ Macintosh_89:同じことをやりたいのですが、xmlが実行時に取得されたものであっても、エンティティからの通常のものと同じように見えるので、バルクと同じに置く/ポストするのはそれほど複雑ではないでしょうこれはこれまで可能ではなかった;)今後のバージョンのQCで可能かもしれない。私は、各実行ステップを送信するためにステップバイステップを実装しました(もちろん、要求が氾濫する素晴らしいソリューションではありません)。良い一日を! –

関連する問題