diff options
Diffstat (limited to 'benchmarks/py-locust/files/extra-EXAMPLES-custom_xmlrpc_client.py')
-rw-r--r-- | benchmarks/py-locust/files/extra-EXAMPLES-custom_xmlrpc_client.py | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/benchmarks/py-locust/files/extra-EXAMPLES-custom_xmlrpc_client.py b/benchmarks/py-locust/files/extra-EXAMPLES-custom_xmlrpc_client.py deleted file mode 100644 index f117acd7790a..000000000000 --- a/benchmarks/py-locust/files/extra-EXAMPLES-custom_xmlrpc_client.py +++ /dev/null @@ -1,54 +0,0 @@ -import time -import xmlrpclib - -from locust import Locust, TaskSet, events, task - - -class XmlRpcClient(xmlrpclib.ServerProxy): - """ - Simple, sample XML RPC client implementation that wraps xmlrpclib.ServerProxy and - fires locust events on request_success and request_failure, so that all requests - gets tracked in locust's statistics. - """ - def __getattr__(self, name): - func = xmlrpclib.ServerProxy.__getattr__(self, name) - def wrapper(*args, **kwargs): - start_time = time.time() - try: - result = func(*args, **kwargs) - except xmlrpclib.Fault as e: - total_time = int((time.time() - start_time) * 1000) - events.request_failure.fire(request_type="xmlrpc", name=name, response_time=total_time, exception=e) - else: - total_time = int((time.time() - start_time) * 1000) - events.request_success.fire(request_type="xmlrpc", name=name, response_time=total_time, response_length=0) - # In this example, I've hardcoded response_length=0. If we would want the response length to be - # reported correctly in the statistics, we would probably need to hook in at a lower level - - return wrapper - - -class XmlRpcLocust(Locust): - """ - This is the abstract Locust class which should be subclassed. It provides an XML-RPC client - that can be used to make XML-RPC requests that will be tracked in Locust's statistics. - """ - def __init__(self, *args, **kwargs): - super(XmlRpcLocust, self).__init__(*args, **kwargs) - self.client = XmlRpcClient(self.host) - - -class ApiUser(XmlRpcLocust): - - host = "http://127.0.0.1:8877/" - min_wait = 100 - max_wait = 1000 - - class task_set(TaskSet): - @task(10) - def get_time(self): - self.client.get_time() - - @task(5) - def get_random_number(self): - self.client.get_random_number(0, 100) |