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