Merge pull request #8 from DavidSouther/fluctuating-errors
Fluctuating user load from loadgenerator service
This commit is contained in:
commit
aff860640f
1 changed files with 16 additions and 2 deletions
|
@ -14,7 +14,9 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
import math
|
||||||
import random
|
import random
|
||||||
|
import time
|
||||||
from locust import HttpLocust, TaskSet
|
from locust import HttpLocust, TaskSet
|
||||||
|
|
||||||
products = [
|
products = [
|
||||||
|
@ -65,10 +67,24 @@ def checkout(l):
|
||||||
})
|
})
|
||||||
|
|
||||||
class UserBehavior(TaskSet):
|
class UserBehavior(TaskSet):
|
||||||
|
min_wait = 1000
|
||||||
|
max_wait = 20000
|
||||||
|
|
||||||
def on_start(self):
|
def on_start(self):
|
||||||
index(self)
|
index(self)
|
||||||
|
|
||||||
|
def wait_function(self):
|
||||||
|
# Compute user's activity rate (wait time between actions) so traffic is
|
||||||
|
# diurnal; minimum at hrs=0.0|24.0 and maximum at hrs=12.0.
|
||||||
|
now = time.localtime()
|
||||||
|
hrs = now.tm_hour + now.tm_min/60.0
|
||||||
|
# Compute scale factor is between 0 and 1.
|
||||||
|
traffic_scaler = -1.0 * math.cos(2.0 * math.pi * hrs / 24)
|
||||||
|
traffic_scaler = (traffic_scaler + 1) / 2.0
|
||||||
|
|
||||||
|
# Scale traffic between minimum and maximum wait times.
|
||||||
|
return self.max_wait + (self.min_wait - self.max_wait) * traffic_scaler
|
||||||
|
|
||||||
tasks = {index: 1,
|
tasks = {index: 1,
|
||||||
setCurrency: 2,
|
setCurrency: 2,
|
||||||
browseProduct: 10,
|
browseProduct: 10,
|
||||||
|
@ -78,5 +94,3 @@ class UserBehavior(TaskSet):
|
||||||
|
|
||||||
class WebsiteUser(HttpLocust):
|
class WebsiteUser(HttpLocust):
|
||||||
task_set = UserBehavior
|
task_set = UserBehavior
|
||||||
min_wait = 1000
|
|
||||||
max_wait = 10000
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue