From 73ea4bc017a48ef81c7de78615183b99f3af6bee Mon Sep 17 00:00:00 2001
From: "jorge.gonzalez" <jorge.gonzalez@endocode.com>
Date: Wed, 15 Jul 2020 10:55:40 +0200
Subject: [PATCH] fix: update locust files for current locust version

---
 src/loadgenerator/loadgen.sh    |   2 +-
 src/loadgenerator/locustfile.py | 102 +++++++++++++++-----------------
 2 files changed, 49 insertions(+), 55 deletions(-)

diff --git a/src/loadgenerator/loadgen.sh b/src/loadgenerator/loadgen.sh
index 4a0f35e..79dfe76 100755
--- a/src/loadgenerator/loadgen.sh
+++ b/src/loadgenerator/loadgen.sh
@@ -32,4 +32,4 @@ if test $STATUSCODE -ne 200; then
 fi
 
 # else, run loadgen
-locust --host="http://${FRONTEND_ADDR}" --no-web -c "${USERS:-10}" 2>&1
+locust --host="http://${FRONTEND_ADDR}" --headless --users "${USERS:-10}" 2>&1
diff --git a/src/loadgenerator/locustfile.py b/src/loadgenerator/locustfile.py
index b134538..655bbee 100644
--- a/src/loadgenerator/locustfile.py
+++ b/src/loadgenerator/locustfile.py
@@ -15,67 +15,61 @@
 # limitations under the License.
 
 import random
-from locust import HttpLocust, TaskSet, between
+from locust import HttpUser, between, task
 
 products = [
-    '0PUK6V6EV0',
-    '1YMWWN1N4O',
-    '2ZYFJ3GM2N',
-    '66VCHSJNUP',
-    '6E92ZMYYFZ',
-    '9SIQT8TOJO',
-    'L9ECAV7KIM',
-    'LS4PSXUNUM',
-    'OLJCESPC7Z']
+	'0PUK6V6EV0',
+	'1YMWWN1N4O',
+	'2ZYFJ3GM2N',
+	'66VCHSJNUP',
+	'6E92ZMYYFZ',
+	'9SIQT8TOJO',
+	'L9ECAV7KIM',
+	'LS4PSXUNUM',
+	'OLJCESPC7Z'
+]
 
-def index(l):
-    l.client.get("/")
+class MyUser(HttpUser):
+	wait_time = between(5, 15)
 
-def setCurrency(l):
-    currencies = ['EUR', 'USD', 'JPY', 'CAD']
-    l.client.post("/setCurrency",
-        {'currency_code': random.choice(currencies)})
+	@task(1)
+	def index(l):
+		l.client.get("/")
 
-def browseProduct(l):
-    l.client.get("/product/" + random.choice(products))
+	@task(2)
+	def setCurrency(l):
+		currencies = ['EUR', 'USD', 'JPY', 'CAD']
+		l.client.post("/setCurrency",
+			{'currency_code': random.choice(currencies)})
 
-def viewCart(l):
-    l.client.get("/cart")
+	@task(10)
+	def browseProduct(l):
+		l.client.get("/product/" + random.choice(products))
 
-def addToCart(l):
-    product = random.choice(products)
-    l.client.get("/product/" + product)
-    l.client.post("/cart", {
-        'product_id': product,
-        'quantity': random.choice([1,2,3,4,5,10])})
+	@task(3)
+	def viewCart(l):
+		l.client.get("/cart")
 
-def checkout(l):
-    addToCart(l)
-    l.client.post("/cart/checkout", {
-        'email': 'someone@example.com',
-        'street_address': '1600 Amphitheatre Parkway',
-        'zip_code': '94043',
-        'city': 'Mountain View',
-        'state': 'CA',
-        'country': 'United States',
-        'credit_card_number': '4432-8015-6152-0454',
-        'credit_card_expiration_month': '1',
-        'credit_card_expiration_year': '2039',
-        'credit_card_cvv': '672',
-    })
+	@task(2)
+	def addToCart(l):
+		product = random.choice(products)
+		l.client.get("/product/" + product)
+		l.client.post("/cart", {
+			'product_id': product,
+			'quantity': random.choice([1,2,3,4,5,10])})
 
-class UserBehavior(TaskSet):
+	@task(1)
+	def checkout(l):
+		l.client.post("/cart/checkout", {
+			'email': 'someone@example.com',
+			'street_address': '1600 Amphitheatre Parkway',
+			'zip_code': '94043',
+			'city': 'Mountain View',
+			'state': 'CA',
+			'country': 'United States',
+			'credit_card_number': '4432-8015-6152-0454',
+			'credit_card_expiration_month': '1',
+			'credit_card_expiration_year': '2039',
+			'credit_card_cvv': '672',
+		})
 
-    def on_start(self):
-        index(self)
-
-    tasks = {index: 1,
-        setCurrency: 2,
-        browseProduct: 10,
-        addToCart: 2,
-        viewCart: 3,
-        checkout: 1}
-
-class WebsiteUser(HttpLocust):
-    task_set = UserBehavior
-    wait_time = between(1, 10)