in src/Utils/LoadtestConfigUtil.ts [22:94]
public static parseLoadtestConfigFile(): LoadtestConfig {
const yamlFilePath = this.validateAndGetYamlFilePath();
const yamlConfig: YamlConfig = this.readLoadtestConfigFile(yamlFilePath);
let loadtestConfig = {} as LoadtestConfig;
let filePath = pathLib.dirname(yamlFilePath);
loadtestConfig.testId = (yamlConfig.testId ?? yamlConfig.testName)!;
loadtestConfig.testId = loadtestConfig.testId.toLowerCase();
loadtestConfig.displayName = yamlConfig.displayName ?? loadtestConfig.testId;
loadtestConfig.description = yamlConfig.description;
loadtestConfig.engineInstances = yamlConfig.engineInstances ?? 1;
loadtestConfig.kind = yamlConfig.testType as TestKind ?? TestKind.JMX;
if(yamlConfig.splitAllCSVs != undefined){
loadtestConfig.splitAllCSVs = yamlConfig.splitAllCSVs;
}
this.parseFileConfiguration(loadtestConfig, yamlConfig, filePath);
this.parseParameters(loadtestConfig, yamlConfig);
if(yamlConfig.failureCriteria != undefined) {
if(Array.isArray(yamlConfig.failureCriteria)) {
loadtestConfig.failureCriteria = getPassFailCriteriaFromString(yamlConfig.failureCriteria);
}
else {
loadtestConfig.failureCriteria = getPassFailCriteriaFromString(yamlConfig.failureCriteria.clientMetrics ?? []);
loadtestConfig.serverFailureCriteria = getServerCriteriaFromYaml(yamlConfig.failureCriteria.serverMetrics ?? []);
}
}
if (yamlConfig.autoStop != undefined) {
loadtestConfig.autoStop = this.getAutoStopCriteria(yamlConfig.autoStop);
}
if(yamlConfig.subnetId != undefined) {
loadtestConfig.subnetId = (yamlConfig.subnetId);
}
if(yamlConfig.publicIPDisabled != undefined) {
loadtestConfig.publicIPDisabled = (yamlConfig.publicIPDisabled)
}
// Setting default values for appComponents and serverMetricsConfig
loadtestConfig.appComponents = {};
loadtestConfig.serverMetricsConfig = {};
loadtestConfig.addDefaultsForAppComponents = {};
if(yamlConfig.appComponents != undefined) {
this.parseAppComponentsAndServerMetricsConfig(loadtestConfig, yamlConfig.appComponents);
}
// Setting default values for reference identities
loadtestConfig.keyVaultReferenceIdentityType = ManagedIdentityTypeForAPI.SystemAssigned;
loadtestConfig.metricsReferenceIdentityType = ManagedIdentityTypeForAPI.SystemAssigned;
loadtestConfig.engineReferenceIdentityType = ManagedIdentityTypeForAPI.None;
if(yamlConfig.keyVaultReferenceIdentity != undefined || yamlConfig.keyVaultReferenceIdentityType != undefined) {
loadtestConfig.keyVaultReferenceIdentityType = yamlConfig.keyVaultReferenceIdentity ? ManagedIdentityTypeForAPI.UserAssigned : ManagedIdentityTypeForAPI.SystemAssigned;
loadtestConfig.keyVaultReferenceIdentity = yamlConfig.keyVaultReferenceIdentity ?? null;
}
if(yamlConfig.referenceIdentities != undefined) {
this.parseReferenceIdentities(loadtestConfig, yamlConfig.referenceIdentities as {[key: string]: string}[]);
}
if(yamlConfig.regionalLoadTestConfig != undefined) {
loadtestConfig.regionalLoadTestConfig = this.getMultiRegionLoadTestConfig(yamlConfig.regionalLoadTestConfig);
}
return loadtestConfig;
}