Dans le cadre de la vérification dans Robot Framework, j'ai les données suivantes (stockées en tant que $ {resp}) comme réponse à la requête:
${json_resp} = Set Variable ${resp.json()} ${numberOfElements} set variable ${json_resp['numberOfElements']} should be equal as numbers ${numberOfElements} 2
À partir du json ci-dessus, je souhaite extraire l'id dont accId est 123456789. Comment puis-je utiliser les paramètres de condition pour rechercher une valeur en utilisant toute autre valeur du json. J'ai implémenté ce code pour vérifier numberFfElemets
{ "numberOfElements": 2, "data": [ { "id": "1", "accId": "123456789", "total": 13, "isEnabled": false }, { "id": "2", "accId": "987654321", "total": 52, "isEnabled": false } ], "last": true }
3 Réponses :
La simple étape consiste à convertir votre json en dictionnaire et dictionnaire de pensée en boucle.
${json_resp} = Set Variable ${resp.json()} ${json}= evaluate json.loads('''${json_resp}''') json :FOR ${i} IN @{json['data']} \ log to Console ${i['accId']}
Vous devriez alors pouvoir accéder à accId
.
p>
J'ai essayé cette méthode, j'obtiens cette erreur car la réponse json contient des guillemets simples a échoué: JSONDecodeError: Le nom de la propriété attend entre guillemets doubles: ligne 1 colonne 2 (char 1)
quelle est votre demande réelle?
Vous avez la solution suivante à ce problème et cela fonctionne pour moi:
Get UUID With Id [Arguments] ${content_body} ${uuid}= Get From Dictionary ${content_body} uuid [Return] ${uuid}
${uuid}= set variable :FOR ${i} IN @{json_resp['data']} \ ${uuid}= run keyword if '${i['id']}'=='123456789' get uuid with id ${i} log to console ${uuid}
Code corrigé
'Quitter pour la boucle' aide à ne pas réécrire $ {id} en aucun
*** Test Cases *** Test1 :FOR ${i} IN @{json_resp()['data']} \ ${id}= run keyword if '${i['accId']}'=='123456789' Get Id ${i} \ run keyword if '${i['accId']}'=='123456789' Exit For Loop log to console ${id} *** Keywords *** Get Id [Arguments] ${content_body} ${idf}= Get From Dictionary ${content_body} id [Return] ${idf}
Qu'avez-vous déjà essayé et qu'avez-vous observé?
comme mentionné par @ A.Kootstra, les gens sont prêts à aider dans Stack Overflow tant que vous montrez ce que vous avez essayé et comment vous n'avez pas réussi à atteindre votre objectif. Cela aide à comprendre ce que vous essayez vraiment de faire.
Modifié pour le que j'ai essayé .... Veuillez vérifier maintenant
Cet exemple de code fonctionne-t-il comme prévu pour vous?
Au départ, j'ai utilisé cette approche pour vérifier le numberOfElements. Mais maintenant, je veux vérifier l'identifiant lié à un accountId spécifique. C'est pourquoi j'ai besoin de votre aide.
J'ai utilisé "$ .. [? (@. AccId == '123456789')]. Id" pour vérifier la même chose en utilisant jmeter. Mais pas capable de l'implémenter dans le cadre du robot