2017-05-25 5 views
1

Mon intention est de mettre à jour en bloc les étapes d'exécution d'un test. J'ai créé un dossier de test -> test set instance-> test. Je peux mettre à jour un essai en affichant JSON avec urlÉtapes d'exécution de mise à jour en bloc dans HP ALM à l'aide de l'API ALM

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

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

Cela fonctionne bien

maintenant selon l'API

Post, mettre Pour créer ou mettre à jour plus d'une entité du même entité tapez, transmettez les données dans le corps de la demande. Passez une chaîne XML conforme à avec le schéma de collection d'entités ou une chaîne JSON du même format renvoyée par une opération GET sur la collection.

Pour créer des entités, utilisez un appel HTTP POST. Pour mettre à jour des entités, utilisez un appel HTTP PUT .

passe un de ces en-têtes de type de contenu: -type content = "application/xml; type = collection" -type content = "application/json; type = collection"

Utiliser le type de contenu tête qui correspond aux données que vous envoyez

maintenant j'ai essayé de nombreuses combinaisons d'affichage de la mise à jour pour JSON en vrac, à chaque fois que je reçois une erreur

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

JSON j'ai essayé de poster à l'URL

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" 
        } 
       ] 
      } 
     ] 
    } 

] 

}

et celui-ci ainsi

{ 
"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" 
        } 
       ] 
      } 
     ] 

    } 
    ] 

}

Jusqu'à présent, aucun d'entre eux semble être le travail. Si quelqu'un a effectué des opérations en masse sur des ressources de l'API ALM, pouvez-vous indiquer où se trouve le problème de la demande de publication? FYI c'est une demande PUT. Merci d'avance

Répondre

0

@ Macintosh_89: l'opération doit être possible (singulièrement). Ce qui manque dans votre cas est la gestion des étapes (dans l'URL):

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

Si vous souhaitez obtenir des étapes d'exécution existantes, vous pouvez même donner à la gestion des étapes-ID à la fin de la précédente ligne.

La modification des étapes par l'API REST (POST-PUT-GET-DELETE) devrait être possible pour les versions supérieures à QC 11.50, veuillez donc consulter votre bibliothèque QC REST. Pour répondre à votre question si vous pouvez envoyer une requête groupée pour plusieurs étapes, je cherche également une solution, mais jusqu'à présent, j'utilise une boucle for qui rapporte toutes les étapes une par une.

Veuillez donc essayer avant d'envoyer un seul dict-pas d'étape et ensuite envoyer les étapes suivantes au QC. Dans le cas où vous serez en mesure d'envoyer au QC une demande multiple dans un tournage, que s'il vous plaît faites le moi savoir.Sinon, la méthode suggérée ci-dessus est stable dans mon cas et cela ne prend pas beaucoup de temps.

Espérons que cela clarifiera votre requête! Ciao et passe une bonne journée. J'ai jeté un coup d'oeil et pour le HP ALM 12.53 il est possible de mettre à jour plusieurs instances à la fois. Jetez un oeil sur le lien ci-dessous:

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

Dans la version précédente comme 11,52 que j'utilise, il est toujours possible d'envoyer des opérations en vrac sur plusieurs entités, mais rappelez-vous d'ajouter dans les en-têtes du type de contenu en vous avez mentionné. Publier, Mettre Pour mettre à jour ou mettre à jour plusieurs entités de même entité de type , transmettez les données dans le corps de la demande. Passez une chaîne XML conforme à avec le schéma de collection d'entités ou une chaîne JSON du même format renvoyée par une opération GET sur la collection.

Pour créer des entités, utilisez un appel HTTP POST. Pour mettre à jour des entités, utilisez un appel HTTP PUT .

passe un de ces en-têtes de type de contenu: content-type = "application/xml, type = collection" type de contenu = "application/JSON type = collection?"

Utilisez le type de contenu en-tête qui correspond aux données que vous envoyez. Dernier point, mais non des moindres pour les étapes d'exécution Je suppose que cette opération n'est pas autorisée. Puisque les étapes d'exécution sont peut-être considérées comme des subentités d'une entité. Si j'ai trouvé une voie en vrac pour le 11.52 alors je vous le ferai savoir;)

Passez une bonne journée et j'espère que je vous ai aidé un peu! Ciao

+0

@Macro smdm, merci pour la réponse J'ai découvert que l'opération n'est pas possible car vous avez raison de le considérer comme une sub-entité d'une entité. Je voudrais avoir une option où il est possible de faire une mise à jour en masse plutôt que de poster un par un. –

+0

@ Macintosh_89: Je voudrais faire la même chose, car même le xml revenant d'un get-run-steps ressemble à un xml normal d'une entité, donc ce ne serait pas si compliqué à mettre/poster comme un bulk sur une subentité, mais comme dit cela n'est pas possible jusqu'à présent;) Peut-être que dans les prochaines versions de QC sera possible. J'ai mis en place étape par étape pour envoyer chaque étape d'exécution (mais bien sûr ce n'est pas une bonne solution inondant les demandes). Bonne journée! –