locust-plugins 4.4.2__tar.gz → 4.4.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- locust_plugins-4.4.4/CONTRIBUTING.md +12 -0
- {locust-plugins-4.4.2/locust_plugins.egg-info → locust_plugins-4.4.4}/PKG-INFO +3 -3
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/_version.py +2 -2
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/listeners/timescale.py +14 -12
- {locust-plugins-4.4.2 → locust_plugins-4.4.4/locust_plugins.egg-info}/PKG-INFO +3 -3
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins.egg-info/requires.txt +2 -2
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/setup.py +1 -1
- locust-plugins-4.4.2/CONTRIBUTING.md +0 -30
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/.github/workflows/stale.yml +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/.github/workflows/tests.yml +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/.gitignore +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/.pylintrc +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/.vscode/launch.json +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/.vscode/settings.json +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/LICENSE +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/MANIFEST.in +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/Makefile +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/README.md +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/bin/locust-compose +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/appinsights_listener_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/cloudwatch_listener_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/cmd_line_examples.sh +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/connection_pool_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/constant_total_ips_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/csvreader_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/distributor_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/embedded_resource_manager_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/jmeter_listener_example.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/kafka_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/mongoreader_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/mqtt_custom_client_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/mqtt_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/playwright-recording.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/playwright_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/products.csv +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/reschedule_on_fail_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/rest_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/socketio_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/ssn.csv +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/ssn.tsv +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/transaction_example.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/transaction_example_as_library_local.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/transaction_example_as_library_master.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/transaction_example_as_library_worker.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/tsvreader_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/webdriver_ex.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/__init__.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/connection_pools.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/csvreader.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/Makefile +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/README.md +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/docker-compose.yml +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-grafana/Dockerfile +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-grafana/Makefile +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-grafana/create_datasource.sh +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-grafana/grafana_setup.sh +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-grafana/import_dashboards.sh +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-timescale/Dockerfile +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-timescale/Makefile +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-timescale/timescale_schema.sql +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-timescale/zz_hypertable.sql +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/screenshots/main_dashboard.png +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/screenshots/main_dashboard_by_request_graphs.png +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/screenshots/requests_table.png +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/screenshots/scatter_plot.png +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/screenshots/testruns.png +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/distributor.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/listeners/__init__.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/listeners/appinsights.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/listeners/cloudwatch.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/listeners/jmeter.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/mongoreader.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/py.typed +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/transaction_manager.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/users/__init__.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/users/kafka.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/users/mqtt.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/users/playwright.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/users/resource.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/users/rest.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/users/socketio.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/users/webdriver.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/utils.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/wait_time.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins.egg-info/SOURCES.txt +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins.egg-info/dependency_links.txt +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins.egg-info/not-zip-safe +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins.egg-info/top_level.txt +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/mypy.ini +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/pyproject.toml +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/setup.cfg +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/test/test.csv +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/test/test_all.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/test/test_cloudwatch_plugin.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/test/test_missing_extras.py +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/tox.ini +0 -0
- {locust-plugins-4.4.2 → locust_plugins-4.4.4}/tusk.yaml +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Contributing Guidelines
|
|
2
|
+
=======================
|
|
3
|
+
|
|
4
|
+
If you want to talk about a contribution before you start writing code & making a pull request, please [file an issue](https://github.com/SvenskaSpel/locust-plugins/issues/new). You can also find me (cyberwiz) semi-regularly on the official locust [slack](https://locustio.slack.com) [(signup)](https://communityinviter.com/apps/locustio/locust)
|
|
5
|
+
|
|
6
|
+
In order to maintain a good level of quality, please ensure that your code:
|
|
7
|
+
|
|
8
|
+
* Is formatted using black (https://github.com/psf/black)
|
|
9
|
+
|
|
10
|
+
* Passes linting with pylint (https://www.pylint.org/)
|
|
11
|
+
|
|
12
|
+
* Has relevant examples [here](examples/)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: locust-plugins
|
|
3
|
-
Version: 4.4.
|
|
3
|
+
Version: 4.4.4
|
|
4
4
|
Summary: Useful plugins/extensions for Locust
|
|
5
5
|
Home-page: https://github.com/SvenskaSpel/locust-plugins
|
|
6
6
|
Author: Lars Holmberg
|
|
@@ -35,7 +35,7 @@ Requires-Dist: confluent-kafka; extra == "kafka"
|
|
|
35
35
|
Provides-Extra: mongo
|
|
36
36
|
Requires-Dist: pymongo; extra == "mongo"
|
|
37
37
|
Provides-Extra: mqtt
|
|
38
|
-
Requires-Dist: paho-mqtt>=1.
|
|
38
|
+
Requires-Dist: paho-mqtt>=2.1.0; extra == "mqtt"
|
|
39
39
|
Provides-Extra: appinsights
|
|
40
40
|
Requires-Dist: opencensus-ext-azure; extra == "appinsights"
|
|
41
41
|
Provides-Extra: resource
|
|
@@ -49,7 +49,7 @@ Requires-Dist: psycogreen; extra == "all"
|
|
|
49
49
|
Requires-Dist: psycopg2-binary; extra == "all"
|
|
50
50
|
Requires-Dist: confluent-kafka; extra == "all"
|
|
51
51
|
Requires-Dist: pymongo; extra == "all"
|
|
52
|
-
Requires-Dist: paho-mqtt>=1.
|
|
52
|
+
Requires-Dist: paho-mqtt>=2.1.0; extra == "all"
|
|
53
53
|
Requires-Dist: opencensus-ext-azure; extra == "all"
|
|
54
54
|
Requires-Dist: lxml; extra == "all"
|
|
55
55
|
Requires-Dist: boto3; extra == "all"
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# See timescale_listener_ex.py for documentation
|
|
2
1
|
from contextlib import contextmanager
|
|
3
2
|
from locust.exception import CatchResponseError # need to do this first to make sure monkey patching is done
|
|
4
3
|
import json
|
|
@@ -75,7 +74,7 @@ class Timescale: # pylint: disable=R0902
|
|
|
75
74
|
|
|
76
75
|
def set_run_id(self, environment, msg, **kwargs):
|
|
77
76
|
logging.debug(f"run id from master: {msg.data}")
|
|
78
|
-
|
|
77
|
+
environment._run_id = datetime.strptime(msg.data, "%Y-%m-%d, %H:%M:%S.%f").replace(tzinfo=timezone.utc)
|
|
79
78
|
|
|
80
79
|
@contextmanager
|
|
81
80
|
def dbcursor(self):
|
|
@@ -131,11 +130,11 @@ class Timescale: # pylint: disable=R0902
|
|
|
131
130
|
self.set_gitrepo()
|
|
132
131
|
|
|
133
132
|
if not self.env.parsed_options.worker:
|
|
134
|
-
|
|
133
|
+
environment._run_id = datetime.now(timezone.utc)
|
|
135
134
|
logging.info(
|
|
136
|
-
f"Follow test run here: {self.env.parsed_options.grafana_url}&var-testplan={self._testplan}&from={int(
|
|
135
|
+
f"Follow test run here: {self.env.parsed_options.grafana_url}&var-testplan={self._testplan}&from={int(environment._run_id.timestamp()*1000)}&to=now"
|
|
137
136
|
)
|
|
138
|
-
msg =
|
|
137
|
+
msg = environment._run_id.strftime("%Y-%m-%d, %H:%M:%S.%f")
|
|
139
138
|
if environment.runner is not None:
|
|
140
139
|
logging.debug(f"about to send run_id to workers: {msg}")
|
|
141
140
|
environment.runner.send_message("run_id", msg)
|
|
@@ -143,6 +142,9 @@ class Timescale: # pylint: disable=R0902
|
|
|
143
142
|
self._user_count_logger = gevent.spawn(self._log_user_count)
|
|
144
143
|
|
|
145
144
|
def _dbconn(self) -> psycopg2.extensions.connection:
|
|
145
|
+
logging.debug(
|
|
146
|
+
f"Connecting to Postgres ({self.env.parsed_options.pguser}@{self.env.parsed_options.pghost}:{self.env.parsed_options.pgport or 5432})"
|
|
147
|
+
)
|
|
146
148
|
try:
|
|
147
149
|
conn = psycopg2.connect(
|
|
148
150
|
host=self.env.parsed_options.pghost,
|
|
@@ -171,7 +173,7 @@ class Timescale: # pylint: disable=R0902
|
|
|
171
173
|
with self.dbcursor() as cur:
|
|
172
174
|
cur.execute(
|
|
173
175
|
"""INSERT INTO user_count(time, run_id, testplan, user_count) VALUES (%s, %s, %s, %s)""",
|
|
174
|
-
(datetime.now(timezone.utc), self._run_id, self._testplan, self.env.runner.user_count),
|
|
176
|
+
(datetime.now(timezone.utc), self.env._run_id, self._testplan, self.env.runner.user_count),
|
|
175
177
|
)
|
|
176
178
|
except psycopg2.Error as error:
|
|
177
179
|
logging.error("Failed to write user count to Postgresql: " + repr(error))
|
|
@@ -239,7 +241,7 @@ class Timescale: # pylint: disable=R0902
|
|
|
239
241
|
greenlet_id = getattr(greenlet.getcurrent(), "minimal_ident", 0) # if we're debugging there is no greenlet
|
|
240
242
|
sample = {
|
|
241
243
|
"time": time,
|
|
242
|
-
"run_id": self._run_id,
|
|
244
|
+
"run_id": self.env._run_id,
|
|
243
245
|
"greenlet_id": greenlet_id,
|
|
244
246
|
"loadgen": self._hostname,
|
|
245
247
|
"name": name,
|
|
@@ -276,7 +278,7 @@ class Timescale: # pylint: disable=R0902
|
|
|
276
278
|
cur.execute(
|
|
277
279
|
"INSERT INTO testrun (id, testplan, num_clients, rps, description, env, profile_name, username, gitrepo, changeset_guid, arguments) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
|
|
278
280
|
(
|
|
279
|
-
self._run_id,
|
|
281
|
+
self.env._run_id,
|
|
280
282
|
self._testplan,
|
|
281
283
|
self.env.parsed_options.num_users or 1,
|
|
282
284
|
self.env.parsed_options.ips, # this field is incorrectly called "rps" in db, it should be called something like "target_ips"
|
|
@@ -309,7 +311,7 @@ class Timescale: # pylint: disable=R0902
|
|
|
309
311
|
)
|
|
310
312
|
|
|
311
313
|
def log_stop_test_run(self, exit_code=None):
|
|
312
|
-
logging.debug(f"Test run id {self._run_id} stopping")
|
|
314
|
+
logging.debug(f"Test run id {self.env._run_id} stopping")
|
|
313
315
|
if self.env.parsed_options.worker:
|
|
314
316
|
return # only run on master or standalone
|
|
315
317
|
if getattr(self, "dbconn", None) is None:
|
|
@@ -319,7 +321,7 @@ class Timescale: # pylint: disable=R0902
|
|
|
319
321
|
with self.dbcursor() as cur:
|
|
320
322
|
cur.execute(
|
|
321
323
|
"UPDATE testrun SET end_time = %s, exit_code = %s where id = %s",
|
|
322
|
-
(end_time, exit_code, self._run_id),
|
|
324
|
+
(end_time, exit_code, self.env._run_id),
|
|
323
325
|
)
|
|
324
326
|
cur.execute(
|
|
325
327
|
"INSERT INTO events (time, text) VALUES (%s, %s)",
|
|
@@ -344,7 +346,7 @@ SET (requests, resp_time_avg, rps_avg, fail_ratio) =
|
|
|
344
346
|
COUNT(*)::numeric AS fails
|
|
345
347
|
FROM request WHERE run_id = %s AND time > %s AND success = 0) AS ___
|
|
346
348
|
WHERE id = %s""",
|
|
347
|
-
[self._run_id] * 7,
|
|
349
|
+
[self.env._run_id] * 7,
|
|
348
350
|
)
|
|
349
351
|
except psycopg2.errors.DivisionByZero: # pylint: disable=no-member
|
|
350
352
|
logging.info(
|
|
@@ -356,5 +358,5 @@ WHERE id = %s""",
|
|
|
356
358
|
+ repr(error)
|
|
357
359
|
)
|
|
358
360
|
logging.info(
|
|
359
|
-
f"Report: {self.env.parsed_options.grafana_url}&var-testplan={self._testplan}&from={int(self._run_id.timestamp()*1000)}&to={int((end_time.timestamp()+1)*1000)}\n"
|
|
361
|
+
f"Report: {self.env.parsed_options.grafana_url}&var-testplan={self._testplan}&from={int(self.env._run_id.timestamp()*1000)}&to={int((end_time.timestamp()+1)*1000)}\n"
|
|
360
362
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: locust-plugins
|
|
3
|
-
Version: 4.4.
|
|
3
|
+
Version: 4.4.4
|
|
4
4
|
Summary: Useful plugins/extensions for Locust
|
|
5
5
|
Home-page: https://github.com/SvenskaSpel/locust-plugins
|
|
6
6
|
Author: Lars Holmberg
|
|
@@ -35,7 +35,7 @@ Requires-Dist: confluent-kafka; extra == "kafka"
|
|
|
35
35
|
Provides-Extra: mongo
|
|
36
36
|
Requires-Dist: pymongo; extra == "mongo"
|
|
37
37
|
Provides-Extra: mqtt
|
|
38
|
-
Requires-Dist: paho-mqtt>=1.
|
|
38
|
+
Requires-Dist: paho-mqtt>=2.1.0; extra == "mqtt"
|
|
39
39
|
Provides-Extra: appinsights
|
|
40
40
|
Requires-Dist: opencensus-ext-azure; extra == "appinsights"
|
|
41
41
|
Provides-Extra: resource
|
|
@@ -49,7 +49,7 @@ Requires-Dist: psycogreen; extra == "all"
|
|
|
49
49
|
Requires-Dist: psycopg2-binary; extra == "all"
|
|
50
50
|
Requires-Dist: confluent-kafka; extra == "all"
|
|
51
51
|
Requires-Dist: pymongo; extra == "all"
|
|
52
|
-
Requires-Dist: paho-mqtt>=1.
|
|
52
|
+
Requires-Dist: paho-mqtt>=2.1.0; extra == "all"
|
|
53
53
|
Requires-Dist: opencensus-ext-azure; extra == "all"
|
|
54
54
|
Requires-Dist: lxml; extra == "all"
|
|
55
55
|
Requires-Dist: boto3; extra == "all"
|
|
@@ -8,7 +8,7 @@ psycogreen
|
|
|
8
8
|
psycopg2-binary
|
|
9
9
|
confluent-kafka
|
|
10
10
|
pymongo
|
|
11
|
-
paho-mqtt>=1.
|
|
11
|
+
paho-mqtt>=2.1.0
|
|
12
12
|
opencensus-ext-azure
|
|
13
13
|
lxml
|
|
14
14
|
boto3
|
|
@@ -30,7 +30,7 @@ confluent-kafka
|
|
|
30
30
|
pymongo
|
|
31
31
|
|
|
32
32
|
[mqtt]
|
|
33
|
-
paho-mqtt>=1.
|
|
33
|
+
paho-mqtt>=2.1.0
|
|
34
34
|
|
|
35
35
|
[playwright]
|
|
36
36
|
playwright>=1.40.0
|
|
@@ -10,7 +10,7 @@ extras = {
|
|
|
10
10
|
"dashboards": ["psycogreen", "psycopg2-binary"],
|
|
11
11
|
"kafka": ["confluent-kafka"],
|
|
12
12
|
"mongo": ["pymongo"],
|
|
13
|
-
"mqtt": ["paho-mqtt>=1.
|
|
13
|
+
"mqtt": ["paho-mqtt>=2.1.0"],
|
|
14
14
|
"appinsights": ["opencensus-ext-azure"],
|
|
15
15
|
"resource": ["lxml"],
|
|
16
16
|
"boto3": ["boto3"],
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
Contributing Guidelines
|
|
2
|
-
=======================
|
|
3
|
-
|
|
4
|
-
If you want to talk about a contribution before you start writing code & making a pull request, please [file an issue](https://github.com/SvenskaSpel/locust-plugins/issues/new). You can also find me (cyberwiz) semi-regularly on the official locust [slack](https://locustio.slack.com).
|
|
5
|
-
|
|
6
|
-
In order to maintain a good level of quality, please ensure that your code:
|
|
7
|
-
|
|
8
|
-
* Is formatted using black (https://github.com/psf/black)
|
|
9
|
-
|
|
10
|
-
* Passes linting with pylint (https://www.pylint.org/)
|
|
11
|
-
|
|
12
|
-
* Has relevant examples [here](examples/)
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
## environment setup
|
|
16
|
-
|
|
17
|
-
This project has a dev container definition - https://code.visualstudio.com/docs/remote/containers#
|
|
18
|
-
|
|
19
|
-
If you have Docker and visual studio code installed all you need to do is open the repository in vs code and select "re-open in container" in the popup that appears in the bottom right. Dependencies and plugins will be automatically handled.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
### Tusk runner
|
|
23
|
-
|
|
24
|
-
The development image has some quality of life scripts baked into it
|
|
25
|
-
|
|
26
|
-
1. running `tusk format` Will run the black formatter on examples/ and locust_plugins/
|
|
27
|
-
|
|
28
|
-
2. `tusk pylint` will run pylint against on examples/ and locust_plugins/
|
|
29
|
-
|
|
30
|
-
3. `tusk test` will run the tox test suite in the 3.9 environment
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/transaction_example_as_library_local.py
RENAMED
|
File without changes
|
{locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/transaction_example_as_library_master.py
RENAMED
|
File without changes
|
{locust-plugins-4.4.2 → locust_plugins-4.4.4}/examples/transaction_example_as_library_worker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-grafana/Dockerfile
RENAMED
|
File without changes
|
{locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-grafana/Makefile
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-timescale/Dockerfile
RENAMED
|
File without changes
|
{locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/locust-timescale/Makefile
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/screenshots/scatter_plot.png
RENAMED
|
File without changes
|
{locust-plugins-4.4.2 → locust_plugins-4.4.4}/locust_plugins/dashboards/screenshots/testruns.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|