diff options
Diffstat (limited to 'service/test')
| -rw-r--r-- | service/test/load/locustfile.py | 21 | 
1 files changed, 14 insertions, 7 deletions
diff --git a/service/test/load/locustfile.py b/service/test/load/locustfile.py index 68e39433..23142eee 100644 --- a/service/test/load/locustfile.py +++ b/service/test/load/locustfile.py @@ -1,6 +1,5 @@  import os  import json -import time  from random import randint  from leap.auth import SRPAuth @@ -11,7 +10,7 @@ from pixelated.resources.login_resource import LoginResource  LEAP_PROVIDER = os.environ.get('LEAP_PROVIDER', 'dev.pixelated-project.org')  LEAP_SERVER_HOST = os.environ.get('LEAP_SERVER_HOST', 'https://api.%s:4430' % LEAP_PROVIDER)  LEAP_VERIFY_CERTIFICATE = os.environ.get('LEAP_VERIFY_CERTIFICATE', '~/.leap/ca.crt') -MAX_NUMBER_USER = os.environ.get('MAX_NUMBER_USER', 10000) +MAX_NUMBER_USER = os.environ.get('MAX_NUMBER_USER', 100)  INVITES_FILENAME = os.environ.get('INVITES_FILENAME', '/tmp/invite_codes.txt')  INVITES_ENABLED = os.environ.get('INVITES_ENABLED', 'true') == 'true' @@ -23,6 +22,10 @@ def load_invite_from_number(number):  class UserBehavior(TaskSet): +    def __init__(self, *args, **kwargs): +	super(UserBehavior, self).__init__(*args, **kwargs) +	self.cookies = {} +      def on_start(self):          """ on_start is called when a Locust start before any task is scheduled """          self.login() @@ -40,9 +43,11 @@ class UserBehavior(TaskSet):      def login(self):          number = randint(1, int(MAX_NUMBER_USER))          username, password = self._get_or_create_user(number) -        self.client.post("/%s" % LoginResource.BASE_URL, {"username": username, "password": password}) +        response = self.client.post("/%s" % LoginResource.BASE_URL, {"username": username, "password": password}) +        self.cookies.update(response.cookies.get_dict()) +        resp = self.client.get("/") +        self.cookies.update(resp.cookies.get_dict())          self.username = username -        time.sleep(5)      @task(1)      def index(self): @@ -56,7 +61,9 @@ class UserBehavior(TaskSet):      def send_mail(self):          payload = {"tags": ["drafts"], "body": "some text lorem ipsum", "attachments": [], "ident": "",                     "header": {"to": ["%s@%s" % (self.username, LEAP_PROVIDER)], "cc": [], "bcc": [], "subject": "load testing"}} -        with self.client.post('/mails', json=payload, catch_response=True) as email_response: +        self.cookies.update(self.client.get("/").cookies.get_dict()) +        print(self.cookies) +        with self.client.post('/mails', json=payload, catch_response=True, cookies=self.cookies, headers={'X-Requested-With': 'XMLHttpRequest', 'X-XSRF-TOKEN':self.cookies['XSRF-TOKEN']}) as email_response:              if email_response.status_code == 201:                  email_id = json.loads(email_response.content)['ident']                  print email_id @@ -66,10 +73,10 @@ class UserBehavior(TaskSet):      def delete_mail(self, ident):          payload = {"idents": [ident]} -        self.client.post('/mails/delete', json=payload) +        self.client.post('/mails/delete', json=payload, cookies=self.cookies, headers={'X-Requested-With': 'XMLHttpRequest', 'X-XSRF-TOKEN':self.cookies['XSRF-TOKEN']})  class WebsiteUser(HttpLocust):      task_set = UserBehavior -    min_wait = 3000 +    min_wait = 5000      max_wait = 15000  | 
