Pytest - 从多个返回值中获取一项

Pytest -Get one item from multiple returned values

我有 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)

Value of convertedJsonstr variable

我想在 test_GetFrequencyOfAllToolUsage 方法中获取从 read_test_data_from_json 方法返回的 convertedJsonStr 和 h 的一项。但是我看到 convertedJsonStr 和 h 的所有项都如上图所示。

第一项

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"]