package com.griddynamics.jagger.user.test.configurations.limits; import com.griddynamics.jagger.user.test.configurations.limits.auxiliary.JMetricName; import com.griddynamics.jagger.util.StandardMetricsNamesUtil; import java.util.Objects; /** * Allow to compare a performance test with some baseline (another performance test, which was saved in the database). */ public class JLimitVsBaseline extends JLimit { private JLimitVsBaseline(Builder builder) { super(builder); } /** * Builder for {@link JLimit} to compare with baseline. * * @param metricId unique id of the metric. * @return builder for {@link JLimit}. */ public static Builder builder(String metricId) { return new Builder(metricId); } /** * Builder for {@link JLimit} to compare metrics, * collected during {@link com.griddynamics.jagger.invoker.scenario.JHttpUserScenario} execution, with the baseline. * * @param scenarioId unique id of a user scenario * @param stepId unique id of a user step * @param metricId unique id of a metric * @return a builder for {@link JLimit} */ public static Builder builder(String scenarioId, String stepId, String metricId) { return new Builder(StandardMetricsNamesUtil.generateScenarioStepMetricRegexp(scenarioId, stepId, metricId)); } /** * Builder for {@link JLimit} to compare with baseline. * * @param metricId unique id of the metric. * @return builder for {@link JLimit}. */ public static Builder builder(JMetricName metricId) { return new Builder(metricId.transformToString()); } /** * Builder for {@link JLimit} to compare metrics, * collected during {@link com.griddynamics.jagger.invoker.scenario.JHttpUserScenario} execution, with the baseline. * * @param scenarioId unique id of a user scenario * @param stepId unique id of a user step * @param metricId unique id of a metric * @return a builder for {@link JLimit} */ public static Builder builder(String scenarioId, String stepId, JMetricName metricId) { return new Builder(StandardMetricsNamesUtil.generateScenarioStepMetricRegexp(scenarioId, stepId, metricId.transformToString())); } public static class Builder extends JLimit.Builder { private Builder(String metricId) { Objects.requireNonNull(metricId); this.metricId = metricId; } @Override public JLimit build() { return new JLimitVsBaseline(this); } } }