in pts/src/model/GetPtsReportDetailsResult.cc [36:287]
void GetPtsReportDetailsResult::parse(const std::string &payload)
{
Json::Reader reader;
Json::Value value;
reader.parse(payload, value);
setRequestId(value["RequestId"].asString());
auto allApiMetricsListNode = value["ApiMetricsList"]["ApiMetrics"];
for (auto valueApiMetricsListApiMetrics : allApiMetricsListNode)
{
ApiMetrics apiMetricsListObject;
if(!valueApiMetricsListApiMetrics["FailCountBiz"].isNull())
apiMetricsListObject.failCountBiz = std::stol(valueApiMetricsListApiMetrics["FailCountBiz"].asString());
if(!valueApiMetricsListApiMetrics["Seg75Rt"].isNull())
apiMetricsListObject.seg75Rt = std::stof(valueApiMetricsListApiMetrics["Seg75Rt"].asString());
if(!valueApiMetricsListApiMetrics["AllCount"].isNull())
apiMetricsListObject.allCount = std::stol(valueApiMetricsListApiMetrics["AllCount"].asString());
if(!valueApiMetricsListApiMetrics["AvgTps"].isNull())
apiMetricsListObject.avgTps = std::stof(valueApiMetricsListApiMetrics["AvgTps"].asString());
if(!valueApiMetricsListApiMetrics["MinRt"].isNull())
apiMetricsListObject.minRt = std::stof(valueApiMetricsListApiMetrics["MinRt"].asString());
if(!valueApiMetricsListApiMetrics["Seg99Rt"].isNull())
apiMetricsListObject.seg99Rt = std::stof(valueApiMetricsListApiMetrics["Seg99Rt"].asString());
if(!valueApiMetricsListApiMetrics["Seg50Rt"].isNull())
apiMetricsListObject.seg50Rt = std::stof(valueApiMetricsListApiMetrics["Seg50Rt"].asString());
if(!valueApiMetricsListApiMetrics["MaxRt"].isNull())
apiMetricsListObject.maxRt = std::stof(valueApiMetricsListApiMetrics["MaxRt"].asString());
if(!valueApiMetricsListApiMetrics["Seg90Rt"].isNull())
apiMetricsListObject.seg90Rt = std::stof(valueApiMetricsListApiMetrics["Seg90Rt"].asString());
if(!valueApiMetricsListApiMetrics["SuccessRateBiz"].isNull())
apiMetricsListObject.successRateBiz = std::stof(valueApiMetricsListApiMetrics["SuccessRateBiz"].asString());
if(!valueApiMetricsListApiMetrics["AvgRt"].isNull())
apiMetricsListObject.avgRt = std::stof(valueApiMetricsListApiMetrics["AvgRt"].asString());
if(!valueApiMetricsListApiMetrics["FailCountReq"].isNull())
apiMetricsListObject.failCountReq = std::stol(valueApiMetricsListApiMetrics["FailCountReq"].asString());
if(!valueApiMetricsListApiMetrics["SuccessRateReq"].isNull())
apiMetricsListObject.successRateReq = std::stof(valueApiMetricsListApiMetrics["SuccessRateReq"].asString());
if(!valueApiMetricsListApiMetrics["ApiName"].isNull())
apiMetricsListObject.apiName = valueApiMetricsListApiMetrics["ApiName"].asString();
apiMetricsList_.push_back(apiMetricsListObject);
}
auto reportOverViewNode = value["ReportOverView"];
if(!reportOverViewNode["ReportName"].isNull())
reportOverView_.reportName = reportOverViewNode["ReportName"].asString();
if(!reportOverViewNode["EndTime"].isNull())
reportOverView_.endTime = reportOverViewNode["EndTime"].asString();
if(!reportOverViewNode["StartTime"].isNull())
reportOverView_.startTime = reportOverViewNode["StartTime"].asString();
if(!reportOverViewNode["AgentCount"].isNull())
reportOverView_.agentCount = std::stoi(reportOverViewNode["AgentCount"].asString());
if(!reportOverViewNode["ReportId"].isNull())
reportOverView_.reportId = reportOverViewNode["ReportId"].asString();
if(!reportOverViewNode["Vum"].isNull())
reportOverView_.vum = std::stol(reportOverViewNode["Vum"].asString());
auto sceneMetricsNode = value["SceneMetrics"];
if(!sceneMetricsNode["FailCountBiz"].isNull())
sceneMetrics_.failCountBiz = std::stol(sceneMetricsNode["FailCountBiz"].asString());
if(!sceneMetricsNode["AllCount"].isNull())
sceneMetrics_.allCount = std::stol(sceneMetricsNode["AllCount"].asString());
if(!sceneMetricsNode["SuccessRateBiz"].isNull())
sceneMetrics_.successRateBiz = std::stof(sceneMetricsNode["SuccessRateBiz"].asString());
if(!sceneMetricsNode["AvgRt"].isNull())
sceneMetrics_.avgRt = std::stof(sceneMetricsNode["AvgRt"].asString());
if(!sceneMetricsNode["FailCountReq"].isNull())
sceneMetrics_.failCountReq = std::stol(sceneMetricsNode["FailCountReq"].asString());
if(!sceneMetricsNode["AvgTps"].isNull())
sceneMetrics_.avgTps = std::stof(sceneMetricsNode["AvgTps"].asString());
if(!sceneMetricsNode["Seg99Rt"].isNull())
sceneMetrics_.seg99Rt = std::stof(sceneMetricsNode["Seg99Rt"].asString());
if(!sceneMetricsNode["SuccessRateReq"].isNull())
sceneMetrics_.successRateReq = std::stof(sceneMetricsNode["SuccessRateReq"].asString());
if(!sceneMetricsNode["Seg90Rt"].isNull())
sceneMetrics_.seg90Rt = std::stof(sceneMetricsNode["Seg90Rt"].asString());
auto sceneSnapShotNode = value["SceneSnapShot"];
if(!sceneSnapShotNode["Status"].isNull())
sceneSnapShot_.status = sceneSnapShotNode["Status"].asString();
if(!sceneSnapShotNode["ModifiedTime"].isNull())
sceneSnapShot_.modifiedTime = sceneSnapShotNode["ModifiedTime"].asString();
if(!sceneSnapShotNode["CreateTime"].isNull())
sceneSnapShot_.createTime = sceneSnapShotNode["CreateTime"].asString();
if(!sceneSnapShotNode["SceneName"].isNull())
sceneSnapShot_.sceneName = sceneSnapShotNode["SceneName"].asString();
if(!sceneSnapShotNode["SceneId"].isNull())
sceneSnapShot_.sceneId = sceneSnapShotNode["SceneId"].asString();
auto allFileParameterListNode = sceneSnapShotNode["FileParameterList"]["FileParameter"];
for (auto sceneSnapShotNodeFileParameterListFileParameter : allFileParameterListNode)
{
SceneSnapShot::FileParameter fileParameterObject;
if(!sceneSnapShotNodeFileParameterListFileParameter["FileOssAddress"].isNull())
fileParameterObject.fileOssAddress = sceneSnapShotNodeFileParameterListFileParameter["FileOssAddress"].asString();
if(!sceneSnapShotNodeFileParameterListFileParameter["FileName"].isNull())
fileParameterObject.fileName = sceneSnapShotNodeFileParameterListFileParameter["FileName"].asString();
sceneSnapShot_.fileParameterList.push_back(fileParameterObject);
}
auto allRelationListNode = sceneSnapShotNode["RelationList"]["Relation"];
for (auto sceneSnapShotNodeRelationListRelation : allRelationListNode)
{
SceneSnapShot::Relation relationObject;
if(!sceneSnapShotNodeRelationListRelation["RelationName"].isNull())
relationObject.relationName = sceneSnapShotNodeRelationListRelation["RelationName"].asString();
if(!sceneSnapShotNodeRelationListRelation["RelationId"].isNull())
relationObject.relationId = sceneSnapShotNodeRelationListRelation["RelationId"].asString();
auto allFileParameterExplainListNode = sceneSnapShotNodeRelationListRelation["FileParameterExplainList"]["FileParameterExplain"];
for (auto sceneSnapShotNodeRelationListRelationFileParameterExplainListFileParameterExplain : allFileParameterExplainListNode)
{
SceneSnapShot::Relation::FileParameterExplain fileParameterExplainListObject;
if(!sceneSnapShotNodeRelationListRelationFileParameterExplainListFileParameterExplain["CycleOnce"].isNull())
fileParameterExplainListObject.cycleOnce = sceneSnapShotNodeRelationListRelationFileParameterExplainListFileParameterExplain["CycleOnce"].asString() == "true";
if(!sceneSnapShotNodeRelationListRelationFileParameterExplainListFileParameterExplain["FileParamName"].isNull())
fileParameterExplainListObject.fileParamName = sceneSnapShotNodeRelationListRelationFileParameterExplainListFileParameterExplain["FileParamName"].asString();
if(!sceneSnapShotNodeRelationListRelationFileParameterExplainListFileParameterExplain["FileName"].isNull())
fileParameterExplainListObject.fileName = sceneSnapShotNodeRelationListRelationFileParameterExplainListFileParameterExplain["FileName"].asString();
if(!sceneSnapShotNodeRelationListRelationFileParameterExplainListFileParameterExplain["BaseFile"].isNull())
fileParameterExplainListObject.baseFile = sceneSnapShotNodeRelationListRelationFileParameterExplainListFileParameterExplain["BaseFile"].asString() == "true";
relationObject.fileParameterExplainList.push_back(fileParameterExplainListObject);
}
auto allApiListNode = sceneSnapShotNodeRelationListRelation["ApiList"]["Api"];
for (auto sceneSnapShotNodeRelationListRelationApiListApi : allApiListNode)
{
SceneSnapShot::Relation::Api apiListObject;
if(!sceneSnapShotNodeRelationListRelationApiListApi["ApiId"].isNull())
apiListObject.apiId = sceneSnapShotNodeRelationListRelationApiListApi["ApiId"].asString();
if(!sceneSnapShotNodeRelationListRelationApiListApi["TimeoutInSecond"].isNull())
apiListObject.timeoutInSecond = std::stoi(sceneSnapShotNodeRelationListRelationApiListApi["TimeoutInSecond"].asString());
if(!sceneSnapShotNodeRelationListRelationApiListApi["Url"].isNull())
apiListObject.url = sceneSnapShotNodeRelationListRelationApiListApi["Url"].asString();
if(!sceneSnapShotNodeRelationListRelationApiListApi["Method"].isNull())
apiListObject.method = sceneSnapShotNodeRelationListRelationApiListApi["Method"].asString();
if(!sceneSnapShotNodeRelationListRelationApiListApi["RedirectCountLimit"].isNull())
apiListObject.redirectCountLimit = std::stoi(sceneSnapShotNodeRelationListRelationApiListApi["RedirectCountLimit"].asString());
if(!sceneSnapShotNodeRelationListRelationApiListApi["ApiName"].isNull())
apiListObject.apiName = sceneSnapShotNodeRelationListRelationApiListApi["ApiName"].asString();
auto allCheckPointListNode = sceneSnapShotNodeRelationListRelationApiListApi["CheckPointList"]["CheckPoint"];
for (auto sceneSnapShotNodeRelationListRelationApiListApiCheckPointListCheckPoint : allCheckPointListNode)
{
SceneSnapShot::Relation::Api::CheckPoint checkPointListObject;
if(!sceneSnapShotNodeRelationListRelationApiListApiCheckPointListCheckPoint["CheckType"].isNull())
checkPointListObject.checkType = sceneSnapShotNodeRelationListRelationApiListApiCheckPointListCheckPoint["CheckType"].asString();
if(!sceneSnapShotNodeRelationListRelationApiListApiCheckPointListCheckPoint["Operator"].isNull())
checkPointListObject._operator = sceneSnapShotNodeRelationListRelationApiListApiCheckPointListCheckPoint["Operator"].asString();
if(!sceneSnapShotNodeRelationListRelationApiListApiCheckPointListCheckPoint["ExpectValue"].isNull())
checkPointListObject.expectValue = sceneSnapShotNodeRelationListRelationApiListApiCheckPointListCheckPoint["ExpectValue"].asString();
if(!sceneSnapShotNodeRelationListRelationApiListApiCheckPointListCheckPoint["CheckPoint"].isNull())
checkPointListObject.checkPoint = sceneSnapShotNodeRelationListRelationApiListApiCheckPointListCheckPoint["CheckPoint"].asString();
apiListObject.checkPointList.push_back(checkPointListObject);
}
auto allHeaderListNode = sceneSnapShotNodeRelationListRelationApiListApi["HeaderList"]["Header"];
for (auto sceneSnapShotNodeRelationListRelationApiListApiHeaderListHeader : allHeaderListNode)
{
SceneSnapShot::Relation::Api::Header headerListObject;
if(!sceneSnapShotNodeRelationListRelationApiListApiHeaderListHeader["HeaderValue"].isNull())
headerListObject.headerValue = sceneSnapShotNodeRelationListRelationApiListApiHeaderListHeader["HeaderValue"].asString();
if(!sceneSnapShotNodeRelationListRelationApiListApiHeaderListHeader["HeaderName"].isNull())
headerListObject.headerName = sceneSnapShotNodeRelationListRelationApiListApiHeaderListHeader["HeaderName"].asString();
apiListObject.headerList.push_back(headerListObject);
}
auto allExportListNode = sceneSnapShotNodeRelationListRelationApiListApi["ExportList"]["Export"];
for (auto sceneSnapShotNodeRelationListRelationApiListApiExportListExport : allExportListNode)
{
SceneSnapShot::Relation::Api::Export exportListObject;
if(!sceneSnapShotNodeRelationListRelationApiListApiExportListExport["ExportType"].isNull())
exportListObject.exportType = sceneSnapShotNodeRelationListRelationApiListApiExportListExport["ExportType"].asString();
if(!sceneSnapShotNodeRelationListRelationApiListApiExportListExport["ExportValue"].isNull())
exportListObject.exportValue = sceneSnapShotNodeRelationListRelationApiListApiExportListExport["ExportValue"].asString();
if(!sceneSnapShotNodeRelationListRelationApiListApiExportListExport["ExportName"].isNull())
exportListObject.exportName = sceneSnapShotNodeRelationListRelationApiListApiExportListExport["ExportName"].asString();
if(!sceneSnapShotNodeRelationListRelationApiListApiExportListExport["Count"].isNull())
exportListObject.count = sceneSnapShotNodeRelationListRelationApiListApiExportListExport["Count"].asString();
apiListObject.exportList.push_back(exportListObject);
}
auto bodyNode = value["Body"];
if(!bodyNode["BodyValue"].isNull())
apiListObject.body.bodyValue = bodyNode["BodyValue"].asString();
if(!bodyNode["ContentType"].isNull())
apiListObject.body.contentType = bodyNode["ContentType"].asString();
relationObject.apiList.push_back(apiListObject);
}
sceneSnapShot_.relationList.push_back(relationObject);
}
auto allGlobalParameterListNode = sceneSnapShotNode["GlobalParameterList"]["GlobalParameter"];
for (auto sceneSnapShotNodeGlobalParameterListGlobalParameter : allGlobalParameterListNode)
{
SceneSnapShot::GlobalParameter globalParameterObject;
if(!sceneSnapShotNodeGlobalParameterListGlobalParameter["ParamName"].isNull())
globalParameterObject.paramName = sceneSnapShotNodeGlobalParameterListGlobalParameter["ParamName"].asString();
if(!sceneSnapShotNodeGlobalParameterListGlobalParameter["ParamValue"].isNull())
globalParameterObject.paramValue = sceneSnapShotNodeGlobalParameterListGlobalParameter["ParamValue"].asString();
sceneSnapShot_.globalParameterList.push_back(globalParameterObject);
}
auto loadConfigNode = sceneSnapShotNode["LoadConfig"];
if(!loadConfigNode["MaxRunningTime"].isNull())
sceneSnapShot_.loadConfig.maxRunningTime = std::stoi(loadConfigNode["MaxRunningTime"].asString());
if(!loadConfigNode["AgentCount"].isNull())
sceneSnapShot_.loadConfig.agentCount = std::stoi(loadConfigNode["AgentCount"].asString());
if(!loadConfigNode["TestMode"].isNull())
sceneSnapShot_.loadConfig.testMode = loadConfigNode["TestMode"].asString();
auto allApiLoadConfigListNode = loadConfigNode["ApiLoadConfigList"]["ApiLoadConfig"];
for (auto loadConfigNodeApiLoadConfigListApiLoadConfig : allApiLoadConfigListNode)
{
SceneSnapShot::LoadConfig::ApiLoadConfig apiLoadConfigObject;
if(!loadConfigNodeApiLoadConfigListApiLoadConfig["RpsBegin"].isNull())
apiLoadConfigObject.rpsBegin = std::stoi(loadConfigNodeApiLoadConfigListApiLoadConfig["RpsBegin"].asString());
if(!loadConfigNodeApiLoadConfigListApiLoadConfig["RpsLimit"].isNull())
apiLoadConfigObject.rpsLimit = std::stoi(loadConfigNodeApiLoadConfigListApiLoadConfig["RpsLimit"].asString());
sceneSnapShot_.loadConfig.apiLoadConfigList.push_back(apiLoadConfigObject);
}
auto allRelationLoadConfigListNode = loadConfigNode["RelationLoadConfigList"]["RelationLoadConfig"];
for (auto loadConfigNodeRelationLoadConfigListRelationLoadConfig : allRelationLoadConfigListNode)
{
SceneSnapShot::LoadConfig::RelationLoadConfig relationLoadConfigObject;
if(!loadConfigNodeRelationLoadConfigListRelationLoadConfig["ConcurrencyBegin"].isNull())
relationLoadConfigObject.concurrencyBegin = std::stoi(loadConfigNodeRelationLoadConfigListRelationLoadConfig["ConcurrencyBegin"].asString());
if(!loadConfigNodeRelationLoadConfigListRelationLoadConfig["ConcurrencyLimit"].isNull())
relationLoadConfigObject.concurrencyLimit = std::stoi(loadConfigNodeRelationLoadConfigListRelationLoadConfig["ConcurrencyLimit"].asString());
sceneSnapShot_.loadConfig.relationLoadConfigList.push_back(relationLoadConfigObject);
}
auto configurationNode = loadConfigNode["Configuration"];
if(!configurationNode["AllRpsBegin"].isNull())
sceneSnapShot_.loadConfig.configuration.allRpsBegin = std::stoi(configurationNode["AllRpsBegin"].asString());
if(!configurationNode["AllConcurrencyBegin"].isNull())
sceneSnapShot_.loadConfig.configuration.allConcurrencyBegin = std::stoi(configurationNode["AllConcurrencyBegin"].asString());
if(!configurationNode["AllConcurrencyLimit"].isNull())
sceneSnapShot_.loadConfig.configuration.allConcurrencyLimit = std::stoi(configurationNode["AllConcurrencyLimit"].asString());
if(!configurationNode["AllRpsLimit"].isNull())
sceneSnapShot_.loadConfig.configuration.allRpsLimit = std::stoi(configurationNode["AllRpsLimit"].asString());
auto advanceSettingNode = sceneSnapShotNode["AdvanceSetting"];
if(!advanceSettingNode["LogRate"].isNull())
sceneSnapShot_.advanceSetting.logRate = std::stoi(advanceSettingNode["LogRate"].asString());
if(!advanceSettingNode["ConnectionTimeoutInSecond"].isNull())
sceneSnapShot_.advanceSetting.connectionTimeoutInSecond = std::stoi(advanceSettingNode["ConnectionTimeoutInSecond"].asString());
if(!advanceSettingNode["SuccessCode"].isNull())
sceneSnapShot_.advanceSetting.successCode = advanceSettingNode["SuccessCode"].asString();
auto allDomainBindingListNode = advanceSettingNode["DomainBindingList"]["DomainBinding"];
for (auto advanceSettingNodeDomainBindingListDomainBinding : allDomainBindingListNode)
{
SceneSnapShot::AdvanceSetting::DomainBinding domainBindingObject;
if(!advanceSettingNodeDomainBindingListDomainBinding["Domain"].isNull())
domainBindingObject.domain = advanceSettingNodeDomainBindingListDomainBinding["Domain"].asString();
auto allIps = value["Ips"]["String"];
for (auto value : allIps)
domainBindingObject.ips.push_back(value.asString());
sceneSnapShot_.advanceSetting.domainBindingList.push_back(domainBindingObject);
}
if(!value["Message"].isNull())
message_ = value["Message"].asString();
if(!value["HttpStatusCode"].isNull())
httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
if(!value["Code"].isNull())
code_ = value["Code"].asString();
if(!value["Success"].isNull())
success_ = value["Success"].asString() == "true";
}