Python locust.TaskSet() Examples

The following are 6 code examples of locust.TaskSet(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module locust , or try the search function .
Example #1
Source File: locustfile.py    From edx-load-tests with Apache License 2.0 5 votes vote down vote up
def is_child(self):
        """
        Return True if this TaskSet is a child of another TaskSet
        """
        return isinstance(self.parent, TaskSet) 
Example #2
Source File: LMS_user_tasks.py    From edx-load-tests with Apache License 2.0 5 votes vote down vote up
def on_start(self):
        """Raise an exception. This TaskSet is not meant to be run on its own."""
        raise Exception("This TaskSet is not meant to be run") 
Example #3
Source File: authentication.py    From edx-load-tests with Apache License 2.0 5 votes vote down vote up
def on_start(self):
        """Raise an exception. This TaskSet is not meant to be run on its own."""
        raise Exception("This TaskSet is not meant to be run") 
Example #4
Source File: base.py    From edx-load-tests with Apache License 2.0 5 votes vote down vote up
def _is_child(self):
        """
        Returns True if the parent of this TaskSet instance is another TaskSet.
        """
        return isinstance(self.parent, TaskSet) 
Example #5
Source File: base.py    From edx-load-tests with Apache License 2.0 5 votes vote down vote up
def on_start(self):
        if not self.locust._is_registered:
            self.auto_auth(params={'no_login': True})

            # If we failed to register the user, and this TaskSet is a child of the main LmsTest TaskSet, interrupt so
            # that we can select another TaskSet and try to register again.
            #
            # NOTE: this is basically a retry mechanism without backoff, so it may behoove us to add delays to this
            if self._is_child and not self.locust._is_registered:
                self.interrupt()

        if self.locust._is_registered and not self.locust._is_logged_in:
            self.login()

            # If we failed to log in, and this TaskSet is a child of the main LmsTest TaskSet, interrupt so
            # that we can select another TaskSet and try to log in again.
            #
            # NOTE: this is basically a retry mechanism without backoff, so it may behoove us to add delays to this
            if self._is_child and not self.locust._is_logged_in:
                self.interrupt()

        if self.locust._is_logged_in and not self.locust._is_enrolled:
            self.enroll(self.course_id)

            # If we failed to enroll, and this TaskSet is a child of the main LmsTest TaskSet, interrupt so
            # that we can select another TaskSet and try to enroll again.
            #
            # NOTE: this is basically a retry mechanism without backoff, so it may behoove us to add delays to this
            if self._is_child and not self.locust._is_enrolled:
                self.interrupt() 
Example #6
Source File: test_locust.py    From transformer with MIT License 4 votes vote down vote up
def test_it_renders_a_locustfile_template(self):
        a_name = "some_task"
        a_request = MagicMock(spec=Request)
        a_request.method = HttpMethod.GET
        a_request.url = MagicMock(spec=SplitResult)
        a_request.url.scheme = "some_scheme"
        a_request.url.hostname = "some_hostname"
        a_request.url.path = "some_path"
        a_request.url.geturl()
        a_request.url.geturl.return_value = "some_url"
        a_request.headers = {"a": "b"}
        a_request.name = None
        task = Task(a_name, a_request)
        scenario = Scenario(name="SomeScenario", children=[task], origin=None)
        scenario_group = Scenario(
            name="ScenarioGroup", children=[scenario], weight=2, origin=None
        )
        script = locustfile([scenario_group])
        expected = string.Template(
            f"""
# File automatically generated by Transformer v{__version__}:
# https://github.com/zalando-incubator/Transformer
import re
from distutils.version import LooseVersion
from locust import __version__
LOCUST_MAJOR_VERSION = LooseVersion(__version__).version[0]
if LOCUST_MAJOR_VERSION >= 1:
    from locust import HttpUser
    from locust import SequentialTaskSet
    from locust import TaskSet
    from locust import task
    HttpLocust = HttpUser
    TaskSequence = SequentialTaskSet
    def seq_task(_):
        return task
else:
    from locust import HttpLocust
    from locust import TaskSequence
    from locust import TaskSet
    from locust import seq_task
    from locust import task
class ScenarioGroup(TaskSet):
    @task(1)
    class SomeScenario(TaskSequence):
        @seq_task(1)
        def some_task(self):
            response = self.client.get(url='some_url', name='some_url', timeout=$TIMEOUT, allow_redirects=False, headers={{'a': 'b'}})
class LocustForScenarioGroup(HttpLocust):
    if LOCUST_MAJOR_VERSION >= 1:
        tasks = [ScenarioGroup]
    else:
        task_set = ScenarioGroup
    weight = 2
    min_wait = 0
    max_wait = 10
"""
        ).safe_substitute({"TIMEOUT": TIMEOUT})
        assert expected.strip() == script.strip()