Exemple #1
0
    def interrupt(self, reschedule=True):
        """
        Interrupt the TaskSet and hand over execution control back to the parent TaskSet.

        If *reschedule* is True (default), the parent User will immediately re-schedule,
        and execute, a new task.
        """
        raise InterruptTaskSet(reschedule)
Exemple #2
0
        def executeTestOne(self):

            result1 = queryGlobalMethodExample(self, "some-value")
            if result1 is not None:
                logger.debug("result2: %s" % result1)
            else:
                logger.warn("Error occurred... aborting task.")
                raise InterruptTaskSet(False)
Exemple #3
0
 def interrupt(self, reschedule=True):
     """
     Interrupt the TaskSet and hand over execution control back to the parent TaskSet.
     
     If *reschedule* is True (default), the parent User will immediately re-schedule,
     and execute, a new task.
     
     This method should not be called by the root TaskSet (the one that is immediately, 
     attached to the User class's *task_set* attribute), but rather in nested TaskSet
     classes further down the hierarchy.
     """
     raise InterruptTaskSet(reschedule)
Exemple #4
0
 def request_failure(self, request_type, name, response_time,
                     response_length, exception, **_kwargs):
     raise InterruptTaskSet()
Exemple #5
0
 def interrupted_task(self):
     with self.client.get("/ultra_fast", catch_response=True) as r:
         raise InterruptTaskSet()
Exemple #6
0
 def t2(self):
     self.t2_executed = True
     raise InterruptTaskSet(reschedule=False)
Exemple #7
0
 def request(self, exception, **_kwargs):
     if exception:
         raise InterruptTaskSet()
Exemple #8
0
 def on_task_end(self):
     raise InterruptTaskSet(reschedule=False)
Exemple #9
0
 def t1(self):
     if not self.completed:
         self.completed = True
         raise RescheduleTask
     else:
         raise InterruptTaskSet(reschedule=False)
Exemple #10
0
 def debug(self):            
     if not self.locust.user_token:
         logger.warn("Aborting task - unexpected user token")
         raise InterruptTaskSet(False)
Exemple #11
0
    def login(self):
        """
        Main script used to log in via CAS protocol
        """
        print("CAS Login Process Starting ...")
        client = self.client

        cas_response = client.get("/cas/login",
                                  params={'service': CAS_SP},
                                  name="1. /cas/login - GET",
                                  verify=False)
        content = cas_response.text

        found_exec = EXECUTION_PAT.search(content)
        if found_exec is None:
            print("CAS No Execution field found on login form!")
            print(content)
            raise InterruptTaskSet()
        execution = found_exec.groups()[0]

        found_eventid = EVENTID_PAT.search(content)
        if found_eventid is None:
            print("CAS No Event Id field found on login form!")
            raise InterruptTaskSet()
        event_id = found_eventid.groups()[0]

        creds = random.choice(self.creds)
        cas_user = creds[0]
        cas_passwd = creds[1]
        data = {
            "username": cas_user,
            "password": cas_passwd,
            "execution": execution,
            "_eventId": event_id,
            "geolocation": "",
        }

        print("CAS Logging in User")
        cas_login_response = client.post(
            "/cas/login?service={}".format(CAS_SP),
            data=data,
            name="2. /cas/login - POST",
            verify=False,
            allow_redirects=False)

        cas_response_url = cas_login_response.next.url
        url_query = unquote(urlparse(cas_response_url).query)
        cas_parsed_url = parse_qs(url_query)

        if 'ticket' in cas_parsed_url:
            cas_ticket = cas_parsed_url['ticket'][0]
        else:
            print("CAS No Ticket found in returned form!")
            raise InterruptTaskSet()

        print("CAS Validating service ticket ...")
        ticket_response = client.get("/cas/serviceValidate",
                                     params={
                                         'service': CAS_SP,
                                         'ticket': cas_ticket
                                     },
                                     name="3. /cas/serviceValidate - GET",
                                     verify=False)

        ticket_status = ticket_response.status_code
        assert ticket_status is 200, "CAS Ticket response code of: ".format(
            ticket_status)

        user_data = ticket_response.text
        if "<cas:authenticationSuccess>" in user_data:
            print("CAS Successful Run!")
        else:
            print("CAS No Event Id field found on login form!")
            raise InterruptTaskSet()

        print("CAS Validating service ticket ...")