12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import random
- from os import environ
- from uuid import uuid4
- import requests
- from locust import HttpLocust, TaskSet, task
- from rdflib import Graph, URIRef
- from lakesuperior.util.generators import random_graph, random_image
- ldp_root = environ.get(
- 'FCREPO_BENCHMARK_ROOT', 'http://localhost:8000/ldp/pomegranate'
- )
- print('Retrieving LDP graphs. Be patient, this may take a while...')
- rsp = requests.request('GET', ldp_root)
- root_gr = Graph().parse(data=rsp.text, format='ttl')
- subjects = {*root_gr.objects(
- None, URIRef('http://www.w3.org/ns/ldp#contains')
- )}
- class Graph(TaskSet):
- @task(1)
- def ingest_graph(self):
- uri = f'{ldp_root}/{uuid4()}'
- data = random_graph(200, ldp_root).serialize(format='ttl')
- headers = {'content-type': 'text/turtle'}
- rsp = self.client.request('PUT', uri, data=data, name='random_ingest', headers=headers)
- @task(50)
- def request_graph(self):
- uri = str(random.sample(subjects, 1)[0])
- self.client.request('get', uri, name='random_get')
- class LsupSwarmer(HttpLocust):
- task_set = Graph
- min_wait = 50
- max_wait = 500
|