Я агрегирую из XML, сгенерированного нашими тестами автоматизации, я использую python в лямбда-функции для анализа XML и создания элемента DynamoDB.
В конце мне понадобится дата каждого теста, который будет выполнять тест, и я буду вычислять некоторые базовые характеристики, такие как среднее значение, stdev и т. Д.
В настоящее время я использую очень плоскую структуру:
{
"testName": string
"result": "SUCCESS",
"testEndedAt": timecode,
"testStartedAt": timecode,
"testRunID": string,
"timeAdded": time,
"totalTime": number
}
Каждый прогон теста генерировал новый элемент с тем же именем теста.
Я использую testName и testrunID в качестве первичных ключей и ключей сортировки.
У меня есть ощущение, что то, как я делаю что-то, неэффективно. Я рассматриваю возможность перехода к структуре данных, подобной этой:
{
testname:string,
tests:[
{
timeAdded:timeStamp
testRunId:string,
testStartedAt:number,
testEndedAt:number,
totalTime:number
}
{
timeAdded:timeStamp
testRunId:string,
m__testStartedAt:number,
m__testEndedAt:number,
totalTime:number
}
],
stats:{
mean:number
stDev:number
maxExpectedTime:number
}
}
Я вижу пару преимуществ в этом подходе.
Я храню рассчитанную статистику в таблице
Я могу использовать имя теста и уникальный ключ
Мне не нужно сканировать всю БД для расчета статистики и т. Д.
Имея небольшой опыт в этом, я не знаю, как лучше подойти к вопросу, не говоря уже о том, чтобы ответить на него.
Спасибо за помощь!