Pytest - получить один элемент из нескольких возвращаемых значений - PullRequest
0 голосов
/ 11 июля 2020

У меня есть файл e2e_te_data. json, который включает мои 2 разных контрольных точки. Это означает, что у меня будет 2 тестовых примера, и я предоставлю pytest, и он выполнит 2 разных тестовых примера.

` e2e_te_data. json

[{   "dataSource":"dataSource1",  
     "machineName":"MachineName_X", 
},

{`   "dataSource":"dataSource2",  
    "machineName":"MachineName_Y",
}]

- -` ------- Это мой код:

 def read_test_data_from_json():
     JsonFile = open('..\\e2eTestData.json','r')
     h=[]    
     convertedJsonStr=[]
     json_input = JsonFile.read()
     parsedJsonStr = json.loads(json_input)  # Parse JSON string to Python dict
     for i in range(0, len(parsedJsonStr)):
         convertedJsonStr.append(json.dumps(parsedJsonStr[i]))
         h.append(parsedJsonStr[i]['machineName']) 
     return convertedJsonStr,h



@pytest.mark.parametrize("convertedJsonStr,h", (read_test_data_from_json()[0],read_test_data_from_json()[1]))
def test_GetFrequencyOfAllToolUsage(convertedJsonStr,h):
    objAPI=HTTPMethods()
    frequencyOfToolResultFromAPIRequest=objAPI.getFrequencyOfTools(read_test_data_from_json[0])
    print(h)

Значение переменной convertJsonstr

Я хочу получить один элемент convertJsonStr и возвращенный h из метода read_test_data_from_ json, когда он входит в метод test_GetFrequencyOfAllToolUsage. Но я вижу все элементы convertJsonStr и h, как на изображении выше.

1 Ответ

0 голосов
/ 11 июля 2020

Первый элемент

def read_test_data_from_json():
     JsonFile = json.load(open('..\\e2eTestData.json','r'))
     # First item
    return JsonFile[0], JsonFile[0]["machineName"]

Последний элемент

return JsonFile[-1], JsonFile[-1]["machineName"]

Случайный элемент

item = random.choice(JsonFile)
return item, item["machineName"]
...