从 Json 列表中获取值然后验证列表中出现的值
Get value from Json list then validate the value appear in list
我想检查值 "train-again-v1-16k"
出现在任何 "model_name"
中。
我能够得到响应,然后我想通过使用 Dictionary Should Contain Value
.
来确保列表包含值
测试用例失败:
AttributeError: 'list' object has no attribute 'values'
请告知检查列表中值的正确语法是什么。
*** Settings ***
Library Browser
Library String
Library RequestsLibrary
Library Collections
Library RPA.JSON
*** Test Cases ***
001-Models-Deploy
Create Session mysession ${SRS-API-Host}
${response}= GET ${SRS-API-Host}/models_list
${models}= Get values from JSON ${response.json()} $..model_name
Log To Console models is${models}
Dictionary Should Contain Value ${models} 'train-again-v1-16k'
获取响应:
{
"message": "",
"status": "ok",
"valid_model_list": [
{
"corpus_list": [
"test1"
],
"display_name": "16000samplerate-60train-40test-v1-16k",
"language": "NO INFO",
"lexicon": "001_Lex_one_using_001_wav_stm_only",
"model_name": "16000samplerate-60train-40test-v1-16k",
"status": true,
"train_duration": "1.0 Hrs"
},
{
"corpus_list": [
"Corpus3397"
],
"display_name": "train-again-v1-16k",
"language": "NO INFO",
"lexicon": "NTU",
"model_name": "train-again-v1-16k",
"status": true,
"train_duration": "1.33 Hrs"
}
]
}
通过使用Should Contain
,从Get values from JSON
获得的列表,断言特定值。
*** Settings ***
Library Browser
Library String
Library RequestsLibrary
Library Collections
Library RPA.JSON
Resource ../Resources/BrowserFunctions.robot
Suite Setup Start New Browser
Suite Teardown Close Browser
*** Test Cases ***
001-Models-Deploy
#Verify model appear at SRS API Model List
Create Session mysession ${SRS-API-Host}
${response}= GET ${SRS-API-Host}/models_list
${models}= Get values from JSON ${response.json()} $..model_name
Log To Console models is${models}
Should Contain ${models} sourcemodel8k8020-v1-8k
Get values from JSON
returns 一个包含所有匹配值的列表,而 Dictionary Should Contain Value
与字典对象一起工作并期望它。
只需更改用于断言某个值存在于适用于列表的内容中的关键字 - List Should Contain Value
,或只是 Should Contain
:
List Should Contain Value ${models} train-again-v1-16k
我想检查值 "train-again-v1-16k"
出现在任何 "model_name"
中。
我能够得到响应,然后我想通过使用 Dictionary Should Contain Value
.
测试用例失败:
AttributeError: 'list' object has no attribute 'values'
请告知检查列表中值的正确语法是什么。
*** Settings ***
Library Browser
Library String
Library RequestsLibrary
Library Collections
Library RPA.JSON
*** Test Cases ***
001-Models-Deploy
Create Session mysession ${SRS-API-Host}
${response}= GET ${SRS-API-Host}/models_list
${models}= Get values from JSON ${response.json()} $..model_name
Log To Console models is${models}
Dictionary Should Contain Value ${models} 'train-again-v1-16k'
获取响应:
{
"message": "",
"status": "ok",
"valid_model_list": [
{
"corpus_list": [
"test1"
],
"display_name": "16000samplerate-60train-40test-v1-16k",
"language": "NO INFO",
"lexicon": "001_Lex_one_using_001_wav_stm_only",
"model_name": "16000samplerate-60train-40test-v1-16k",
"status": true,
"train_duration": "1.0 Hrs"
},
{
"corpus_list": [
"Corpus3397"
],
"display_name": "train-again-v1-16k",
"language": "NO INFO",
"lexicon": "NTU",
"model_name": "train-again-v1-16k",
"status": true,
"train_duration": "1.33 Hrs"
}
]
}
通过使用Should Contain
,从Get values from JSON
获得的列表,断言特定值。
*** Settings ***
Library Browser
Library String
Library RequestsLibrary
Library Collections
Library RPA.JSON
Resource ../Resources/BrowserFunctions.robot
Suite Setup Start New Browser
Suite Teardown Close Browser
*** Test Cases ***
001-Models-Deploy
#Verify model appear at SRS API Model List
Create Session mysession ${SRS-API-Host}
${response}= GET ${SRS-API-Host}/models_list
${models}= Get values from JSON ${response.json()} $..model_name
Log To Console models is${models}
Should Contain ${models} sourcemodel8k8020-v1-8k
Get values from JSON
returns 一个包含所有匹配值的列表,而 Dictionary Should Contain Value
与字典对象一起工作并期望它。
只需更改用于断言某个值存在于适用于列表的内容中的关键字 - List Should Contain Value
,或只是 Should Contain
:
List Should Contain Value ${models} train-again-v1-16k