locust 2.28.1.dev13__py3-none-any.whl → 2.28.1.dev19__py3-none-any.whl

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/_version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '2.28.1.dev13'
16
- __version_tuple__ = version_tuple = (2, 28, 1, 'dev13')
15
+ __version__ = version = '2.28.1.dev19'
16
+ __version_tuple__ = version_tuple = (2, 28, 1, 'dev19')
locust/html.py CHANGED
@@ -12,6 +12,7 @@ from . import stats as stats_module
12
12
  from .runners import STATE_STOPPED, STATE_STOPPING, MasterRunner
13
13
  from .stats import sort_stats, update_stats_history
14
14
  from .user.inspectuser import get_ratio
15
+ from .util.date import format_utc_timestamp
15
16
 
16
17
  PERCENTILES_FOR_HTML_REPORT = [0.50, 0.6, 0.7, 0.8, 0.9, 0.95, 0.99, 1.0]
17
18
  ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
@@ -32,11 +33,10 @@ def get_html_report(
32
33
  ):
33
34
  stats = environment.runner.stats
34
35
 
35
- start_ts = stats.start_time
36
- start_time = datetime.datetime.fromtimestamp(start_ts, tz=datetime.timezone.utc).strftime("%Y-%m-%d %H:%M:%S")
36
+ start_time = format_utc_timestamp(stats.start_time)
37
37
 
38
38
  if end_ts := stats.last_request_timestamp:
39
- end_time = datetime.datetime.fromtimestamp(end_ts, tz=datetime.timezone.utc).strftime("%Y-%m-%d %H:%M:%S")
39
+ end_time = format_utc_timestamp(end_ts)
40
40
  else:
41
41
  end_time = start_time
42
42
 
locust/util/date.py ADDED
@@ -0,0 +1,5 @@
1
+ from datetime import datetime
2
+
3
+
4
+ def format_utc_timestamp(unix_timestamp):
5
+ return datetime.utcfromtimestamp(unix_timestamp).strftime("%Y-%m-%dT%H:%M:%SZ")
locust/web.py CHANGED
@@ -530,7 +530,17 @@ class WebUI:
530
530
  (self.host, self.port), self.app, log=None, keyfile=self.tls_key, certfile=self.tls_cert
531
531
  )
532
532
  else:
533
- self.server = pywsgi.WSGIServer((self.host, self.port), self.app, log=None)
533
+
534
+ class RewriteFilter(logging.Filter):
535
+ def filter(self, record) -> bool:
536
+ msg = record.msg
537
+ if msg.find("gevent._socket3.socket at") and msg.find("Invalid HTTP method: '\x16\x03"):
538
+ record.msg = f"A request against Locust's Web UI was made using https:// instead of http:// (underlying error was {record.msg})"
539
+ return True
540
+
541
+ logger.addFilter(RewriteFilter())
542
+ self.server = pywsgi.WSGIServer((self.host, self.port), self.app, log=None, error_log=logger)
543
+
534
544
  self.server.serve_forever()
535
545
 
536
546
  def stop(self):