SoapUI - Comment utiliser le Transfert de Propriété avec une requête POST
Je commence à évaluer SoapUI que mon test de suite, mais le Transfert de Propriété de la chose est vraiment me retient. J'ai lu beaucoup d'articles à ce sujet, mais je ne pouvais pas trouver un moyen de le faire fonctionner dans mon cas.
Ma source est une requête POST. Ce POSTE demande de me renvoie un JSON. J'ai besoin de passer l'une des valeurs de cette JSON pour le prochain test.
Ma réponse est la suivante:
<Response xmlns="https://localhost/authorize">
<access_token>4a00c67e</access_token>
<refresh_token></refresh_token>
<scope>auth</scope>
<token_type>online</token_type>
</Response>
J'ai besoin d'obtenir le <access_token>
et de passer à l'épreuve suivante en tant que paramètre.
Que dois-je écrire dans la SOURCE et la CIBLE des boîtes à obtenir que cela fonctionne? Pourquoi est-il si compliqué et pourquoi il n'est pas facile à comprendre tutoriel à ce sujet? 🙁
OriginalL'auteur Daniel | 2014-03-06
Vous devez vous connecter pour publier un commentaire.
À ajouter à ce que Abhishek dit. Si vous avez seulement besoin de l'access_token vous utilisez le XPath suivante:
Intéressant, que je ne connaissais pas. Merci pour l'info.
OriginalL'auteur Juicebox
Dans le transfert de la propriété étape, vous la source serait l'étape de l'endroit où vous voulez obtenir les données, dans la propriété de la source de sélectionner la réponse.
Dans l'espace ci-dessous source mettre
//access_token
cela va extraire la valeur de l'access_token et de le rendre disponible pour le transfert. si vous ne fournissez pas l'expression xpath, soapUI fournira l'ensemble de la réponse xml pour le transfert.Votre cible serait l'étape où vous souhaitez définir l'extrait de la propriété,
<access_token>
dans votre cas. La propriété serait le bien pour lequel vous souhaitez définir la valeur extraite.Important placez votre transfert de propriété de l'étape après la source de l'étape. Exécution dans soapUI est de haut en bas et si le transfert de propriété est placé à l'avant de la source de l'étape, vous n'aurez pas toute la valeur de transfert.
Pour vous donner un exemple
Dans cet exemple, j'ai une demande de test appelé
SourceRequest
dont la réponse sera transmise à une suite de test niveau de la propriété appelé aa.Comme vous pouvez le voir ici. J'ai donné mon transfert de propriété d'un nom de
PropertyTransferName
(il peut être tout ce que vous voulez). Dans la source, je l'ai mentionné ma source de la demande et de la propriété en tant que Réponse. Comme je vais enregistrer l'ensemble de la réponse dans une suite de tests au niveau de la propriété, j'ai parlé de mon test de suite que la cible et le nom de la propriété à laquelle je veux transférer.Dans ce que je pourrais avoir analysé la réponse de ma source, propriété en donnant un xpath comme vous avez besoin de le faire.
Espère que cette aide.
<access_token>
, pas toute la réponse. Savez-vous comment faire cela?yep, comme je l'ai mentionné dans mon post...dans l'espace sous la source et au-dessus de cible //access_token
Je ne pouvais pas le faire fonctionner avec juste //access_token alors que cela devrait fonctionner selon avec XPath. Il a travaillé quand j'ai utilisé les espaces de noms.
essayez //*:access_token qui allons le faire fonctionner sans préciser les espaces de noms.
OriginalL'auteur Abhishek Asthana
Pour la "Source" x-chemin d'accès:
sélectionnez "Transfert de contenu de texte"
sélectionnez "Utiliser XQuery"
Cela devrait extraire le contenu du texte à partir de votre access_token nœud.
OriginalL'auteur user4971614
La façon la plus simple de le faire, pour moi, a l'aide de la Propriété": Réponse" et "Chemin d'accès de la Langue: JSONPath".
Puis pour la source que j'ai utilisé tout simplement "$.access_token"
Pour la Cible, j'ai défini une Propriété appelée access_token dans le Projet.
OriginalL'auteur Daniel
Le transfert de propriété, il est important de savoir si le type de réponse (à partir d'où vous êtes le transfert de valeur) est json ou xml. Dans le cas où il est json, comme dans la capture d'écran ci-dessous:
assurez-vous de définir la propriété "ResponseAsXml" dans le transfert de la propriété de la fenêtre comme ci-dessous:
d'autre "Réponse" va faire le nécessaire.
OriginalL'auteur Hina