Python locust.task() Examples

The following are 7 code examples of locust.task(). 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 ngsi-timeseries-api with MIT License 5 votes vote down vote up
def on_start(self):
        """
        on_start is called when a Locust start before any task is scheduled
        """
        self.trafic_flow_observers = 0
        self.insert_traffic_flow_observed()

        self.air_quality_observers = 0
        self.insert_air_quality_observed() 
Example #2
Source File: test_case.py    From karlooper with MIT License 5 votes vote down vote up
def index(self):
        self.client.get("/hello-world")

        # @task(1)
        # def about(self):
        #     self.client.get("/hello") 
Example #3
Source File: baskets.py    From edx-load-tests with Apache License 2.0 5 votes vote down vote up
def purchase_single_free_product(self):
        """Simulate the purchase of a single free product via the LMS."""
        # If a user tries to purchase the same product more than once, we'll get 409s from
        # the LMS. To avoid this situation, we create a new user each time this task is called.
        self.auto_auth()

        post_data = {
            'course_id': settings.data['ecommerce']['free_course_id'],
        }
        self.post('/api/commerce/v0/baskets/', data=json.dumps(post_data)) 
Example #4
Source File: ecommerce_user_tasks.py    From edx-load-tests with Apache License 2.0 5 votes vote down vote up
def get_ecom_worker_client():
    """
    Gets the ecommerce worker client

    Using the oauth credentials in the settings file, this method
    returns up the ecommerce work clients which enables a task to call
    the api on behalf of the ecommerce worker.

    Returns:
        LocustEdxRestApiClient: The ecommerce worker client
    """
    access_token_endpoint = '{}/oauth2/access_token'.format(
        settings.secrets['oauth']['provider_url'].strip('/')
    )

    access_token, __ = LocustEdxRestApiClient.get_oauth_access_token(
        access_token_endpoint,
        settings.secrets['oauth']['client_id'],
        settings.secrets['oauth']['client_secret'],
    )

    return LocustEdxRestApiClient(
        ECOMMERCE_HOST,
        session=HttpSession(base_url=ECOMMERCE_HOST),
        oauth_access_token=access_token
    ) 
Example #5
Source File: locustfile.py    From edx-load-tests with Apache License 2.0 5 votes vote down vote up
def patch_credential(self):
        """ Randomly picked the status for patching the credentials. In case of revoke status remove the
        record from the deque. Otherwise during rendering task it will return 404.
        """
        if not self._user_credentials:
            return

        credential_uuid = random.choice(self._user_credentials)
        status = random.choice(['awarded', 'revoked'])
        data = {'status': status}
        if status == 'revoked':
            self._user_credentials.remove(credential_uuid)
        self.user_credential_client.credentials(credential_uuid).patch(data=data, name='/api/v2/credentials/[uuid]') 
Example #6
Source File: locustfile.py    From HandsOnDeepLearningWithPytorch with MIT License 5 votes vote down vote up
def on_start(self):
        """ on_start is called when a Locust start before any task is scheduled """
        self.url = "/predictions/fizbuz_package"
        self.headers = {"Content-Type": "application/json"} 
Example #7
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()