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)