package com.griddynamics.jagger.test.javabuilders.smoke_components;
import com.griddynamics.jagger.user.test.configurations.load.JLoadProfile;
import com.griddynamics.jagger.user.test.configurations.load.JLoadProfileRps;
import com.griddynamics.jagger.user.test.configurations.load.JLoadProfileUserGroups;
import com.griddynamics.jagger.user.test.configurations.load.JLoadProfileUsers;
import com.griddynamics.jagger.user.test.configurations.load.auxiliary.NumberOfUsers;
import com.griddynamics.jagger.user.test.configurations.load.auxiliary.RequestsPerSecond;
/**
* - For smoke tests of JLoadProfileRps each optional parameter should be specified and unspecified at least once.
* - For smoke tests of JLoadProfileUserGroups should create load with one and several user groups with and without delay
* between invocation. For JLoadProfileUsers each optional parameter should be specified and unspecified at least once.
* - TPS, Invocation - TBD
*/
public class TestLoadVariations {
public JLoadProfile oneRPSWithAllDefaults(){
return JLoadProfileRps.builder(RequestsPerSecond.of(1)).build();
}
public JLoadProfile rpsFiveSecWarmUp(){
return JLoadProfileRps.builder(RequestsPerSecond.of(10))
.withWarmUpTimeInMilliseconds(5000)
.build();
}
public JLoadProfile rpsWith0WarmUp(){
return JLoadProfileRps.builder(RequestsPerSecond.of(1))
.withWarmUpTimeInMilliseconds(0)
.build();
}
public JLoadProfile rpsOneThreadMax(){
return JLoadProfileRps.builder(RequestsPerSecond.of(1))
.withMaxLoadThreads(1)
.build();
}
public JLoadProfile rpsAllFields(){
return JLoadProfileRps.builder(RequestsPerSecond.of(100))
.withMaxLoadThreads(10)
.withWarmUpTimeInMilliseconds(2000)
.build();
}
public JLoadProfile singleGroupAllDefaults(){
JLoadProfileUsers group = JLoadProfileUsers.builder(NumberOfUsers.of(1)).build();
return JLoadProfileUserGroups.builder(group).withDelayBetweenInvocationsInMilliseconds(1)
.build();
}
public JLoadProfile severalGroupWithUsersVariations(){
JLoadProfileUsers withLifeTime = JLoadProfileUsers.builder(NumberOfUsers.of(10))
.withLifeTimeInSeconds(2)
.build();
JLoadProfileUsers withStartDelay = JLoadProfileUsers.builder(NumberOfUsers.of(50))
.withStartDelayInSeconds(1)
.build();
JLoadProfileUsers withSlewRate = JLoadProfileUsers.builder(NumberOfUsers.of(20))
.withSlewRateUsersPerSecond(5)
.build();
JLoadProfileUsers withAllFields = JLoadProfileUsers.builder(NumberOfUsers.of(40))
.withLifeTimeInSeconds(5)
.withSlewRateUsersPerSecond(5)
.withStartDelayInSeconds(2)
.build();
return JLoadProfileUserGroups.builder(withLifeTime, withStartDelay, withSlewRate, withAllFields)
.build();
}
}